Merge "Begin the transition to an explicit object registry"
This commit is contained in:
commit
770a897179
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue