objects: allow creation of objects without dict item compat
The dict compat support in NovaObject is useful for incrementally converting existing code over to use objects. Any brand new objects though have no reason to support dictionary access, so there should be a way to disable this compat mode. This moves all the dict compat support methods out of NovaObject, to a new class NovaObjectDictCompat. All existing objects are updated to add this new class as a mix-in parent. In future any completely new objects (ie ones which aren't being used to converted existing code from dict instances) should avoid inheriting from NovaObjectDictCompat. Existing objects should also have this parent class removed once all callers are audited and/or updated to ensure they do not require dict compat. Change-Id: I03f93f0c40df6f5f7df9cefe28dff900c22294c9
This commit is contained in:
parent
1eaa53de5e
commit
722e789309
|
@ -19,7 +19,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class Agent(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Agent(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
|
@ -68,7 +70,9 @@ class Agent(base.NovaPersistentObject, base.NovaObject):
|
||||||
self.obj_reset_changes()
|
self.obj_reset_changes()
|
||||||
|
|
||||||
|
|
||||||
class AgentList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class AgentList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
|
|
|
@ -20,7 +20,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class Aggregate(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Aggregate(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -147,7 +149,9 @@ class Aggregate(base.NovaPersistentObject, base.NovaObject):
|
||||||
return self.metadata.get('availability_zone', None)
|
return self.metadata.get('availability_zone', None)
|
||||||
|
|
||||||
|
|
||||||
class AggregateList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class AggregateList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added key argument to get_by_host()
|
# Version 1.1: Added key argument to get_by_host()
|
||||||
# Aggregate <= version 1.1
|
# Aggregate <= version 1.1
|
||||||
|
|
|
@ -15,7 +15,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class BandwidthUsage(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class BandwidthUsage(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Add use_slave to get_by_instance_uuid_and_mac
|
# Version 1.1: Add use_slave to get_by_instance_uuid_and_mac
|
||||||
# Version 1.2: Add update_cells to create
|
# Version 1.2: Add update_cells to create
|
||||||
|
@ -63,7 +65,9 @@ class BandwidthUsage(base.NovaPersistentObject, base.NovaObject):
|
||||||
self._from_db_object(context, self, db_bw_usage)
|
self._from_db_object(context, self, db_bw_usage)
|
||||||
|
|
||||||
|
|
||||||
class BandwidthUsageList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class BandwidthUsageList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Add use_slave to get_by_uuids
|
# Version 1.1: Add use_slave to get_by_uuids
|
||||||
# Version 1.2: BandwidthUsage <= version 1.2
|
# Version 1.2: BandwidthUsage <= version 1.2
|
||||||
|
|
|
@ -272,7 +272,7 @@ class NovaObject(object):
|
||||||
self._changed_fields = set()
|
self._changed_fields = set()
|
||||||
self._context = context
|
self._context = context
|
||||||
for key in kwargs.keys():
|
for key in kwargs.keys():
|
||||||
self[key] = kwargs[key]
|
setattr(self, key, kwargs[key])
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '%s(%s)' % (
|
return '%s(%s)' % (
|
||||||
|
@ -518,8 +518,8 @@ class NovaObject(object):
|
||||||
changes = set(self._changed_fields)
|
changes = set(self._changed_fields)
|
||||||
for field in self.fields:
|
for field in self.fields:
|
||||||
if (self.obj_attr_is_set(field) and
|
if (self.obj_attr_is_set(field) and
|
||||||
isinstance(self[field], NovaObject) and
|
isinstance(getattr(self, field), NovaObject) and
|
||||||
self[field].obj_what_changed()):
|
getattr(self, field).obj_what_changed()):
|
||||||
changes.add(field)
|
changes.add(field)
|
||||||
return changes
|
return changes
|
||||||
|
|
||||||
|
@ -527,7 +527,7 @@ class NovaObject(object):
|
||||||
"""Returns a dict of changed fields and their new values."""
|
"""Returns a dict of changed fields and their new values."""
|
||||||
changes = {}
|
changes = {}
|
||||||
for key in self.obj_what_changed():
|
for key in self.obj_what_changed():
|
||||||
changes[key] = self[key]
|
changes[key] = getattr(self, key)
|
||||||
return changes
|
return changes
|
||||||
|
|
||||||
def obj_reset_changes(self, fields=None):
|
def obj_reset_changes(self, fields=None):
|
||||||
|
@ -557,6 +557,19 @@ class NovaObject(object):
|
||||||
def obj_fields(self):
|
def obj_fields(self):
|
||||||
return self.fields.keys() + self.obj_extra_fields
|
return self.fields.keys() + self.obj_extra_fields
|
||||||
|
|
||||||
|
|
||||||
|
class NovaObjectDictCompat(object):
|
||||||
|
"""Mix-in to provide dictionary key access compat
|
||||||
|
|
||||||
|
If an object needs to support attribute access using
|
||||||
|
dictionary items instead of object attributes, inherit
|
||||||
|
from this class. This should only be used as a temporary
|
||||||
|
measure until all callers are converted to use modern
|
||||||
|
attribute access.
|
||||||
|
|
||||||
|
NOTE(berrange) This class will eventually be deleted.
|
||||||
|
"""
|
||||||
|
|
||||||
# dictish syntactic sugar
|
# dictish syntactic sugar
|
||||||
def iteritems(self):
|
def iteritems(self):
|
||||||
"""For backwards-compatibility with dict-based objects.
|
"""For backwards-compatibility with dict-based objects.
|
||||||
|
@ -605,7 +618,7 @@ class NovaObject(object):
|
||||||
if value != NotSpecifiedSentinel and not self.obj_attr_is_set(key):
|
if value != NotSpecifiedSentinel and not self.obj_attr_is_set(key):
|
||||||
return value
|
return value
|
||||||
else:
|
else:
|
||||||
return self[key]
|
return getattr(self, key)
|
||||||
|
|
||||||
def update(self, updates):
|
def update(self, updates):
|
||||||
"""For backwards-compatibility with dict-base objects.
|
"""For backwards-compatibility with dict-base objects.
|
||||||
|
@ -613,7 +626,7 @@ class NovaObject(object):
|
||||||
NOTE(danms): May be removed in the future.
|
NOTE(danms): May be removed in the future.
|
||||||
"""
|
"""
|
||||||
for key, value in updates.items():
|
for key, value in updates.items():
|
||||||
self[key] = value
|
setattr(self, key, value)
|
||||||
|
|
||||||
|
|
||||||
class NovaPersistentObject(object):
|
class NovaPersistentObject(object):
|
||||||
|
|
|
@ -36,7 +36,9 @@ def _expected_cols(expected_attrs):
|
||||||
if attr in _BLOCK_DEVICE_OPTIONAL_JOINED_FIELD]
|
if attr in _BLOCK_DEVICE_OPTIONAL_JOINED_FIELD]
|
||||||
|
|
||||||
|
|
||||||
class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Add instance_uuid to get_by_volume_id method
|
# Version 1.1: Add instance_uuid to get_by_volume_id method
|
||||||
# Version 1.2: Instance version 1.14
|
# Version 1.2: Instance version 1.14
|
||||||
|
@ -194,7 +196,9 @@ class BlockDeviceMapping(base.NovaPersistentObject, base.NovaObject):
|
||||||
self.obj_reset_changes(fields=['instance'])
|
self.obj_reset_changes(fields=['instance'])
|
||||||
|
|
||||||
|
|
||||||
class BlockDeviceMappingList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class BlockDeviceMappingList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: BlockDeviceMapping <= version 1.1
|
# Version 1.1: BlockDeviceMapping <= version 1.1
|
||||||
# Version 1.2: Added use_slave to get_by_instance_uuid
|
# Version 1.2: Added use_slave to get_by_instance_uuid
|
||||||
|
|
|
@ -22,7 +22,9 @@ from nova.objects import fields
|
||||||
from nova import utils
|
from nova import utils
|
||||||
|
|
||||||
|
|
||||||
class ComputeNode(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class ComputeNode(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added get_by_service_id()
|
# Version 1.1: Added get_by_service_id()
|
||||||
# Version 1.2: String attributes updated to support unicode
|
# Version 1.2: String attributes updated to support unicode
|
||||||
|
@ -219,7 +221,9 @@ class ComputeNode(base.NovaPersistentObject, base.NovaObject):
|
||||||
return self._cached_service
|
return self._cached_service
|
||||||
|
|
||||||
|
|
||||||
class ComputeNodeList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class ComputeNodeList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# ComputeNode <= version 1.2
|
# ComputeNode <= version 1.2
|
||||||
# Version 1.1 ComputeNode version 1.3
|
# Version 1.1 ComputeNode version 1.3
|
||||||
|
|
|
@ -18,7 +18,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class DNSDomain(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class DNSDomain(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -56,7 +58,9 @@ class DNSDomain(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.dnsdomain_unregister(context, domain)
|
db.dnsdomain_unregister(context, domain)
|
||||||
|
|
||||||
|
|
||||||
class DNSDomainList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class DNSDomainList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
fields = {
|
fields = {
|
||||||
|
|
|
@ -18,7 +18,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class EC2InstanceMapping(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class EC2InstanceMapping(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -56,7 +58,9 @@ class EC2InstanceMapping(base.NovaPersistentObject, base.NovaObject):
|
||||||
return cls._from_db_object(context, cls(), db_imap)
|
return cls._from_db_object(context, cls(), db_imap)
|
||||||
|
|
||||||
|
|
||||||
class EC2VolumeMapping(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class EC2VolumeMapping(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -94,7 +98,9 @@ class EC2VolumeMapping(base.NovaPersistentObject, base.NovaObject):
|
||||||
return cls._from_db_object(context, cls(context), db_vmap)
|
return cls._from_db_object(context, cls(context), db_vmap)
|
||||||
|
|
||||||
|
|
||||||
class EC2SnapshotMapping(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class EC2SnapshotMapping(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -132,7 +138,9 @@ class EC2SnapshotMapping(base.NovaPersistentObject, base.NovaObject):
|
||||||
return cls._from_db_object(context, cls(context), db_smap)
|
return cls._from_db_object(context, cls(context), db_smap)
|
||||||
|
|
||||||
|
|
||||||
class S3ImageMapping(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class S3ImageMapping(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,9 @@ EVENT_NAMES = [
|
||||||
EVENT_STATUSES = ['failed', 'completed', 'in-progress']
|
EVENT_STATUSES = ['failed', 'completed', 'in-progress']
|
||||||
|
|
||||||
|
|
||||||
class InstanceExternalEvent(obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceExternalEvent(obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Supports network-changed and vif-plugged
|
# Supports network-changed and vif-plugged
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
|
@ -26,7 +26,9 @@ FIXED_IP_OPTIONAL_ATTRS = ['instance', 'network', 'virtual_interface',
|
||||||
'floating_ips']
|
'floating_ips']
|
||||||
|
|
||||||
|
|
||||||
class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added virtual_interface field
|
# Version 1.1: Added virtual_interface field
|
||||||
# Version 1.2: Instance version 1.14
|
# Version 1.2: Instance version 1.14
|
||||||
|
@ -197,7 +199,9 @@ class FixedIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
||||||
self.obj_reset_changes(['instance_uuid', 'instance'])
|
self.obj_reset_changes(['instance_uuid', 'instance'])
|
||||||
|
|
||||||
|
|
||||||
class FixedIPList(obj_base.ObjectListBase, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class FixedIPList(obj_base.ObjectListBase, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added get_by_network()
|
# Version 1.1: Added get_by_network()
|
||||||
# Version 1.2: FixedIP <= version 1.2
|
# Version 1.2: FixedIP <= version 1.2
|
||||||
|
|
|
@ -22,7 +22,9 @@ from nova.objects import fields
|
||||||
OPTIONAL_FIELDS = ['extra_specs', 'projects']
|
OPTIONAL_FIELDS = ['extra_specs', 'projects']
|
||||||
|
|
||||||
|
|
||||||
class Flavor(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Flavor(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added save_projects(), save_extra_specs(), removed
|
# Version 1.1: Added save_projects(), save_extra_specs(), removed
|
||||||
# remoteable from save()
|
# remoteable from save()
|
||||||
|
@ -248,7 +250,9 @@ class Flavor(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.flavor_destroy(context, self.name)
|
db.flavor_destroy(context, self.name)
|
||||||
|
|
||||||
|
|
||||||
class FlavorList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class FlavorList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
|
||||||
fields = {
|
fields = {
|
||||||
|
|
|
@ -21,7 +21,9 @@ from nova.objects import fields
|
||||||
FLOATING_IP_OPTIONAL_ATTRS = ['fixed_ip']
|
FLOATING_IP_OPTIONAL_ATTRS = ['fixed_ip']
|
||||||
|
|
||||||
|
|
||||||
class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added _get_addresses_by_instance_uuid()
|
# Version 1.1: Added _get_addresses_by_instance_uuid()
|
||||||
# Version 1.2: FixedIP <= version 1.2
|
# Version 1.2: FixedIP <= version 1.2
|
||||||
|
@ -160,7 +162,9 @@ class FloatingIP(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
||||||
self._from_db_object(context, self, db_floatingip)
|
self._from_db_object(context, self, db_floatingip)
|
||||||
|
|
||||||
|
|
||||||
class FloatingIPList(obj_base.ObjectListBase, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class FloatingIPList(obj_base.ObjectListBase, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.3: FloatingIP 1.2
|
# Version 1.3: FloatingIP 1.2
|
||||||
# Version 1.4: FloatingIP 1.3
|
# Version 1.4: FloatingIP 1.3
|
||||||
# Version 1.5: FloatingIP 1.4
|
# Version 1.5: FloatingIP 1.4
|
||||||
|
|
|
@ -17,7 +17,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class HVSpec(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class HVSpec(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,9 @@ def _expected_cols(expected_attrs):
|
||||||
return simple_cols + complex_cols
|
return simple_cols + complex_cols
|
||||||
|
|
||||||
|
|
||||||
class Instance(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Instance(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added info_cache
|
# Version 1.1: Added info_cache
|
||||||
# Version 1.2: Added security_groups
|
# Version 1.2: Added security_groups
|
||||||
|
@ -699,7 +701,9 @@ def _make_instance_list(context, inst_list, db_inst_list, expected_attrs):
|
||||||
return inst_list
|
return inst_list
|
||||||
|
|
||||||
|
|
||||||
class InstanceList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added use_slave to get_by_host
|
# Version 1.1: Added use_slave to get_by_host
|
||||||
# Instance <= version 1.9
|
# Instance <= version 1.9
|
||||||
|
|
|
@ -20,7 +20,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class InstanceAction(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceAction(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -91,7 +93,9 @@ class InstanceAction(base.NovaPersistentObject, base.NovaObject):
|
||||||
self._from_db_object(context, self, db_action)
|
self._from_db_object(context, self, db_action)
|
||||||
|
|
||||||
|
|
||||||
class InstanceActionList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceActionList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# InstanceAction <= version 1.1
|
# InstanceAction <= version 1.1
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
@ -109,7 +113,9 @@ class InstanceActionList(base.ObjectListBase, base.NovaObject):
|
||||||
return base.obj_make_list(context, cls(), InstanceAction, db_actions)
|
return base.obj_make_list(context, cls(), InstanceAction, db_actions)
|
||||||
|
|
||||||
|
|
||||||
class InstanceActionEvent(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceActionEvent(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: event_finish_with_failure decorated with serialize_args
|
# Version 1.1: event_finish_with_failure decorated with serialize_args
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -199,7 +205,9 @@ class InstanceActionEvent(base.NovaPersistentObject, base.NovaObject):
|
||||||
self.finish_with_failure(context, exc_val=None, exc_tb=None)
|
self.finish_with_failure(context, exc_val=None, exc_tb=None)
|
||||||
|
|
||||||
|
|
||||||
class InstanceActionEventList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceActionEventList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
fields = {
|
fields = {
|
||||||
'objects': fields.ListOfObjectsField('InstanceActionEvent'),
|
'objects': fields.ListOfObjectsField('InstanceActionEvent'),
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,9 @@ from nova.openstack.common import log as logging
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class InstanceFault(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceFault(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
# Version 1.2: Added create()
|
# Version 1.2: Added create()
|
||||||
|
@ -87,7 +89,9 @@ class InstanceFault(base.NovaPersistentObject, base.NovaObject):
|
||||||
LOG.exception(_LE("Failed to notify cells of instance fault"))
|
LOG.exception(_LE("Failed to notify cells of instance fault"))
|
||||||
|
|
||||||
|
|
||||||
class InstanceFaultList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceFaultList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# InstanceFault <= version 1.1
|
# InstanceFault <= version 1.1
|
||||||
# Version 1.1: InstanceFault version 1.2
|
# Version 1.1: InstanceFault version 1.2
|
||||||
|
|
|
@ -22,7 +22,9 @@ from nova.openstack.common import uuidutils
|
||||||
from nova import utils
|
from nova import utils
|
||||||
|
|
||||||
|
|
||||||
class InstanceGroup(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceGroup(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
# Version 1.2: Use list/dict helpers for policies, metadetails, members
|
# Version 1.2: Use list/dict helpers for policies, metadetails, members
|
||||||
|
@ -194,7 +196,9 @@ class InstanceGroup(base.NovaPersistentObject, base.NovaObject):
|
||||||
return len(instances)
|
return len(instances)
|
||||||
|
|
||||||
|
|
||||||
class InstanceGroupList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceGroupList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# InstanceGroup <= version 1.3
|
# InstanceGroup <= version 1.3
|
||||||
# Version 1.1: InstanceGroup <= version 1.4
|
# Version 1.1: InstanceGroup <= version 1.4
|
||||||
|
|
|
@ -24,7 +24,9 @@ from nova.openstack.common import log as logging
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class InstanceInfoCache(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceInfoCache(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Converted network_info to store the model.
|
# Version 1.1: Converted network_info to store the model.
|
||||||
# Version 1.2: Added new() and update_cells kwarg to save().
|
# Version 1.2: Added new() and update_cells kwarg to save().
|
||||||
|
|
|
@ -21,7 +21,9 @@ from nova.objects import fields as obj_fields
|
||||||
from nova.virt import hardware
|
from nova.virt import hardware
|
||||||
|
|
||||||
|
|
||||||
class InstanceNUMACell(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceNUMACell(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Add pagesize field
|
# Version 1.1: Add pagesize field
|
||||||
# Version 1.2: Add cpu_pinning_raw and topology fields
|
# Version 1.2: Add cpu_pinning_raw and topology fields
|
||||||
|
@ -97,7 +99,9 @@ class InstanceNUMACell(base.NovaObject):
|
||||||
self.pin(vcpu, pcpu)
|
self.pin(vcpu, pcpu)
|
||||||
|
|
||||||
|
|
||||||
class InstanceNUMATopology(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstanceNUMATopology(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Takes into account pagesize
|
# Version 1.1: Takes into account pagesize
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
|
|
@ -18,7 +18,9 @@ from nova.objects import fields
|
||||||
from nova import utils
|
from nova import utils
|
||||||
|
|
||||||
|
|
||||||
class InstancePCIRequest(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstancePCIRequest(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Add request_id
|
# Version 1.1: Add request_id
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -49,7 +51,9 @@ class InstancePCIRequest(base.NovaObject):
|
||||||
del primitive['request_id']
|
del primitive['request_id']
|
||||||
|
|
||||||
|
|
||||||
class InstancePCIRequests(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class InstancePCIRequests(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: InstancePCIRequest 1.1
|
# Version 1.1: InstancePCIRequest 1.1
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
|
|
@ -19,7 +19,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class KeyPair(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class KeyPair(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -63,7 +65,9 @@ class KeyPair(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.key_pair_destroy(context, self.user_id, self.name)
|
db.key_pair_destroy(context, self.user_id, self.name)
|
||||||
|
|
||||||
|
|
||||||
class KeyPairList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class KeyPairList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# KeyPair <= version 1.1
|
# KeyPair <= version 1.1
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
|
@ -19,7 +19,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class Migration(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Migration(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -78,7 +80,9 @@ class Migration(base.NovaPersistentObject, base.NovaObject):
|
||||||
return objects.Instance.get_by_uuid(self._context, self.instance_uuid)
|
return objects.Instance.get_by_uuid(self._context, self.instance_uuid)
|
||||||
|
|
||||||
|
|
||||||
class MigrationList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class MigrationList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Migration <= 1.1
|
# Migration <= 1.1
|
||||||
# Version 1.1: Added use_slave to get_unconfirmed_by_dest_compute
|
# Version 1.1: Added use_slave to get_unconfirmed_by_dest_compute
|
||||||
|
|
|
@ -40,7 +40,9 @@ CONF = cfg.CONF
|
||||||
CONF.register_opts(network_opts)
|
CONF.register_opts(network_opts)
|
||||||
|
|
||||||
|
|
||||||
class Network(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Network(obj_base.NovaPersistentObject, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added in_use_on_host()
|
# Version 1.1: Added in_use_on_host()
|
||||||
# Version 1.2: Added mtu, dhcp_server, enable_dhcp, share_address
|
# Version 1.2: Added mtu, dhcp_server, enable_dhcp, share_address
|
||||||
|
@ -203,7 +205,9 @@ class Network(obj_base.NovaPersistentObject, obj_base.NovaObject):
|
||||||
self._from_db_object(context, self, db_network)
|
self._from_db_object(context, self, db_network)
|
||||||
|
|
||||||
|
|
||||||
class NetworkList(obj_base.ObjectListBase, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NetworkList(obj_base.ObjectListBase, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added get_by_project()
|
# Version 1.1: Added get_by_project()
|
||||||
# Version 1.2: Network <= version 1.2
|
# Version 1.2: Network <= version 1.2
|
||||||
|
|
|
@ -17,7 +17,9 @@ from nova.objects import fields
|
||||||
from nova import utils
|
from nova import utils
|
||||||
|
|
||||||
|
|
||||||
class NetworkRequest(obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NetworkRequest(obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added pci_request_id
|
# Version 1.1: Added pci_request_id
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -55,7 +57,9 @@ class NetworkRequest(obj_base.NovaObject):
|
||||||
return cls(network_id=network_id, address=address)
|
return cls(network_id=network_id, address=address)
|
||||||
|
|
||||||
|
|
||||||
class NetworkRequestList(obj_base.ObjectListBase, obj_base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NetworkRequestList(obj_base.ObjectListBase, obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
fields = {
|
fields = {
|
||||||
'objects': fields.ListOfObjectsField('NetworkRequest'),
|
'objects': fields.ListOfObjectsField('NetworkRequest'),
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,9 @@ from nova.objects import fields
|
||||||
from nova.virt import hardware
|
from nova.virt import hardware
|
||||||
|
|
||||||
|
|
||||||
class NUMACell(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NUMACell(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added pinned_cpus and siblings fields
|
# Version 1.1: Added pinned_cpus and siblings fields
|
||||||
# Version 1.2: Added mempages field
|
# Version 1.2: Added mempages field
|
||||||
|
@ -73,7 +75,9 @@ class NUMACell(base.NovaObject):
|
||||||
cpu_usage=cpu_usage, memory_usage=memory_usage)
|
cpu_usage=cpu_usage, memory_usage=memory_usage)
|
||||||
|
|
||||||
|
|
||||||
class NUMAPagesTopology(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NUMAPagesTopology(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -94,7 +98,9 @@ class NUMAPagesTopology(base.NovaObject):
|
||||||
return self.free * self.size_kb
|
return self.free * self.size_kb
|
||||||
|
|
||||||
|
|
||||||
class NUMATopology(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class NUMATopology(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Update NUMACell to 1.1
|
# Version 1.1: Update NUMACell to 1.1
|
||||||
# Version 1.1: Update NUMACell to 1.2
|
# Version 1.1: Update NUMACell to 1.2
|
||||||
|
|
|
@ -26,7 +26,9 @@ from nova import utils
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class PciDevice(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class PciDevice(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
|
|
||||||
"""Object to represent a PCI device on a compute node.
|
"""Object to represent a PCI device on a compute node.
|
||||||
|
|
||||||
|
@ -173,7 +175,9 @@ class PciDevice(base.NovaPersistentObject, base.NovaObject):
|
||||||
self._from_db_object(context, self, db_pci)
|
self._from_db_object(context, self, db_pci)
|
||||||
|
|
||||||
|
|
||||||
class PciDeviceList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class PciDeviceList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# PciDevice <= 1.1
|
# PciDevice <= 1.1
|
||||||
# Version 1.1: PciDevice 1.2
|
# Version 1.1: PciDevice 1.2
|
||||||
|
|
|
@ -46,7 +46,9 @@ def ids_from_server_group(context, server_group):
|
||||||
return ids_from_instance(context, server_group)
|
return ids_from_instance(context, server_group)
|
||||||
|
|
||||||
|
|
||||||
class Quotas(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Quotas(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: initial version
|
# Version 1.0: initial version
|
||||||
# Version 1.1: Added create_limit() and update_limit()
|
# Version 1.1: Added create_limit() and update_limit()
|
||||||
# Version 1.2: Added limit_check() and count()
|
# Version 1.2: Added limit_check() and count()
|
||||||
|
|
|
@ -18,7 +18,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroup(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class SecurityGroup(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: String attributes updated to support unicode
|
# Version 1.1: String attributes updated to support unicode
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -70,7 +72,9 @@ class SecurityGroup(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.security_group_get(context, self.id))
|
db.security_group_get(context, self.id))
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroupList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class SecurityGroupList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# SecurityGroup <= version 1.1
|
# SecurityGroup <= version 1.1
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
|
@ -21,7 +21,9 @@ from nova.objects import fields
|
||||||
OPTIONAL_ATTRS = ['parent_group', 'grantee_group']
|
OPTIONAL_ATTRS = ['parent_group', 'grantee_group']
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added create() and set id as read_only
|
# Version 1.1: Added create() and set id as read_only
|
||||||
VERSION = '1.1'
|
VERSION = '1.1'
|
||||||
|
@ -82,7 +84,9 @@ class SecurityGroupRule(base.NovaPersistentObject, base.NovaObject):
|
||||||
return cls._from_db_object(context, cls(), db_rule)
|
return cls._from_db_object(context, cls(), db_rule)
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroupRuleList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class SecurityGroupRuleList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
fields = {
|
fields = {
|
||||||
'objects': fields.ListOfObjectsField('SecurityGroupRule'),
|
'objects': fields.ListOfObjectsField('SecurityGroupRule'),
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,9 @@ from nova.openstack.common import log as logging
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class Service(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Service(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Version 1.1: Added compute_node nested object
|
# Version 1.1: Added compute_node nested object
|
||||||
# Version 1.2: String attributes updated to support unicode
|
# Version 1.2: String attributes updated to support unicode
|
||||||
|
@ -135,7 +137,9 @@ class Service(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.service_destroy(context, self.id)
|
db.service_destroy(context, self.id)
|
||||||
|
|
||||||
|
|
||||||
class ServiceList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class ServiceList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
# Service <= version 1.2
|
# Service <= version 1.2
|
||||||
# Version 1.1 Service version 1.3
|
# Version 1.1 Service version 1.3
|
||||||
|
|
|
@ -16,7 +16,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class Tag(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class Tag(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -43,7 +45,9 @@ class Tag(base.NovaObject):
|
||||||
db.instance_tag_delete(context, resource_id, name)
|
db.instance_tag_delete(context, resource_id, name)
|
||||||
|
|
||||||
|
|
||||||
class TagList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class TagList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class VirtCPUTopology(base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class VirtCPUTopology(base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,9 @@ from nova.objects import base
|
||||||
from nova.objects import fields
|
from nova.objects import fields
|
||||||
|
|
||||||
|
|
||||||
class VirtualInterface(base.NovaPersistentObject, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class VirtualInterface(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
|
|
||||||
|
@ -78,7 +80,9 @@ class VirtualInterface(base.NovaPersistentObject, base.NovaObject):
|
||||||
db.virtual_interface_delete_by_instance(context, instance_uuid)
|
db.virtual_interface_delete_by_instance(context, instance_uuid)
|
||||||
|
|
||||||
|
|
||||||
class VirtualInterfaceList(base.ObjectListBase, base.NovaObject):
|
# TODO(berrange): Remove NovaObjectDictCompat
|
||||||
|
class VirtualInterfaceList(base.ObjectListBase, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
# Version 1.0: Initial version
|
# Version 1.0: Initial version
|
||||||
VERSION = '1.0'
|
VERSION = '1.0'
|
||||||
fields = {
|
fields = {
|
||||||
|
|
|
@ -570,7 +570,8 @@ class ConductorTestCase(_BaseTestCase, test.TestCase):
|
||||||
self._test_object_action, True, True)
|
self._test_object_action, True, True)
|
||||||
|
|
||||||
def test_object_action_copies_object(self):
|
def test_object_action_copies_object(self):
|
||||||
class TestObject(obj_base.NovaObject):
|
class TestObject(obj_base.NovaObject,
|
||||||
|
obj_base.NovaObjectDictCompat):
|
||||||
fields = {'dict': fields.DictOfStringsField()}
|
fields = {'dict': fields.DictOfStringsField()}
|
||||||
|
|
||||||
def touch_dict(self, context):
|
def touch_dict(self, context):
|
||||||
|
|
|
@ -47,7 +47,8 @@ class MyOwnedObject(base.NovaPersistentObject, base.NovaObject):
|
||||||
fields = {'baz': fields.Field(fields.Integer())}
|
fields = {'baz': fields.Field(fields.Integer())}
|
||||||
|
|
||||||
|
|
||||||
class MyObj(base.NovaPersistentObject, base.NovaObject):
|
class MyObj(base.NovaPersistentObject, base.NovaObject,
|
||||||
|
base.NovaObjectDictCompat):
|
||||||
VERSION = '1.6'
|
VERSION = '1.6'
|
||||||
fields = {'foo': fields.Field(fields.Integer(), default=1),
|
fields = {'foo': fields.Field(fields.Integer(), default=1),
|
||||||
'bar': fields.Field(fields.String()),
|
'bar': fields.Field(fields.String()),
|
||||||
|
@ -207,7 +208,7 @@ class TestMetaclass(test.TestCase):
|
||||||
class TestObjToPrimitive(test.TestCase):
|
class TestObjToPrimitive(test.TestCase):
|
||||||
|
|
||||||
def test_obj_to_primitive_list(self):
|
def test_obj_to_primitive_list(self):
|
||||||
class MyObjElement(base.NovaObject):
|
class MyObjElement(base.NovaObject, base.NovaObjectDictCompat):
|
||||||
fields = {'foo': fields.IntegerField()}
|
fields = {'foo': fields.IntegerField()}
|
||||||
|
|
||||||
def __init__(self, foo):
|
def __init__(self, foo):
|
||||||
|
@ -238,7 +239,7 @@ class TestObjToPrimitive(test.TestCase):
|
||||||
base.obj_to_primitive(mylist))
|
base.obj_to_primitive(mylist))
|
||||||
|
|
||||||
def test_obj_to_primitive_with_ip_addr(self):
|
def test_obj_to_primitive_with_ip_addr(self):
|
||||||
class TestObject(base.NovaObject):
|
class TestObject(base.NovaObject, base.NovaObjectDictCompat):
|
||||||
fields = {'addr': fields.IPAddressField(),
|
fields = {'addr': fields.IPAddressField(),
|
||||||
'cidr': fields.IPNetworkField()}
|
'cidr': fields.IPNetworkField()}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue