From 0d78d93072fe5e33cad6548418d6291fffbafed7 Mon Sep 17 00:00:00 2001 From: Matthew Thode Date: Mon, 16 May 2016 13:57:11 -0500 Subject: sys-cluster/nova: remove old Package-Manager: portage-2.2.28 --- sys-cluster/nova/Manifest | 1 - sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch | 165 ------------ sys-cluster/nova/nova-12.0.2-r1.ebuild | 313 ---------------------- 3 files changed, 479 deletions(-) delete mode 100644 sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch delete mode 100644 sys-cluster/nova/nova-12.0.2-r1.ebuild (limited to 'sys-cluster') diff --git a/sys-cluster/nova/Manifest b/sys-cluster/nova/Manifest index 3d9b928f3a15..d5a101f4ebc5 100644 --- a/sys-cluster/nova/Manifest +++ b/sys-cluster/nova/Manifest @@ -1,5 +1,4 @@ DIST liberty-nova.conf.sample 134201 SHA256 32752212c571c4a1473c3fa8bbd197a658ee54e233b4d46a157807be42997e42 SHA512 5325a31a0fccb9898bec0a022f5430dcc1729615c8eac88a4261c403f9ecd8ce2b07d73b52f3bc2c5cbe681234b30b923adb94385aac28e08d982a8f8bfef350 WHIRLPOOL 6d2894160a96742551777ce397b67f332c4f2793402f4634a2cfd0005ba99fb077cf0d0306a59e4b8c7f689914860e5d7f45d838c845d6a896a66c24f0f141c0 DIST mitaka-nova.conf.sample 36427 SHA256 dd4c3ccab89fbe9f69df520f47d439c7ffa440d3f8b288b0ab99ac328a02ec75 SHA512 169671bde5cb5bb89065d801f80aa0d3c664af652d9ddb0c409ed3e0af2c0b94f1dbd0ebf834849e3e75dc38972935ec65a6e533d86148a7315839597d577cad WHIRLPOOL 20f95a296c3d112a532c9c5cc911d30b67472868d94bcfd52fadfd7105f9095a6b77020ca1caa6a70319548239358868d809feed363a82e4d574aceb6e5f016d -DIST nova-12.0.2.tar.gz 5243206 SHA256 4b15dcf88f39c5b71b8a31f678844d55b7dbe05aac49e1a8b6cebcf75fff61f7 SHA512 f906cdbce0ca68e056237b3b151a7d665d7dc8ffdd6b2fe6d0aeda271cc8b682891360b3c425d39d5b04cbfe73cdde9a3e2a9a8c28dab06a527557afdc446ef1 WHIRLPOOL 422545f6e326235ebb8493621d46bc12d83c4b20ecd02252addc7d68de7a3ac9e82e6ade40001f19548e4c4b39867078e72c62b2bd0649bad1bdc8336dd35490 DIST nova-12.0.3.tar.gz 5254275 SHA256 663810ec70613cfdae01d7253a56b5ea8014a78f67a65b5e662840122faa139d SHA512 4ab65e347cd0e05d48c5dc1501dd6142f0fb28e84334b8812e838e3a79d206f932b0319346f0e1adba42521a8b8b1c2e781e05b69711ba55b1bd9e11e947ef64 WHIRLPOOL d37b767656cd9755017e195cda823ec7514933f1e13650d4fa6f797981776dcf6438dd7e5f2e9948f762241416abf6f8ec78b61033e1cecfb9e6f750108f8199 DIST nova-13.0.0.tar.gz 5455425 SHA256 3506c63ae3ab6331d51b47759d55999efebf4ea25575bb3ce27e10422220a073 SHA512 653507ac6afae86f46b47bb22592d92cf40acd03cf8aa2449dfbbdf2d5e1b01709f3f78d23d429fcb35daf162a8ee1ddb91c35e4f0aa32f30572d92d8cdaf876 WHIRLPOOL 1a85a9bff9e7fa89d41610f74e149238275c54c4f19972efc647dda0cdcb866a840017810e6aaba71f94b99bbf0a4523fdc64fb613ec2ecf452d5beef0806ce1 diff --git a/sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch b/sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch deleted file mode 100644 index 20b35b76a812..000000000000 --- a/sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch +++ /dev/null @@ -1,165 +0,0 @@ -From 8d5ba34751c0ae8093f987d74348dffd8ca0b61c Mon Sep 17 00:00:00 2001 -From: Lee Yarwood -Date: Wed, 24 Feb 2016 11:23:22 +0000 -Subject: [PATCH] libvirt: Always copy or recreate disk.info during a migration - -The disk.info file contains the path and format of any image, config or -ephermal disk associated with an instance. When using RAW images and migrating -an instance this file should always be copied or recreated. This avoids the Raw -imagebackend reinspecting the format of these disks when spawning the instance -on the destination host. - -By not copying or recreating this disk.info file, a malicious image written to -an instance disk on the source host will cause Nova to reinspect and record a -different format for the disk on the destination. This format then being used -incorrectly when finally spawning the instance on the destination. - -SecurityImpact -Closes-bug: #1548450 -Change-Id: Idfc16f54049aaeab31ac1c1d8d79a129acc9fb87 ---- - nova/tests/unit/virt/libvirt/test_driver.py | 75 +++++++++++++++++++++++++++++ - nova/virt/libvirt/driver.py | 27 +++++++++++ - 2 files changed, 102 insertions(+) - -diff --git a/nova/tests/unit/virt/libvirt/test_driver.py b/nova/tests/unit/virt/libvirt/test_driver.py -index 572facd..55051f1 100644 ---- a/nova/tests/unit/virt/libvirt/test_driver.py -+++ b/nova/tests/unit/virt/libvirt/test_driver.py -@@ -7631,6 +7631,43 @@ class LibvirtConnTestCase(test.NoDBTestCase): - fallback_from_host=instance.host)]) - self.assertIsInstance(res, dict) - -+ def test_pre_live_migration_recreate_disk_info(self): -+ -+ migrate_data = {'is_shared_block_storage': False, -+ 'is_shared_instance_path': False, -+ 'block_migration': True, -+ 'instance_relative_path': '/some/path/'} -+ disk_info = [{'disk_size': 5368709120, 'type': 'raw', -+ 'virt_disk_size': 5368709120, -+ 'path': '/some/path/disk', -+ 'backing_file': '', 'over_committed_disk_size': 0}, -+ {'disk_size': 1073741824, 'type': 'raw', -+ 'virt_disk_size': 1073741824, -+ 'path': '/some/path/disk.eph0', -+ 'backing_file': '', 'over_committed_disk_size': 0}] -+ image_disk_info = {'/some/path/disk': 'raw', -+ '/some/path/disk.eph0': 'raw'} -+ -+ drvr = libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False) -+ instance = objects.Instance(**self.test_instance) -+ instance_path = os.path.dirname(disk_info[0]['path']) -+ disk_info_path = os.path.join(instance_path, 'disk.info') -+ -+ with test.nested( -+ mock.patch.object(os, 'mkdir'), -+ mock.patch.object(fake_libvirt_utils, 'write_to_file'), -+ mock.patch.object(drvr, '_create_images_and_backing') -+ ) as ( -+ mkdir, write_to_file, create_images_and_backing -+ ): -+ drvr.pre_live_migration(self.context, instance, -+ block_device_info=None, -+ network_info=[], -+ disk_info=jsonutils.dumps(disk_info), -+ migrate_data=migrate_data) -+ write_to_file.assert_called_with(disk_info_path, -+ jsonutils.dumps(image_disk_info)) -+ - def test_get_instance_disk_info_works_correctly(self): - # Test data - instance = objects.Instance(**self.test_instance) -@@ -12823,6 +12860,44 @@ class LibvirtDriverTestCase(test.NoDBTestCase): - flavor_obj = objects.Flavor(**flavor) - self._test_migrate_disk_and_power_off(flavor_obj) - -+ @mock.patch('nova.utils.execute') -+ @mock.patch('nova.virt.libvirt.utils.copy_image') -+ @mock.patch('nova.virt.libvirt.driver.LibvirtDriver._destroy') -+ @mock.patch('nova.virt.libvirt.utils.get_instance_path') -+ @mock.patch('nova.virt.libvirt.driver.LibvirtDriver' -+ '._is_storage_shared_with') -+ @mock.patch('nova.virt.libvirt.driver.LibvirtDriver' -+ '.get_instance_disk_info') -+ def test_migrate_disk_and_power_off_resize_copy_disk_info(self, -+ mock_disk_info, -+ mock_shared, -+ mock_path, -+ mock_destroy, -+ mock_copy, -+ mock_execuate): -+ -+ instance = self._create_instance() -+ disk_info = self._disk_info() -+ disk_info_text = jsonutils.loads(disk_info) -+ instance_base = os.path.dirname(disk_info_text[0]['path']) -+ flavor = {'root_gb': 10, 'ephemeral_gb': 25} -+ flavor_obj = objects.Flavor(**flavor) -+ -+ mock_disk_info.return_value = disk_info -+ mock_path.return_value = instance_base -+ mock_shared.return_value = False -+ -+ self.drvr.migrate_disk_and_power_off(context.get_admin_context(), -+ instance, mock.sentinel, -+ flavor_obj, None) -+ -+ src_disk_info_path = os.path.join(instance_base + '_resize', -+ 'disk.info') -+ dst_disk_info_path = os.path.join(instance_base, 'disk.info') -+ mock_copy.assert_any_call(src_disk_info_path, dst_disk_info_path, -+ host=mock.sentinel, on_execute=mock.ANY, -+ on_completion=mock.ANY, compression=mock.ANY) -+ - def test_wait_for_running(self): - def fake_get_info(instance): - if instance['name'] == "not_found": -diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py -index 6328d05..fb53eee 100644 ---- a/nova/virt/libvirt/driver.py -+++ b/nova/virt/libvirt/driver.py -@@ -6279,6 +6279,24 @@ class LibvirtDriver(driver.ComputeDriver): - instance=instance) - os.mkdir(instance_dir) - -+ # Recreate the disk.info file and in doing so stop the -+ # imagebackend from recreating it incorrectly by inspecting the -+ # contents of each file when using the Raw backend. -+ if disk_info: -+ image_disk_info = {} -+ for info in disk_info: -+ image_file = os.path.basename(info['path']) -+ image_path = os.path.join(instance_dir, image_file) -+ image_disk_info[image_path] = info['type'] -+ -+ LOG.debug('Creating disk.info with the contents: %s', -+ image_disk_info, instance=instance) -+ -+ image_disk_info_path = os.path.join(instance_dir, -+ 'disk.info') -+ libvirt_utils.write_to_file(image_disk_info_path, -+ jsonutils.dumps(image_disk_info)) -+ - if not is_shared_block_storage: - # Ensure images and backing files are present. - LOG.debug('Checking to make sure images and backing files are ' -@@ -6823,6 +6841,15 @@ class LibvirtDriver(driver.ComputeDriver): - on_execute=on_execute, - on_completion=on_completion, - compression=compression) -+ -+ # Ensure disk.info is written to the new path to avoid disks being -+ # reinspected and potentially changing format. -+ src_disk_info_path = os.path.join(inst_base_resize, 'disk.info') -+ dst_disk_info_path = os.path.join(inst_base, 'disk.info') -+ libvirt_utils.copy_image(src_disk_info_path, dst_disk_info_path, -+ host=dest, on_execute=on_execute, -+ on_completion=on_completion, -+ compression=compression) - except Exception: - with excutils.save_and_reraise_exception(): - self._cleanup_remote_migration(dest, inst_base, --- -1.9.1 - diff --git a/sys-cluster/nova/nova-12.0.2-r1.ebuild b/sys-cluster/nova/nova-12.0.2-r1.ebuild deleted file mode 100644 index 841de6ea08ed..000000000000 --- a/sys-cluster/nova/nova-12.0.2-r1.ebuild +++ /dev/null @@ -1,313 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=5 -PYTHON_COMPAT=( python2_7 ) - -inherit distutils-r1 eutils linux-info multilib user - -DESCRIPTION="Cloud computing fabric controller (main part of an IaaS system) in Python" -HOMEPAGE="https://launchpad.net/nova" -SRC_URI=" - https://tarballs.openstack.org/${PN}/${P}.tar.gz - https://dev.gentoo.org/~prometheanfire/dist/nova/liberty/nova.conf.sample -> liberty-nova.conf.sample" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm64 x86" -IUSE="+compute compute-only iscsi +memcached mysql +novncproxy openvswitch postgres +rabbitmq sqlite test" -REQUIRED_USE=" - !compute-only? ( || ( mysql postgres sqlite ) ) - compute-only? ( compute !rabbitmq !memcached !mysql !postgres !sqlite )" - -CDEPEND=">=dev-python/pbr-1.8[${PYTHON_USEDEP}]" -# need to package dev-python/sphinxcontrib-seqdiag -DEPEND=" - >=dev-python/setuptools-16.0[${PYTHON_USEDEP}] - ${CDEPEND} - app-admin/sudo - test? ( - ${RDEPEND} - >=dev-python/coverage-3.6[${PYTHON_USEDEP}] - <=dev-python/coverage-4.0.3[${PYTHON_USEDEP}] - >=dev-python/fixtures-1.3.1[${PYTHON_USEDEP}] - <=dev-python/fixtures-1.4.0-r9999[${PYTHON_USEDEP}] - >=dev-python/mock-1.2[${PYTHON_USEDEP}] - <=dev-python/mock-1.3.0[${PYTHON_USEDEP}] - >=dev-python/mox3-0.7.0[${PYTHON_USEDEP}] - <=dev-python/mox3-0.12.0[${PYTHON_USEDEP}] - >=dev-python/psycopg-2.5[${PYTHON_USEDEP}] - <=dev-python/psycopg-2.6.1[${PYTHON_USEDEP}] - >=dev-python/pymysql-0.6.2[${PYTHON_USEDEP}] - <=dev-python/pymysql-0.6.7[${PYTHON_USEDEP}] - ~dev-python/python-barbicanclient-3.3.0[${PYTHON_USEDEP}] - >=dev-python/python-ironicclient-0.8.0[${PYTHON_USEDEP}] - <=dev-python/python-ironicclient-1.0.0[${PYTHON_USEDEP}] - >=dev-python/subunit-0.0.18[${PYTHON_USEDEP}] - <=dev-python/subunit-1.2.0[${PYTHON_USEDEP}] - >=dev-python/requests-mock-0.6.0[${PYTHON_USEDEP}] - <=dev-python/requests-mock-0.7.0[${PYTHON_USEDEP}] - >=dev-python/sphinx-1.1.2[${PYTHON_USEDEP}] - !~dev-python/sphinx-1.2.0[${PYTHON_USEDEP}] - =dev-python/pillow-2.4.0[${PYTHON_USEDEP}] - =dev-python/oslo-sphinx-2.5.0[${PYTHON_USEDEP}] - <=dev-python/oslo-sphinx-4.1.0[${PYTHON_USEDEP}] - >=dev-python/oslotest-1.10.0[${PYTHON_USEDEP}] - <=dev-python/oslotest-2.0.0[${PYTHON_USEDEP}] - >=dev-python/testrepository-0.0.18[${PYTHON_USEDEP}] - <=dev-python/testrepository-0.0.20[${PYTHON_USEDEP}] - >=dev-python/testresources-0.2.4[${PYTHON_USEDEP}] - <=dev-python/testresources-1.0.0-r9999[${PYTHON_USEDEP}] - >=dev-python/testtools-1.4.0[${PYTHON_USEDEP}] - <=dev-python/testtools-1.8.1[${PYTHON_USEDEP}] - >=dev-python/tempest-lib-0.8.0[${PYTHON_USEDEP}] - <=dev-python/tempest-lib-0.11.0[${PYTHON_USEDEP}] - >=dev-python/bandit-0.13.2[${PYTHON_USEDEP}] - <=dev-python/bandit-0.16.2[${PYTHON_USEDEP}] - >=dev-python/oslo-vmware-0.16.0[${PYTHON_USEDEP}] - <=dev-python/oslo-vmware-2.1.0[${PYTHON_USEDEP}] - >=dev-python/reno-0.1.1[${PYTHON_USEDEP}] - )" - -# barbicanclient is in here for doc generation -RDEPEND=" - ${CDEPEND} - compute-only? ( - >=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] - =dev-python/sqlalchemy-0.9.9[sqlite,${PYTHON_USEDEP}] - =dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] - =dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}] - =dev-python/boto-2.32.1[${PYTHON_USEDEP}] - <=dev-python/boto-2.38.0[${PYTHON_USEDEP}] - >=dev-python/decorator-3.4.0[${PYTHON_USEDEP}] - <=dev-python/decorator-4.0.6[${PYTHON_USEDEP}] - ~dev-python/eventlet-0.17.4[${PYTHON_USEDEP}] - >=dev-python/jinja-2.6[${PYTHON_USEDEP}] - <=dev-python/jinja-2.8[${PYTHON_USEDEP}] - >=dev-python/keystonemiddleware-2.0.0[${PYTHON_USEDEP}] - !~dev-python/keystonemiddleware-2.4.0[${PYTHON_USEDEP}] - <=dev-python/keystonemiddleware-4.0.0[${PYTHON_USEDEP}] - >=dev-python/lxml-2.3[${PYTHON_USEDEP}] - <=dev-python/lxml-3.5.0[${PYTHON_USEDEP}] - >=dev-python/routes-1.12.3[${PYTHON_USEDEP}] - !~dev-python/routes-2.0[${PYTHON_USEDEP}] - !~dev-python/routes-2.1[$(python_gen_usedep 'python2_7')] - <=dev-python/routes-2.2[${PYTHON_USEDEP}] - >=dev-python/cryptography-1.0[${PYTHON_USEDEP}] - <=dev-python/cryptography-1.1.2-r9999[${PYTHON_USEDEP}] - >=dev-python/webob-1.2.3[${PYTHON_USEDEP}] - <=dev-python/webob-1.5.1[${PYTHON_USEDEP}] - >=dev-python/greenlet-0.3.2[${PYTHON_USEDEP}] - <=dev-python/greenlet-0.4.9[${PYTHON_USEDEP}] - >=dev-python/pastedeploy-1.5.0-r1[${PYTHON_USEDEP}] - <=dev-python/pastedeploy-1.5.2[${PYTHON_USEDEP}] - <=dev-python/paste-2.0.2[${PYTHON_USEDEP}] - >=dev-python/prettytable-0.7[${PYTHON_USEDEP}] - =dev-python/sqlalchemy-migrate-0.9.6[${PYTHON_USEDEP}] - <=dev-python/sqlalchemy-migrate-0.10.0[${PYTHON_USEDEP}] - >=dev-python/netaddr-0.7.12[${PYTHON_USEDEP}] - !~dev-python/netaddr-0.7.16[${PYTHON_USEDEP}] - <=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}] - ~dev-python/netifaces-0.10.4[${PYTHON_USEDEP}] - >=dev-python/paramiko-1.13.0[${PYTHON_USEDEP}] - <=dev-python/paramiko-1.16.0[${PYTHON_USEDEP}] - >=dev-python/Babel-1.3[${PYTHON_USEDEP}] - <=dev-python/Babel-2.1.1[${PYTHON_USEDEP}] - >=dev-python/iso8601-0.1.9[${PYTHON_USEDEP}] - <=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.0.0[${PYTHON_USEDEP}] - !~dev-python/jsonschema-2.5.0[${PYTHON_USEDEP}] - =dev-python/python-cinderclient-1.3.1[${PYTHON_USEDEP}] - <=dev-python/python-cinderclient-1.5.0[${PYTHON_USEDEP}] - >=dev-python/python-keystoneclient-1.6.0[${PYTHON_USEDEP}] - !~dev-python/python-keystoneclient-1.8.0[${PYTHON_USEDEP}] - <=dev-python/python-keystoneclient-2.0.0-r9999[${PYTHON_USEDEP}] - >=dev-python/python-neutronclient-2.6.0[${PYTHON_USEDEP}] - <=dev-python/python-neutronclient-3.1.0[${PYTHON_USEDEP}] - >=dev-python/python-glanceclient-0.18.0[${PYTHON_USEDEP}] - <=dev-python/python-glanceclient-1.2.0[${PYTHON_USEDEP}] - >=dev-python/python-barbicanclient-3.0.1[${PYTHON_USEDEP}] - <=dev-python/python-barbicanclient-3.3.0[${PYTHON_USEDEP}] - >=dev-python/requests-2.5.2[${PYTHON_USEDEP}] - !~dev-python/requests-2.8.0[${PYTHON_USEDEP}] - !~dev-python/requests-2.9.0[${PYTHON_USEDEP}] - <=dev-python/requests-2.8.1[${PYTHON_USEDEP}] - >=dev-python/six-1.9.0[${PYTHON_USEDEP}] - <=dev-python/six-1.10.0[${PYTHON_USEDEP}] - >=dev-python/stevedore-1.5.0[${PYTHON_USEDEP}] - <=dev-python/stevedore-1.10.0[${PYTHON_USEDEP}] - >=dev-python/setuptools-16.0[${PYTHON_USEDEP}] - >=dev-python/websockify-0.6.1[${PYTHON_USEDEP}] - >=dev-python/websockify-0.6.1[${PYTHON_USEDEP}] - <=dev-python/websockify-0.7.0[${PYTHON_USEDEP}] - >=dev-python/oslo-concurrency-2.3.0[${PYTHON_USEDEP}] - <=dev-python/oslo-concurrency-3.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-config-2.3.0[${PYTHON_USEDEP}] - <=dev-python/oslo-config-3.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-context-0.2.0[${PYTHON_USEDEP}] - <=dev-python/oslo-context-1.0.0[${PYTHON_USEDEP}] - >=dev-python/oslo-log-1.8.0[${PYTHON_USEDEP}] - <=dev-python/oslo-log-2.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-reports-0.1.0[${PYTHON_USEDEP}] - <=dev-python/oslo-reports-1.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-serialization-1.4.0[${PYTHON_USEDEP}] - <=dev-python/oslo-serialization-2.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-utils-2.0.0[${PYTHON_USEDEP}] - !~dev-python/oslo-utils-2.6.0[${PYTHON_USEDEP}] - <=dev-python/oslo-utils-3.2.0[${PYTHON_USEDEP}] - >=dev-python/oslo-db-2.4.1[${PYTHON_USEDEP}] - <=dev-python/oslo-db-4.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-rootwrap-2.0.0[${PYTHON_USEDEP}] - <=dev-python/oslo-rootwrap-3.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-messaging-1.16.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-1.17.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-1.17.1[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.6.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.6.1[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.7.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.8.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.8.1[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-2.9.0[${PYTHON_USEDEP}] - !~dev-python/oslo-messaging-3.1.0[${PYTHON_USEDEP}] - <=dev-python/oslo-messaging-3.0.0[${PYTHON_USEDEP}] - >=dev-python/oslo-i18n-1.5.0[${PYTHON_USEDEP}] - <=dev-python/oslo-i18n-3.1.0[${PYTHON_USEDEP}] - >=dev-python/oslo-service-0.7.0[${PYTHON_USEDEP}] - <=dev-python/oslo-service-1.1.0[${PYTHON_USEDEP}] - >=dev-python/rfc3986-0.2.0[${PYTHON_USEDEP}] - <=dev-python/rfc3986-0.3.1[${PYTHON_USEDEP}] - >=dev-python/oslo-middleware-2.8.0[${PYTHON_USEDEP}] - !~dev-python/oslo-middleware-3.0.0[${PYTHON_USEDEP}] - !~dev-python/oslo-middleware-3.1.0[${PYTHON_USEDEP}] - !~dev-python/oslo-middleware-3.2.0[${PYTHON_USEDEP}] - <=dev-python/oslo-middleware-3.3.0[${PYTHON_USEDEP}] - >=dev-python/psutil-1.1.1[${PYTHON_USEDEP}] - =dev-python/oslo-versionedobjects-0.9.0[${PYTHON_USEDEP}] - <=dev-python/oslo-versionedobjects-1.1.0[${PYTHON_USEDEP}] - >=dev-python/alembic-0.8.0[${PYTHON_USEDEP}] - <=dev-python/alembic-0.8.3[${PYTHON_USEDEP}] - >=dev-python/os-brick-0.4.0[${PYTHON_USEDEP}] - <=dev-python/os-brick-0.6.0[${PYTHON_USEDEP}] - <=dev-python/libvirt-python-1.3.0[${PYTHON_USEDEP}] - app-emulation/libvirt[iscsi?] - novncproxy? ( www-apps/novnc ) - sys-apps/iproute2 - openvswitch? ( <=net-misc/openvswitch-2.5.9999 ) - rabbitmq? ( net-misc/rabbitmq-server ) - memcached? ( net-misc/memcached - <=dev-python/python-memcached-1.57 ) - sys-fs/sysfsutils - sys-fs/multipath-tools - net-misc/bridge-utils - compute? ( - app-cdr/cdrkit - sys-fs/dosfstools - app-emulation/qemu - ) - iscsi? ( - sys-fs/lsscsi - >=sys-block/open-iscsi-2.0.872-r3 - )" - -PATCHES=( - "${FILESDIR}/${PV}-CVE-2016-2140.patch" -) - -pkg_setup() { - linux-info_pkg_setup - CONFIG_CHECK_MODULES="BLK_DEV_NBD VHOST_NET IP6_NF_FILTER IP6_NF_IPTABLES IP_NF_TARGET_REJECT \ - IP_NF_MANGLE IP_NF_TARGET_MASQUERADE NF_NAT_IPV4 IP_NF_FILTER IP_NF_IPTABLES \ - NF_CONNTRACK_IPV4 NF_DEFRAG_IPV4 NF_NAT_IPV4 NF_NAT NF_CONNTRACK NETFILTER_XTABLES \ - ISCSI_TCP SCSI_DH DM_MULTIPATH DM_SNAPSHOT" - if linux_config_exists; then - for module in ${CONFIG_CHECK_MODULES}; do - linux_chkconfig_present ${module} || ewarn "${module} needs to be enabled in kernel" - done - fi - enewgroup nova - enewuser nova -1 -1 /var/lib/nova nova -} - -python_prepare_all() { - sed -i '/^hacking/d' test-requirements.txt || die - distutils-r1_python_prepare_all -} - -python_test() { - testr init - testr run --parallel || die "failed testsuite under python2.7" -} - -python_install() { - distutils-r1_python_install - - if use !compute-only; then - for svc in api cert conductor consoleauth network scheduler spicehtml5proxy xvpvncproxy; do - newinitd "${FILESDIR}/nova.initd" "nova-${svc}" - done - fi - use compute && newinitd "${FILESDIR}/nova.initd" "nova-compute" - use novncproxy && newinitd "${FILESDIR}/nova.initd" "nova-novncproxy" - - diropts -m 0750 -o nova -g qemu - dodir /var/log/nova /var/lib/nova/instances - diropts -m 0750 -o nova -g nova - - insinto /etc/nova - insopts -m 0640 -o nova -g nova - newins "${FILESDIR}/etc.liberty/api-paste.ini" "api-paste.ini" - newins "${FILESDIR}/etc.liberty/cells.json" "cells.json" - newins "${FILESDIR}/etc.liberty/logging_sample.conf" "logging_sample.conf" - newins "${DISTDIR}/liberty-nova.conf.sample" "nova.conf.sample" - newins "${FILESDIR}/etc.liberty/policy.json" "policy.json" - newins "${FILESDIR}/etc.liberty/rootwrap.conf" "rootwrap.conf" - #rootwrap filters - insinto /etc/nova/rootwrap.d - newins "${FILESDIR}/etc.liberty/rootwrap.d/api-metadata.filters" "api-metadata.filters" - newins "${FILESDIR}/etc.liberty/rootwrap.d/compute.filters" "compute.filters" - newins "${FILESDIR}/etc.liberty/rootwrap.d/network.filters" "network.filters" - #copy migration conf file (not coppied on install via setup.py script) - insopts -m 0644 - insinto /usr/$(get_libdir)/python2.7/site-packages/nova/db/sqlalchemy/migrate_repo/ - doins "nova/db/sqlalchemy/migrate_repo/migrate.cfg" - #copy the CA cert dir (not coppied on install via setup.py script) - cp -R "${S}/nova/CA" "${D}/usr/$(get_libdir)/python2.7/site-packages/nova/" || die "installing CA files failed" - - #add sudoers definitions for user nova - insinto /etc/sudoers.d/ - insopts -m 0600 -o root -g root - doins "${FILESDIR}/nova-sudoers" - - if use iscsi ; then - # Install udev rules for handle iscsi disk with right links under /dev - udev_newrules "${FILESDIR}/openstack-scsi-disk.rules" 60-openstack-scsi-disk.rules - - insinto /etc/nova/ - doins "${FILESDIR}/scsi-openscsi-link.sh" - fi -} - -pkg_postinst() { - if use iscsi ; then - elog "iscsid needs to be running if you want cinder to connect" - fi -} -- cgit v1.2.3