Begin the transition to an explicit object registry
In oslo.versionedobjects, the registry is opt-in instead of implicit. This patch sets the stage for moving to that by defining a no-op registry with a compatible register method so that we can go ahead and decorate the object classes and then move the registry underneath them. Related to blueprint use-oslo-objects Change-Id: Iddc68a2d8a9b103621bc60a7426fe495edf80aad
This commit is contained in:
		@@ -20,6 +20,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Agent(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
            base.NovaObjectDictCompat):
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
@@ -70,6 +71,7 @@ class Agent(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        self.obj_reset_changes()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class AgentList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Aggregate(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -150,6 +151,7 @@ class Aggregate(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        return self.metadata.get('availability_zone', None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class AggregateList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Added key argument to get_by_host()
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class BandwidthUsage(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                     base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -65,6 +66,7 @@ class BandwidthUsage(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        self._from_db_object(self._context, self, db_bw_usage)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class BandwidthUsageList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Add use_slave to get_by_uuids
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,17 @@ def make_class_properties(cls):
 | 
			
		||||
        setattr(cls, name, property(getter, setter, deleter))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# NOTE(danms): This is transitional to get the registration decorator
 | 
			
		||||
# on everything before we make a cut over
 | 
			
		||||
class NovaObjectRegistry(object):
 | 
			
		||||
    classes = []
 | 
			
		||||
 | 
			
		||||
    @classmethod
 | 
			
		||||
    def register(cls, obj_cls):
 | 
			
		||||
        cls.classes.append(obj_cls.obj_name())
 | 
			
		||||
        return obj_cls
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NovaObjectMetaclass(type):
 | 
			
		||||
    """Metaclass that allows tracking of object classes."""
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,7 @@ def _expected_cols(expected_attrs):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                         base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -232,6 +233,7 @@ class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        self.obj_reset_changes(fields=['instance'])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class BlockDeviceMappingList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: BlockDeviceMapping <= version 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ from nova.objects import base
 | 
			
		||||
from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class CellMapping(base.NovaTimestampObject, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ from nova import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class ComputeNode(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                  base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -271,6 +272,7 @@ class ComputeNode(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        return self._cached_service
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class ComputeNodeList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              ComputeNode <= version 1.2
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class DNSDomain(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -58,6 +59,7 @@ class DNSDomain(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        db.dnsdomain_unregister(context, domain)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class DNSDomainList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class EC2InstanceMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                         base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -60,6 +61,7 @@ class EC2InstanceMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class EC2VolumeMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                       base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -100,6 +102,7 @@ class EC2VolumeMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class EC2SnapshotMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                         base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -140,6 +143,7 @@ class EC2SnapshotMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class S3ImageMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                     base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -179,6 +183,7 @@ class S3ImageMapping(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
            return cls._from_db_object(context, cls(context), db_s3imap)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class EC2Ids(base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -29,6 +29,7 @@ EVENT_STATUSES = ['failed', 'completed', 'in-progress']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceExternalEvent(obj_base.NovaObject,
 | 
			
		||||
                            obj_base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ FIXED_IP_OPTIONAL_ATTRS = ['instance', 'network', 'virtual_interface',
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
              obj_base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -203,6 +204,7 @@ class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
        self.obj_reset_changes(['instance_uuid', 'instance'])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class FixedIPList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Added get_by_network()
 | 
			
		||||
 
 | 
			
		||||
@@ -23,6 +23,7 @@ OPTIONAL_FIELDS = ['extra_specs', 'projects']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Flavor(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
             base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -250,6 +251,7 @@ class Flavor(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        db.flavor_destroy(self._context, self.name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class FlavorList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    VERSION = '1.1'
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ FLOATING_IP_OPTIONAL_ATTRS = ['fixed_ip']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
                 obj_base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -162,6 +163,7 @@ class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
        self._from_db_object(self._context, self, db_floatingip)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class FloatingIPList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
			
		||||
    # Version 1.3: FloatingIP 1.2
 | 
			
		||||
    # Version 1.4: FloatingIP 1.3
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class HVSpec(base.NovaObject,
 | 
			
		||||
             base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ from nova import utils
 | 
			
		||||
from nova.virt import hardware
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class ImageMeta(base.NovaObject):
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 | 
			
		||||
@@ -98,6 +99,7 @@ class ImageMeta(base.NovaObject):
 | 
			
		||||
        return cls.from_dict(image_meta)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class ImageMetaProps(base.NovaObject):
 | 
			
		||||
    VERSION = ImageMeta.VERSION
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -133,6 +133,7 @@ def compat_instance(instance):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Instance(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
               base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -1169,6 +1170,7 @@ def _make_instance_list(context, inst_list, db_inst_list, expected_attrs):
 | 
			
		||||
    return inst_list
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Added use_slave to get_by_host
 | 
			
		||||
 
 | 
			
		||||
@@ -21,6 +21,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceAction(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                     base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -93,6 +94,7 @@ class InstanceAction(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        self._from_db_object(self._context, self, db_action)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceActionList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              InstanceAction <= version 1.1
 | 
			
		||||
@@ -112,6 +114,7 @@ class InstanceActionList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceActionEvent(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                          base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -204,6 +207,7 @@ class InstanceActionEvent(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        self.finish_with_failure(self._context, exc_val=None, exc_tb=None)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceActionEventList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    fields = {
 | 
			
		||||
        'objects': fields.ListOfObjectsField('InstanceActionEvent'),
 | 
			
		||||
 
 | 
			
		||||
@@ -30,6 +30,7 @@ LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceFault(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                    base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -90,6 +91,7 @@ class InstanceFault(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                LOG.exception(_LE("Failed to notify cells of instance fault"))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceFaultList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              InstanceFault <= version 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ from nova import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceGroup(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                    base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -197,6 +198,7 @@ class InstanceGroup(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        return len(instances)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceGroupList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              InstanceGroup <= version 1.3
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@ LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceInfoCache(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                        base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ from nova.objects import base
 | 
			
		||||
from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceMapping(base.NovaTimestampObject, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
@@ -107,6 +108,7 @@ class InstanceMapping(base.NovaTimestampObject, base.NovaObject):
 | 
			
		||||
        self._destroy_in_db(self._context, self.instance_uuid)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceMappingList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ from nova.virt import hardware
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceNUMACell(base.NovaObject,
 | 
			
		||||
                       base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -109,6 +110,7 @@ class InstanceNUMACell(base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstanceNUMATopology(base.NovaObject,
 | 
			
		||||
                           base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ from nova import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstancePCIRequest(base.NovaObject,
 | 
			
		||||
                         base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -52,6 +53,7 @@ class InstancePCIRequest(base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class InstancePCIRequests(base.NovaObject,
 | 
			
		||||
                          base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ KEYPAIR_TYPE_X509 = 'x509'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class KeyPair(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
              base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -78,6 +79,7 @@ class KeyPair(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        db.key_pair_destroy(self._context, self.user_id, self.name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class KeyPairList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              KeyPair <= version 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -28,6 +28,7 @@ def _determine_migration_type(migration):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Migration(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -115,6 +116,7 @@ class Migration(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        return objects.Instance.get_by_uuid(self._context, self.instance_uuid)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class MigrationList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              Migration <= 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ CONF.register_opts(network_opts)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class Network(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
              obj_base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -206,6 +207,7 @@ class Network(obj_base.NovaPersistentObject, obj_base.NovaObject,
 | 
			
		||||
            self._from_db_object(context, self, db_network)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class NetworkList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Added get_by_project()
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ from nova import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class NetworkRequest(obj_base.NovaObject,
 | 
			
		||||
                     obj_base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -57,6 +58,7 @@ class NetworkRequest(obj_base.NovaObject,
 | 
			
		||||
            return cls(network_id=network_id, address=address)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@obj_base.NovaObjectRegistry.register
 | 
			
		||||
class NetworkRequestList(obj_base.ObjectListBase, obj_base.NovaObject):
 | 
			
		||||
    fields = {
 | 
			
		||||
        'objects': fields.ListOfObjectsField('NetworkRequest'),
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,7 @@ def all_things_equal(obj_a, obj_b):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class NUMACell(base.NovaObject,
 | 
			
		||||
               base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -131,6 +132,7 @@ class NUMACell(base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class NUMAPagesTopology(base.NovaObject,
 | 
			
		||||
                        base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -160,6 +162,7 @@ class NUMAPagesTopology(base.NovaObject,
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class NUMATopology(base.NovaObject,
 | 
			
		||||
                   base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -210,6 +213,7 @@ class NUMATopology(base.NovaObject,
 | 
			
		||||
            for cell_dict in data_dict.get('cells', [])])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class NUMATopologyLimits(base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@ def compare_pci_device_attributes(obj_a, obj_b):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class PciDevice(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                base.NovaObjectDictCompat):
 | 
			
		||||
 | 
			
		||||
@@ -200,6 +201,7 @@ class PciDevice(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                self._from_db_object(self._context, self, db_pci)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class PciDeviceList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              PciDevice <= 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ from nova.objects import fields
 | 
			
		||||
from nova import utils
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class PciDevicePool(base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    # Version 1.1: Added numa_node field
 | 
			
		||||
@@ -67,6 +68,7 @@ class PciDevicePool(base.NovaObject):
 | 
			
		||||
        return pci_pool
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class PciDevicePoolList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              PciDevicePool <= 1.0
 | 
			
		||||
 
 | 
			
		||||
@@ -47,6 +47,7 @@ def ids_from_server_group(context, server_group):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Quotas(base.NovaObject,
 | 
			
		||||
             base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: initial version
 | 
			
		||||
@@ -144,6 +145,7 @@ class Quotas(base.NovaObject,
 | 
			
		||||
        db.quota_update(context, project_id, resource, limit, user_id=user_id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class QuotasNoOp(Quotas):
 | 
			
		||||
    def reserve(context, expire=None, project_id=None, user_id=None,
 | 
			
		||||
                **deltas):
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class SecurityGroup(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                    base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -73,6 +74,7 @@ class SecurityGroup(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                             db.security_group_get(self._context, self.id))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class SecurityGroupList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              SecurityGroup <= version 1.1
 | 
			
		||||
 
 | 
			
		||||
@@ -22,6 +22,7 @@ OPTIONAL_ATTRS = ['parent_group', 'grantee_group']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                        base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -84,6 +85,7 @@ class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        return cls._from_db_object(context, cls(), db_rule)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class SecurityGroupRuleList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    fields = {
 | 
			
		||||
        'objects': fields.ListOfObjectsField('SecurityGroupRule'),
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ LOG = logging.getLogger(__name__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Service(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
              base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -179,6 +180,7 @@ class Service(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        db.service_destroy(self._context, self.id)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class ServiceList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    #              Service <= version 1.2
 | 
			
		||||
 
 | 
			
		||||
@@ -16,6 +16,7 @@ from nova.objects import base
 | 
			
		||||
from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class Tag(base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
@@ -43,6 +44,7 @@ class Tag(base.NovaObject):
 | 
			
		||||
        db.instance_tag_delete(context, resource_id, name)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class TagList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ from nova.objects import base
 | 
			
		||||
from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class VirtCPUModel(base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
@@ -57,6 +58,7 @@ class VirtCPUModel(base.NovaObject):
 | 
			
		||||
        return cls.obj_from_primitive(jsonutils.loads(db_extra['vcpu_model']))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class VirtCPUFeature(base.NovaObject):
 | 
			
		||||
    VERSION = VirtCPUModel.VERSION
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class VirtCPUTopology(base.NovaObject,
 | 
			
		||||
                      base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ from nova.objects import fields
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# TODO(berrange): Remove NovaObjectDictCompat
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class VirtualInterface(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
                       base.NovaObjectDictCompat):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
@@ -80,6 +81,7 @@ class VirtualInterface(base.NovaPersistentObject, base.NovaObject,
 | 
			
		||||
        db.virtual_interface_delete_by_instance(context, instance_uuid)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@base.NovaObjectRegistry.register
 | 
			
		||||
class VirtualInterfaceList(base.ObjectListBase, base.NovaObject):
 | 
			
		||||
    # Version 1.0: Initial version
 | 
			
		||||
    VERSION = '1.0'
 | 
			
		||||
 
 | 
			
		||||
@@ -1283,6 +1283,15 @@ class TestObjectVersions(test.NoDBTestCase):
 | 
			
		||||
                         'versions have been bumped, and then update their '
 | 
			
		||||
                         'hashes here.')
 | 
			
		||||
 | 
			
		||||
    def test_registry_matches_metaclass(self):
 | 
			
		||||
        reference = set(object_data.keys())
 | 
			
		||||
        actual = set(base.NovaObjectRegistry.classes)
 | 
			
		||||
        test_objects = set(['MyObj', 'MyOwnedObject', 'TestSubclassedObject'])
 | 
			
		||||
        # NOTE(danms): In the new registry, we don't implicitly track test
 | 
			
		||||
        # objects, so make sure that the difference between the metaclass and
 | 
			
		||||
        # the opt-in registry is the set of test objects.
 | 
			
		||||
        self.assertEqual(test_objects, reference.symmetric_difference(actual))
 | 
			
		||||
 | 
			
		||||
    def _get_object_field_name(self, field):
 | 
			
		||||
        if isinstance(field._type, fields.Object):
 | 
			
		||||
            return field._type._obj_name
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user