Add in_tree field to RequestGroup object
This patch adds new `in_tree` field to `RequestGroup` object. This field is used to store the target compute node uuid. Change-Id: Ic9444c60b3bba00c5a3b3c724c418c7629d41743 Blueprint: use-placement-in-tree
This commit is contained in:
parent
e25d59078e
commit
f6667b05d2
|
@ -989,7 +989,8 @@ class RequestGroup(base.NovaObject):
|
|||
"""
|
||||
# Version 1.0: Initial version
|
||||
# Version 1.1: add requester_id and provider_uuids fields
|
||||
VERSION = '1.1'
|
||||
# Version 1.2: add in_tree field
|
||||
VERSION = '1.2'
|
||||
|
||||
fields = {
|
||||
'use_same_provider': fields.BooleanField(default=True),
|
||||
|
@ -1010,6 +1011,7 @@ class RequestGroup(base.NovaObject):
|
|||
# NOTE(gibi): this can be more than one if this is the unnumbered
|
||||
# request group (i.e. use_same_provider=False)
|
||||
'provider_uuids': fields.ListOfUUIDField(default=[]),
|
||||
'in_tree': fields.UUIDField(nullable=True, default=None),
|
||||
}
|
||||
|
||||
def __init__(self, context=None, **kwargs):
|
||||
|
@ -1054,6 +1056,9 @@ class RequestGroup(base.NovaObject):
|
|||
super(RequestGroup, self).obj_make_compatible(
|
||||
primitive, target_version)
|
||||
target_version = versionutils.convert_version_to_tuple(target_version)
|
||||
if target_version < (1, 2):
|
||||
if 'in_tree' in primitive:
|
||||
del primitive['in_tree']
|
||||
if target_version < (1, 1):
|
||||
if 'requester_id' in primitive:
|
||||
del primitive['requester_id']
|
||||
|
|
|
@ -1120,7 +1120,7 @@ object_data = {
|
|||
'PowerVMLiveMigrateData': '1.4-a745f4eda16b45e1bc5686a0c498f27e',
|
||||
'Quotas': '1.3-40fcefe522111dddd3e5e6155702cf4e',
|
||||
'QuotasNoOp': '1.3-347a039fc7cfee7b225b68b5181e0733',
|
||||
'RequestGroup': '1.1-5a330f65df2d91356b1da19f10540ec8',
|
||||
'RequestGroup': '1.2-b9f9db748fe8cde0573af69db771c5ce',
|
||||
'RequestSpec': '1.12-25010470f219af9b6163f2a457a513f5',
|
||||
'S3ImageMapping': '1.0-7dd7366a890d82660ed121de9092276e',
|
||||
'SCSIDeviceBus': '1.0-61c1e89a00901069ab1cf2991681533b',
|
||||
|
|
|
@ -930,8 +930,9 @@ class TestRequestGroupObject(test.TestCase):
|
|||
self.assertEqual(set(), rg.required_traits)
|
||||
self.assertEqual(set(), rg.forbidden_traits)
|
||||
self.assertEqual([], rg.aggregates)
|
||||
self.assertIsNone(None, rg.requester_id)
|
||||
self.assertIsNone(rg.requester_id)
|
||||
self.assertEqual([], rg.provider_uuids)
|
||||
self.assertIsNone(rg.in_tree)
|
||||
|
||||
def test_from_port_request(self):
|
||||
port_resource_request = {
|
||||
|
@ -982,9 +983,24 @@ class TestRequestGroupObject(test.TestCase):
|
|||
requester_id=uuids.requester, provider_uuids=[uuids.rp1],
|
||||
required_traits=set(['CUSTOM_PHYSNET_2']))
|
||||
versions = ovo_base.obj_tree_get_versions('RequestGroup')
|
||||
primitive = req_obj.obj_to_primitive(
|
||||
target_version='1.2',
|
||||
version_manifest=versions)['nova_object.data']
|
||||
self.assertIn('in_tree', primitive)
|
||||
self.assertIn('requester_id', primitive)
|
||||
self.assertIn('provider_uuids', primitive)
|
||||
self.assertIn('required_traits', primitive)
|
||||
primitive = req_obj.obj_to_primitive(
|
||||
target_version='1.1',
|
||||
version_manifest=versions)['nova_object.data']
|
||||
self.assertNotIn('in_tree', primitive)
|
||||
self.assertIn('requester_id', primitive)
|
||||
self.assertIn('provider_uuids', primitive)
|
||||
self.assertIn('required_traits', primitive)
|
||||
primitive = req_obj.obj_to_primitive(
|
||||
target_version='1.0',
|
||||
version_manifest=versions)['nova_object.data']
|
||||
self.assertNotIn('in_tree', primitive)
|
||||
self.assertNotIn('requester_id', primitive)
|
||||
self.assertNotIn('provider_uuids', primitive)
|
||||
self.assertIn('required_traits', primitive)
|
||||
|
|
Loading…
Reference in New Issue