Remove obj_relationships from objects
In Liberty, we converted to using the manifest-based class action and backport methods, which no longer rely on these object relationship maps. They provide a full manifest of client-side versions with each call, which is far more robust than us trying to hand-edit these mappings (which we get incorrect a lot). Since we're now in Mitaka, we can drop compatibility with clients that don't make the version-manifest calls. Those have also been deprecated in oslo.versionedobjects. Change-Id: Iea8b6348e3b01aaa335ec5408f07826f1e758d20
This commit is contained in:
		@@ -76,9 +76,6 @@ class AgentList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Agent'),
 | 
					        'objects': fields.ListOfObjectsField('Agent'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context, hypervisor=None):
 | 
					    def get_all(cls, context, hypervisor=None):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -163,11 +163,6 @@ class AggregateList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
        'objects': fields.ListOfObjectsField('Aggregate'),
 | 
					        'objects': fields.ListOfObjectsField('Aggregate'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # NOTE(danms): Aggregate was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1'), ('1.1', '1.1'), ('1.2', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def _filter_db_aggregates(cls, db_aggregates, hosts):
 | 
					    def _filter_db_aggregates(cls, db_aggregates, hosts):
 | 
				
			||||||
        if not isinstance(hosts, set):
 | 
					        if not isinstance(hosts, set):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,9 +78,6 @@ class BandwidthUsageList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('BandwidthUsage'),
 | 
					        'objects': fields.ListOfObjectsField('BandwidthUsage'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.2')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.serialize_args
 | 
					    @base.serialize_args
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,13 +81,6 @@ class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject,
 | 
				
			|||||||
        'connection_info': fields.StringField(nullable=True),
 | 
					        'connection_info': fields.StringField(nullable=True),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'instance': [('1.0', '1.13'), ('1.2', '1.14'), ('1.3', '1.15'),
 | 
					 | 
				
			||||||
                     ('1.4', '1.16'), ('1.5', '1.17'), ('1.6', '1.18'),
 | 
					 | 
				
			||||||
                     ('1.8', '1.19'), ('1.9', '1.20'), ('1.13', '1.21'),
 | 
					 | 
				
			||||||
                     ('1.14', '1.22'), ('1.15', '1.23')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _from_db_object(context, block_device_obj,
 | 
					    def _from_db_object(context, block_device_obj,
 | 
				
			||||||
                        db_block_device, expected_attrs=None):
 | 
					                        db_block_device, expected_attrs=None):
 | 
				
			||||||
@@ -279,14 +272,6 @@ class BlockDeviceMappingList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('BlockDeviceMapping'),
 | 
					        'objects': fields.ListOfObjectsField('BlockDeviceMapping'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.1'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.2'), ('1.4', '1.3'), ('1.5', '1.4'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.5'), ('1.7', '1.6'), ('1.8', '1.7'),
 | 
					 | 
				
			||||||
                    ('1.9', '1.8'), ('1.10', '1.9'), ('1.11', '1.10'),
 | 
					 | 
				
			||||||
                    ('1.12', '1.11'), ('1.13', '1.12'), ('1.14', '1.13'),
 | 
					 | 
				
			||||||
                    ('1.15', '1.14'), ('1.16', '1.15')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_instance_uuid(cls, context, instance_uuid, use_slave=False):
 | 
					    def get_by_instance_uuid(cls, context, instance_uuid, use_slave=False):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,11 +84,6 @@ class ComputeNode(base.NovaPersistentObject, base.NovaObject,
 | 
				
			|||||||
        'ram_allocation_ratio': fields.FloatField(),
 | 
					        'ram_allocation_ratio': fields.FloatField(),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'pci_device_pools': [('1.9', '1.0'), ('1.11', '1.1')],
 | 
					 | 
				
			||||||
        'supported_hv_specs': [('1.6', '1.0'), ('1.12', '1.1')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def obj_make_compatible(self, primitive, target_version):
 | 
					    def obj_make_compatible(self, primitive, target_version):
 | 
				
			||||||
        super(ComputeNode, self).obj_make_compatible(primitive, target_version)
 | 
					        super(ComputeNode, self).obj_make_compatible(primitive, target_version)
 | 
				
			||||||
        target_version = utils.convert_version_to_tuple(target_version)
 | 
					        target_version = utils.convert_version_to_tuple(target_version)
 | 
				
			||||||
@@ -368,14 +363,6 @@ class ComputeNodeList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('ComputeNode'),
 | 
					        'objects': fields.ListOfObjectsField('ComputeNode'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): ComputeNode was at 1.2 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.2'), ('1.1', '1.3'), ('1.2', '1.3'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.4'), ('1.4', '1.5'), ('1.5', '1.5'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.6'), ('1.7', '1.7'), ('1.8', '1.8'),
 | 
					 | 
				
			||||||
                    ('1.9', '1.9'), ('1.10', '1.10'), ('1.11', '1.11'),
 | 
					 | 
				
			||||||
                    ('1.12', '1.12'), ('1.13', '1.13'), ('1.14', '1.14')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context):
 | 
					    def get_all(cls, context):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -66,9 +66,6 @@ class DNSDomainList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('DNSDomain'),
 | 
					        'objects': fields.ListOfObjectsField('DNSDomain'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context):
 | 
					    def get_all(cls, context):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -68,17 +68,6 @@ class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
				
			|||||||
        'floating_ips': fields.ObjectField('FloatingIPList'),
 | 
					        'floating_ips': fields.ObjectField('FloatingIPList'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'instance': [('1.0', '1.13'), ('1.2', '1.14'), ('1.3', '1.15'),
 | 
					 | 
				
			||||||
                     ('1.6', '1.16'), ('1.7', '1.17'), ('1.8', '1.18'),
 | 
					 | 
				
			||||||
                     ('1.9', '1.19'), ('1.10', '1.20'), ('1.11', '1.21'),
 | 
					 | 
				
			||||||
                     ('1.12', '1.22'), ('1.13', '1.23')],
 | 
					 | 
				
			||||||
        'network': [('1.0', '1.2')],
 | 
					 | 
				
			||||||
        'virtual_interface': [('1.1', '1.0')],
 | 
					 | 
				
			||||||
        'floating_ips': [('1.5', '1.7'), ('1.11', '1.8'), ('1.12', '1.9'),
 | 
					 | 
				
			||||||
                         ('1.13', '1.10'), ('1.14', '1.11')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def obj_make_compatible(self, primitive, target_version):
 | 
					    def obj_make_compatible(self, primitive, target_version):
 | 
				
			||||||
        super(FixedIP, self).obj_make_compatible(primitive, target_version)
 | 
					        super(FixedIP, self).obj_make_compatible(primitive, target_version)
 | 
				
			||||||
        target_version = utils.convert_version_to_tuple(target_version)
 | 
					        target_version = utils.convert_version_to_tuple(target_version)
 | 
				
			||||||
@@ -234,13 +223,6 @@ class FixedIPList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('FixedIP'),
 | 
					        'objects': fields.ListOfObjectsField('FixedIP'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.2'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.3'), ('1.4', '1.4'), ('1.5', '1.5'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.6'), ('1.7', '1.7'), ('1.8', '1.8'),
 | 
					 | 
				
			||||||
                    ('1.9', '1.9'), ('1.10', '1.10'), ('1.11', '1.11'),
 | 
					 | 
				
			||||||
                    ('1.12', '1.12'), ('1.13', '1.13'), ('1.14', '1.14')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @obj_base.remotable_classmethod
 | 
					    @obj_base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context):
 | 
					    def get_all(cls, context):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -259,9 +259,6 @@ class FlavorList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Flavor'),
 | 
					        'objects': fields.ListOfObjectsField('Flavor'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context, inactive=False, filters=None,
 | 
					    def get_all(cls, context, inactive=False, filters=None,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,13 +49,6 @@ class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
				
			|||||||
        'fixed_ip': fields.ObjectField('FixedIP', nullable=True),
 | 
					        'fixed_ip': fields.ObjectField('FixedIP', nullable=True),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'fixed_ip': [('1.0', '1.1'), ('1.2', '1.2'), ('1.3', '1.3'),
 | 
					 | 
				
			||||||
                     ('1.4', '1.4'), ('1.5', '1.5'), ('1.6', '1.6'),
 | 
					 | 
				
			||||||
                     ('1.7', '1.11'), ('1.8', '1.12'), ('1.9', '1.13'),
 | 
					 | 
				
			||||||
                     ('1.10', '1.14')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _from_db_object(context, floatingip, db_floatingip,
 | 
					    def _from_db_object(context, floatingip, db_floatingip,
 | 
				
			||||||
                        expected_attrs=None):
 | 
					                        expected_attrs=None):
 | 
				
			||||||
@@ -183,12 +176,6 @@ class FloatingIPList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('FloatingIP'),
 | 
					        'objects': fields.ListOfObjectsField('FloatingIP'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.1'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.2'), ('1.4', '1.3'), ('1.5', '1.4'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.5'), ('1.7', '1.6'), ('1.8', '1.7'),
 | 
					 | 
				
			||||||
                    ('1.9', '1.8'), ('1.10', '1.9'), ('1.11', '1.10')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    VERSION = '1.11'
 | 
					    VERSION = '1.11'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @obj_base.remotable_classmethod
 | 
					    @obj_base.remotable_classmethod
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,10 +39,6 @@ class HostMapping(base.NovaTimestampObject, base.NovaObject,
 | 
				
			|||||||
        'cell_mapping': fields.ObjectField('CellMapping'),
 | 
					        'cell_mapping': fields.ObjectField('CellMapping'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'cell_mapping': [('1.0', '1.0')]
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def _get_cell_mapping(self):
 | 
					    def _get_cell_mapping(self):
 | 
				
			||||||
        session = db_api.get_api_session()
 | 
					        session = db_api.get_api_session()
 | 
				
			||||||
        with session.begin():
 | 
					        with session.begin():
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,18 +71,6 @@ class ImageMeta(base.NovaObject):
 | 
				
			|||||||
        'properties': fields.ObjectField('ImageMetaProps'),
 | 
					        'properties': fields.ObjectField('ImageMetaProps'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'properties': [('1.0', '1.0'),
 | 
					 | 
				
			||||||
                       ('1.1', '1.1'),
 | 
					 | 
				
			||||||
                       ('1.2', '1.2'),
 | 
					 | 
				
			||||||
                       ('1.3', '1.3'),
 | 
					 | 
				
			||||||
                       ('1.4', '1.4'),
 | 
					 | 
				
			||||||
                       ('1.5', '1.5'),
 | 
					 | 
				
			||||||
                       ('1.6', '1.6'),
 | 
					 | 
				
			||||||
                       ('1.7', '1.7'),
 | 
					 | 
				
			||||||
                       ],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def from_dict(cls, image_meta):
 | 
					    def from_dict(cls, image_meta):
 | 
				
			||||||
        """Create instance from image metadata dict
 | 
					        """Create instance from image metadata dict
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -102,10 +102,6 @@ class InstanceActionList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('InstanceAction'),
 | 
					        'objects': fields.ListOfObjectsField('InstanceAction'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): InstanceAction was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1')]
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_instance_uuid(cls, context, instance_uuid):
 | 
					    def get_by_instance_uuid(cls, context, instance_uuid):
 | 
				
			||||||
@@ -213,9 +209,6 @@ class InstanceActionEventList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('InstanceActionEvent'),
 | 
					        'objects': fields.ListOfObjectsField('InstanceActionEvent'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_action(cls, context, action_id):
 | 
					    def get_by_action(cls, context, action_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -101,10 +101,6 @@ class InstanceFaultList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('InstanceFault'),
 | 
					        'objects': fields.ListOfObjectsField('InstanceFault'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): InstanceFault was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1'), ('1.1', '1.2')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_instance_uuids(cls, context, instance_uuids):
 | 
					    def get_by_instance_uuids(cls, context, instance_uuids):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -243,12 +243,6 @@ class InstanceGroupList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('InstanceGroup'),
 | 
					        'objects': fields.ListOfObjectsField('InstanceGroup'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): InstanceGroup was at 1.3 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.3'), ('1.1', '1.4'), ('1.2', '1.5'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.6'), ('1.4', '1.7'), ('1.5', '1.8'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.9'), ('1.7', '1.10')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_project_id(cls, context, project_id):
 | 
					    def get_by_project_id(cls, context, project_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -120,9 +120,6 @@ class InstanceMappingList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('InstanceMapping'),
 | 
					        'objects': fields.ListOfObjectsField('InstanceMapping'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _get_by_project_id_from_db(context, project_id):
 | 
					    def _get_by_project_id_from_db(context, project_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,10 +40,6 @@ class InstanceNUMACell(base.NovaObject,
 | 
				
			|||||||
        'cpu_pinning_raw': obj_fields.DictOfIntegersField(nullable=True)
 | 
					        'cpu_pinning_raw': obj_fields.DictOfIntegersField(nullable=True)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'cpu_topology': [('1.2', '1.0')]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cpu_pinning = obj_fields.DictProxyField('cpu_pinning_raw')
 | 
					    cpu_pinning = obj_fields.DictProxyField('cpu_pinning_raw')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, **kwargs):
 | 
					    def __init__(self, **kwargs):
 | 
				
			||||||
@@ -126,10 +122,6 @@ class InstanceNUMATopology(base.NovaObject,
 | 
				
			|||||||
        'cells': obj_fields.ListOfObjectsField('InstanceNUMACell'),
 | 
					        'cells': obj_fields.ListOfObjectsField('InstanceNUMACell'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'cells': [('1.0', '1.0'), ('1.2', '1.2')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def obj_from_primitive(cls, primitive, context=None):
 | 
					    def obj_from_primitive(cls, primitive, context=None):
 | 
				
			||||||
        if 'nova_object.name' in primitive:
 | 
					        if 'nova_object.name' in primitive:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,10 +65,6 @@ class InstancePCIRequests(base.NovaObject,
 | 
				
			|||||||
        'requests': fields.ListOfObjectsField('InstancePCIRequest'),
 | 
					        'requests': fields.ListOfObjectsField('InstancePCIRequest'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'requests': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def obj_make_compatible(self, primitive, target_version):
 | 
					    def obj_make_compatible(self, primitive, target_version):
 | 
				
			||||||
        target_version = utils.convert_version_to_tuple(target_version)
 | 
					        target_version = utils.convert_version_to_tuple(target_version)
 | 
				
			||||||
        if target_version < (1, 1) and 'requests' in primitive:
 | 
					        if target_version < (1, 1) and 'requests' in primitive:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,10 +90,6 @@ class KeyPairList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('KeyPair'),
 | 
					        'objects': fields.ListOfObjectsField('KeyPair'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): KeyPair was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1'), ('1.1', '1.2'), ('1.2', '1.3')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_user(cls, context, user_id):
 | 
					    def get_by_user(cls, context, user_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -132,10 +132,6 @@ class MigrationList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Migration'),
 | 
					        'objects': fields.ListOfObjectsField('Migration'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): Migration was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1'), ('1.1', '1.1'), ('1.2', '1.2')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_unconfirmed_by_dest_compute(cls, context, confirm_window,
 | 
					    def get_unconfirmed_by_dest_compute(cls, context, confirm_window,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,11 +44,6 @@ class MigrationContext(base.NovaPersistentObject, base.NovaObject):
 | 
				
			|||||||
                                                nullable=True),
 | 
					                                                nullable=True),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'new_numa_topology': [('1.0', '1.2')],
 | 
					 | 
				
			||||||
        'old_numa_topology': [('1.0', '1.2')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def obj_from_db_obj(cls, db_obj):
 | 
					    def obj_from_db_obj(cls, db_obj):
 | 
				
			||||||
        primitive = jsonutils.loads(db_obj)
 | 
					        primitive = jsonutils.loads(db_obj)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -84,9 +84,6 @@ class MonitorMetricList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('MonitorMetric'),
 | 
					        'objects': fields.ListOfObjectsField('MonitorMetric'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def from_json(cls, metrics):
 | 
					    def from_json(cls, metrics):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -217,9 +217,6 @@ class NetworkList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Network'),
 | 
					        'objects': fields.ListOfObjectsField('Network'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.2')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @obj_base.remotable_classmethod
 | 
					    @obj_base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context, project_only='allow_none'):
 | 
					    def get_all(cls, context, project_only='allow_none'):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,9 +58,6 @@ class NetworkRequestList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
				
			|||||||
        'objects': fields.ListOfObjectsField('NetworkRequest'),
 | 
					        'objects': fields.ListOfObjectsField('NetworkRequest'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    VERSION = '1.1'
 | 
					    VERSION = '1.1'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def as_tuples(self):
 | 
					    def as_tuples(self):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,10 +52,6 @@ class NUMACell(base.NovaObject):
 | 
				
			|||||||
        'mempages': fields.ListOfObjectsField('NUMAPagesTopology'),
 | 
					        'mempages': fields.ListOfObjectsField('NUMAPagesTopology'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'mempages': [('1.2', '1.0')]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __eq__(self, other):
 | 
					    def __eq__(self, other):
 | 
				
			||||||
        return all_things_equal(self, other)
 | 
					        return all_things_equal(self, other)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -176,10 +172,6 @@ class NUMATopology(base.NovaObject,
 | 
				
			|||||||
        'cells': fields.ListOfObjectsField('NUMACell'),
 | 
					        'cells': fields.ListOfObjectsField('NUMACell'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'cells': [('1.0', '1.0'), ('1.1', '1.1'), ('1.2', '1.2')]
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def obj_from_primitive(cls, primitive, context=None):
 | 
					    def obj_from_primitive(cls, primitive, context=None):
 | 
				
			||||||
        if 'nova_object.name' in primitive:
 | 
					        if 'nova_object.name' in primitive:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -286,10 +286,6 @@ class PciDeviceList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('PciDevice'),
 | 
					        'objects': fields.ListOfObjectsField('PciDevice'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): PciDevice was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1'), ('1.1', '1.2'), ('1.2', '1.3')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, *args, **kwargs):
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
        super(PciDeviceList, self).__init__(*args, **kwargs)
 | 
					        super(PciDeviceList, self).__init__(*args, **kwargs)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,9 +77,6 @@ class PciDevicePoolList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
             'objects': fields.ListOfObjectsField('PciDevicePool'),
 | 
					             'objects': fields.ListOfObjectsField('PciDevicePool'),
 | 
				
			||||||
             }
 | 
					             }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def from_pci_stats(pci_stats):
 | 
					def from_pci_stats(pci_stats):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,17 +53,6 @@ class RequestSpec(base.NovaObject):
 | 
				
			|||||||
        'instance_uuid': fields.UUIDField(),
 | 
					        'instance_uuid': fields.UUIDField(),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'image': [('1.0', '1.5'), ('1.1', '1.6'),
 | 
					 | 
				
			||||||
                  ('1.4', '1.7')],
 | 
					 | 
				
			||||||
        'numa_topology': [('1.0', '1.2')],
 | 
					 | 
				
			||||||
        'flavor': [('1.0', '1.1')],
 | 
					 | 
				
			||||||
        'pci_requests': [('1.0', '1.1')],
 | 
					 | 
				
			||||||
        'retry': [('1.0', '1.0'), ('1.2', '1.1')],
 | 
					 | 
				
			||||||
        'limits': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
        'instance_group': [('1.0', '1.9'), ('1.3', '1.10')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def vcpus(self):
 | 
					    def vcpus(self):
 | 
				
			||||||
        return self.flavor.vcpus
 | 
					        return self.flavor.vcpus
 | 
				
			||||||
@@ -316,10 +305,6 @@ class SchedulerRetries(base.NovaObject):
 | 
				
			|||||||
        'hosts': fields.ObjectField('ComputeNodeList'),
 | 
					        'hosts': fields.ObjectField('ComputeNodeList'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'hosts': [('1.0', '1.13'), ('1.1', '1.14')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def from_dict(cls, context, retry_dict):
 | 
					    def from_dict(cls, context, retry_dict):
 | 
				
			||||||
        # NOTE(sbauza): We are not persisting the user context since it's only
 | 
					        # NOTE(sbauza): We are not persisting the user context since it's only
 | 
				
			||||||
@@ -357,10 +342,6 @@ class SchedulerLimits(base.NovaObject):
 | 
				
			|||||||
        'memory_mb': fields.IntegerField(nullable=True, default=None),
 | 
					        'memory_mb': fields.IntegerField(nullable=True, default=None),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'numa_topology': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def from_dict(cls, limits_dict):
 | 
					    def from_dict(cls, limits_dict):
 | 
				
			||||||
        limits = cls(**limits_dict)
 | 
					        limits = cls(**limits_dict)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -83,10 +83,6 @@ class SecurityGroupList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('SecurityGroup'),
 | 
					        'objects': fields.ListOfObjectsField('SecurityGroup'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): SecurityGroup was at 1.1 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, *args, **kwargs):
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
        super(SecurityGroupList, self).__init__(*args, **kwargs)
 | 
					        super(SecurityGroupList, self).__init__(*args, **kwargs)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,11 +39,6 @@ class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject,
 | 
				
			|||||||
        'grantee_group': fields.ObjectField('SecurityGroup', nullable=True),
 | 
					        'grantee_group': fields.ObjectField('SecurityGroup', nullable=True),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'parent_group': [('1.0', '1.1'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        'grantee_group': [('1.0', '1.1'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _from_db_subgroup(context, db_group):
 | 
					    def _from_db_subgroup(context, db_group):
 | 
				
			||||||
        if db_group is None:
 | 
					        if db_group is None:
 | 
				
			||||||
@@ -91,9 +86,6 @@ class SecurityGroupRuleList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
        'objects': fields.ListOfObjectsField('SecurityGroupRule'),
 | 
					        'objects': fields.ListOfObjectsField('SecurityGroupRule'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    VERSION = '1.1'
 | 
					    VERSION = '1.1'
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_security_group_id(cls, context, secgroup_id):
 | 
					    def get_by_security_group_id(cls, context, secgroup_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -100,13 +100,6 @@ class Service(base.NovaPersistentObject, base.NovaObject,
 | 
				
			|||||||
        'version': fields.IntegerField(),
 | 
					        'version': fields.IntegerField(),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'compute_node': [('1.1', '1.4'), ('1.3', '1.5'), ('1.5', '1.6'),
 | 
					 | 
				
			||||||
                         ('1.7', '1.8'), ('1.8', '1.9'), ('1.9', '1.10'),
 | 
					 | 
				
			||||||
                         ('1.12', '1.11'), ('1.15', '1.12'), ('1.17', '1.13'),
 | 
					 | 
				
			||||||
                         ('1.18', '1.14')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def __init__(self, *args, **kwargs):
 | 
					    def __init__(self, *args, **kwargs):
 | 
				
			||||||
        # NOTE(danms): We're going against the rules here and overriding
 | 
					        # NOTE(danms): We're going against the rules here and overriding
 | 
				
			||||||
        # init. The reason is that we want to *ensure* that we're always
 | 
					        # init. The reason is that we want to *ensure* that we're always
 | 
				
			||||||
@@ -326,15 +319,6 @@ class ServiceList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Service'),
 | 
					        'objects': fields.ListOfObjectsField('Service'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    # NOTE(danms): Service was at 1.2 before we added this
 | 
					 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.2'), ('1.1', '1.3'), ('1.2', '1.4'),
 | 
					 | 
				
			||||||
                    ('1.3', '1.5'), ('1.4', '1.6'), ('1.5', '1.7'),
 | 
					 | 
				
			||||||
                    ('1.6', '1.8'), ('1.7', '1.9'), ('1.8', '1.10'),
 | 
					 | 
				
			||||||
                    ('1.9', '1.11'), ('1.10', '1.12'), ('1.11', '1.13'),
 | 
					 | 
				
			||||||
                    ('1.12', '1.14'), ('1.13', '1.15'), ('1.14', '1.16'),
 | 
					 | 
				
			||||||
                    ('1.15', '1.17'), ('1.16', '1.18'), ('1.17', '1.19')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_topic(cls, context, topic):
 | 
					    def get_by_topic(cls, context, topic):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,9 +58,6 @@ class TagList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('Tag'),
 | 
					        'objects': fields.ListOfObjectsField('Tag'),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0'), ('1.1', '1.1')],
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_by_resource_id(cls, context, resource_id):
 | 
					    def get_by_resource_id(cls, context, resource_id):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,9 +71,6 @@ class TaskLogList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('TaskLog'),
 | 
					        'objects': fields.ListOfObjectsField('TaskLog'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.serialize_args
 | 
					    @base.serialize_args
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,11 +34,6 @@ class VirtCPUModel(base.NovaObject):
 | 
				
			|||||||
        'match': fields.CPUMatchField(nullable=True),
 | 
					        'match': fields.CPUMatchField(nullable=True),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'topology': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
        'features': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def obj_load_attr(self, attrname):
 | 
					    def obj_load_attr(self, attrname):
 | 
				
			||||||
        setattr(self, attrname, None)
 | 
					        setattr(self, attrname, None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -86,9 +86,6 @@ class VirtualInterfaceList(base.ObjectListBase, base.NovaObject):
 | 
				
			|||||||
    fields = {
 | 
					    fields = {
 | 
				
			||||||
        'objects': fields.ListOfObjectsField('VirtualInterface'),
 | 
					        'objects': fields.ListOfObjectsField('VirtualInterface'),
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    obj_relationships = {
 | 
					 | 
				
			||||||
        'objects': [('1.0', '1.0')],
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @base.remotable_classmethod
 | 
					    @base.remotable_classmethod
 | 
				
			||||||
    def get_all(cls, context):
 | 
					    def get_all(cls, context):
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user