From ce9a3cbe55c5b556fa49ce7051b4f0b5e62efb87 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Mon, 7 Sep 2020 19:04:34 +0300 Subject: [PATCH] Add _max_microversion for aggregates Since compute api 2.41[1] uuid filed has been added to the aggregates. We should be able to return it in the aggregate object [1] https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id38 Change-Id: If02a711e02fd72989cde8e2c25e5b4569ffe628e --- openstack/compute/v2/aggregate.py | 4 ++++ openstack/tests/unit/cloud/test_aggregate.py | 1 + openstack/tests/unit/compute/v2/test_aggregate.py | 8 +++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/openstack/compute/v2/aggregate.py b/openstack/compute/v2/aggregate.py index ab0f05d0f..f0d8d8501 100644 --- a/openstack/compute/v2/aggregate.py +++ b/openstack/compute/v2/aggregate.py @@ -38,6 +38,10 @@ class Aggregate(resource.Resource): hosts = resource.Body('hosts') #: Metadata metadata = resource.Body('metadata') + #: UUID + uuid = resource.Body('uuid') + # uuid introduced in 2.41 + _max_microversion = '2.41' def _action(self, session, body, microversion=None): """Preform aggregate actions given the message body.""" diff --git a/openstack/tests/unit/cloud/test_aggregate.py b/openstack/tests/unit/cloud/test_aggregate.py index 45975bbc1..704f44dab 100644 --- a/openstack/tests/unit/cloud/test_aggregate.py +++ b/openstack/tests/unit/cloud/test_aggregate.py @@ -20,6 +20,7 @@ class TestAggregate(base.TestCase): super(TestAggregate, self).setUp() self.aggregate_name = self.getUniqueString('aggregate') self.fake_aggregate = fakes.make_fake_aggregate(1, self.aggregate_name) + self.use_compute_discovery() def test_create_aggregate(self): create_aggregate = self.fake_aggregate.copy() diff --git a/openstack/tests/unit/compute/v2/test_aggregate.py b/openstack/tests/unit/compute/v2/test_aggregate.py index 092d0dad5..b43dee5d9 100644 --- a/openstack/tests/unit/compute/v2/test_aggregate.py +++ b/openstack/tests/unit/compute/v2/test_aggregate.py @@ -12,9 +12,13 @@ from unittest import mock +from keystoneauth1 import adapter + from openstack.compute.v2 import aggregate from openstack.tests.unit import base +IDENTIFIER = 'IDENTIFIER' + EXAMPLE = { "name": "m-family", "availability_zone": None, @@ -24,6 +28,7 @@ EXAMPLE = { "hosts": ["oscomp-m001", "oscomp-m002", "oscomp-m003"], "deleted_at": None, "id": 4, + "uuid": IDENTIFIER, "metadata": {"type": "public", "family": "m-family"} } @@ -37,7 +42,7 @@ class TestAggregate(base.TestCase): self.resp.json = mock.Mock(return_value=self.resp.body) self.resp.status_code = 200 self.resp.headers = {'Accept': ''} - self.sess = mock.Mock() + self.sess = mock.Mock(spec=adapter.Adapter) self.sess.post = mock.Mock(return_value=self.resp) def test_basic(self): @@ -58,6 +63,7 @@ class TestAggregate(base.TestCase): self.assertEqual(EXAMPLE['deleted'], sot.deleted) self.assertEqual(EXAMPLE['hosts'], sot.hosts) self.assertEqual(EXAMPLE['id'], sot.id) + self.assertEqual(EXAMPLE['uuid'], sot.uuid) self.assertDictEqual(EXAMPLE['metadata'], sot.metadata) def test_add_host(self):