summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/nova/Manifest1
-rw-r--r--sys-cluster/nova/files/12.0.2-CVE-2016-2140.patch165
-rw-r--r--sys-cluster/nova/nova-12.0.2-r1.ebuild313
3 files changed, 0 insertions, 479 deletions
diff --git a/sys-cluster/nova/Manifest b/sys-cluster/nova/Manifest
index 3d9b928f3a1..d5a101f4ebc 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 20b35b76a81..00000000000
--- 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 <lyarwood@redhat.com>
-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 841de6ea08e..00000000000
--- 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/sphinx-1.3[${PYTHON_USEDEP}]
- >=dev-python/pillow-2.4.0[${PYTHON_USEDEP}]
- <dev-python/pillow-3.0.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-1.0.10[${PYTHON_USEDEP}]
- )
- sqlite? (
- >=dev-python/sqlalchemy-0.9.9[sqlite,${PYTHON_USEDEP}]
- <dev-python/sqlalchemy-1.0.10[sqlite,${PYTHON_USEDEP}]
- )
- mysql? (
- dev-python/mysql-python
- >=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}]
- <dev-python/sqlalchemy-1.0.10[${PYTHON_USEDEP}]
- )
- postgres? (
- dev-python/psycopg:2
- >=dev-python/sqlalchemy-0.9.9[${PYTHON_USEDEP}]
- <dev-python/sqlalchemy-1.0.10[${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/prettytable-0.8[${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/jsonschema-2.5.1-r9999[${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/psutil-2.0.0[${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
-}