diff --git a/nixos/modules/virtualisation/nova.nix b/nixos/modules/virtualisation/nova.nix deleted file mode 100644 index c2837d0e2e2..00000000000 --- a/nixos/modules/virtualisation/nova.nix +++ /dev/null @@ -1,174 +0,0 @@ -# Module for Nova, a.k.a. OpenStack Compute. - -{ config, lib, pkgs, ... }: - -with lib; - -let - - cfg = config.virtualisation.nova; - - nova = pkgs.nova; - - novaConf = pkgs.writeText "nova.conf" - '' - --nodaemon - --verbose - ${cfg.extraConfig} - ''; - -in - -{ - - ###### interface - - options = { - - virtualisation.nova.enableSingleNode = - mkOption { - default = false; - description = - '' - This option enables Nova, also known as OpenStack Compute, - a cloud computing system, as a single-machine - installation. That is, all of Nova's components are - enabled on this machine, using SQLite as Nova's database. - This is useful for evaluating and experimenting with Nova. - However, for a real cloud computing environment, you'll - want to enable some of Nova's services on other machines, - and use a database such as MySQL. - ''; - }; - - virtualisation.nova.extraConfig = - mkOption { - default = ""; - description = - '' - Additional text appended to nova.conf, - the main Nova configuration file. - ''; - }; - - }; - - - ###### implementation - - config = mkIf cfg.enableSingleNode { - - environment.systemPackages = [ nova pkgs.euca2ools pkgs.novaclient ]; - - environment.etc = - [ { source = novaConf; - target = "nova/nova.conf"; - } - ]; - - # Nova requires libvirtd and RabbitMQ. - virtualisation.libvirtd.enable = true; - services.rabbitmq.enable = true; - - # `qemu-nbd' required the `nbd' kernel module. - boot.kernelModules = [ "nbd" ]; - - system.activationScripts.nova = - '' - mkdir -m 755 -p /var/lib/nova - mkdir -m 755 -p /var/lib/nova/networks - mkdir -m 700 -p /var/lib/nova/instances - mkdir -m 700 -p /var/lib/nova/keys - - # Allow the CA certificate generation script (called by - # nova-api) to work. - mkdir -m 700 -p /var/lib/nova/CA /var/lib/nova/CA/private - - # Initialise the SQLite database. - ${nova}/bin/nova-manage db sync - ''; - - # `nova-api' receives and executes external client requests from - # tools such as euca2ools. It listens on port 8773 (XML) and 8774 - # (JSON). - jobs.nova_api = - { name = "nova-api"; - - description = "Nova API service"; - - startOn = "ip-up"; - - # `openssl' is required to generate the CA. `openssh' is - # required to generate key pairs. - path = [ pkgs.openssl config.programs.ssh.package pkgs.bash ]; - - respawn = false; - - exec = "${nova}/bin/nova-api --flagfile=${novaConf} --api_paste_config=${nova}/etc/nova/api-paste.ini"; - }; - - # `nova-objectstore' is a simple image server. Useful if you're - # not running the OpenStack Imaging Service (Swift). It serves - # images placed in /var/lib/nova/images/. - jobs.nova_objectstore = - { name = "nova-objectstore"; - - description = "Nova Simple Object Store Service"; - - startOn = "ip-up"; - - preStart = - '' - mkdir -m 700 -p /var/lib/nova/images - ''; - - exec = "${nova}/bin/nova-objectstore --flagfile=${novaConf}"; - }; - - # `nova-scheduler' schedules VM execution requests. - jobs.nova_scheduler = - { name = "nova-scheduler"; - - description = "Nova Scheduler Service"; - - startOn = "ip-up"; - - exec = "${nova}/bin/nova-scheduler --flagfile=${novaConf}"; - }; - - # `nova-compute' starts and manages virtual machines. - jobs.nova_compute = - { name = "nova-compute"; - - description = "Nova Compute Service"; - - startOn = "ip-up"; - - path = - [ pkgs.sudo pkgs.vlan pkgs.nettools pkgs.iptables pkgs.qemu_kvm - pkgs.e2fsprogs pkgs.utillinux pkgs.multipath-tools pkgs.iproute - pkgs.bridge-utils - ]; - - exec = "${nova}/bin/nova-compute --flagfile=${novaConf}"; - }; - - # `nova-network' manages networks and allocates IP addresses. - jobs.nova_network = - { name = "nova-network"; - - description = "Nova Network Service"; - - startOn = "ip-up"; - - path = - [ pkgs.sudo pkgs.vlan pkgs.dnsmasq pkgs.nettools pkgs.iptables - pkgs.iproute pkgs.bridge-utils pkgs.radvd - ]; - - exec = "${nova}/bin/nova-network --flagfile=${novaConf}"; - }; - - }; - -} diff --git a/pkgs/applications/virtualization/openstack/nova.nix b/pkgs/applications/virtualization/openstack/nova.nix deleted file mode 100644 index ef3eb2fb084..00000000000 --- a/pkgs/applications/virtualization/openstack/nova.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ stdenv, fetchurl, python2Packages, openssl, openssh }: - -python2Packages.buildPythonApplication rec { - name = "nova-${version}"; - version = "12.0.0"; - namePrefix = ""; - - PBR_VERSION = "${version}"; - - src = fetchurl { - url = "https://github.com/openstack/nova/archive/${version}.tar.gz"; - sha256 = "175n1znvmy8f5vqvabc2fa4qy8y17685z4gzpq8984mdsdnpv21w"; - }; - - # otherwise migrate.cfg is not installed - patchPhase = '' - echo "graft nova" >> MANIFEST.in - - # remove transient error test, see http://hydra.nixos.org/build/40203534 - rm nova/tests/unit/compute/test_{shelve,compute_utils}.py - ''; - - # https://github.com/openstack/nova/blob/stable/liberty/requirements.txt - propagatedBuildInputs = with python2Packages; [ - pbr sqlalchemy boto decorator eventlet jinja2 lxml routes cryptography - webob greenlet PasteDeploy paste prettytable sqlalchemy_migrate netaddr - netifaces paramiko Babel iso8601 jsonschema keystoneclient requests six - stevedore websockify rfc3986 os-brick psutil_1 alembic psycopg2 pymysql - keystonemiddleware MySQL_python - - # oslo components - oslo-rootwrap oslo-reports oslo-utils oslo-i18n oslo-config oslo-context - oslo-log oslo-serialization oslo-middleware oslo-db oslo-service oslo-messaging - oslo-concurrency oslo-versionedobjects - - # clients - cinderclient neutronclient glanceclient - ]; - - buildInputs = with python2Packages; [ - coverage fixtures mock mox3 subunit requests-mock pillow oslosphinx - oslotest testrepository testresources testtools tempest-lib bandit - oslo-vmware pep8 barbicanclient ironicclient openssl openssh - ]; - - postInstall = '' - cp -prvd etc $out/etc - - # check all binaries don't crash - for i in $out/bin/*; do - case "$i" in - *nova-dhcpbridge*) - : - ;; - *nova-rootwrap*) - : - ;; - *) - $i --help - ;; - esac - done - ''; - - meta = with stdenv.lib; { - homepage = http://nova.openstack.org/; - description = "OpenStack Compute (a.k.a. Nova), a cloud computing fabric controller"; - license = stdenv.lib.licenses.asl20; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 57c15125d2a..447701e0efc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -16113,7 +16113,6 @@ with pkgs; notmuch-addrlookup = callPackage ../applications/networking/mailreaders/notmuch-addrlookup { }; # Open Stack - nova = callPackage ../applications/virtualization/openstack/nova.nix { }; keystone = callPackage ../applications/virtualization/openstack/keystone.nix { }; neutron = callPackage ../applications/virtualization/openstack/neutron.nix { }; glance = callPackage ../applications/virtualization/openstack/glance.nix { };