summaryrefslogtreecommitdiff
path: root/nova/notifications/objects
diff options
context:
space:
mode:
Diffstat (limited to 'nova/notifications/objects')
-rw-r--r--nova/notifications/objects/instance.py70
1 files changed, 48 insertions, 22 deletions
diff --git a/nova/notifications/objects/instance.py b/nova/notifications/objects/instance.py
index 1ef22d7819..64c4f1ad96 100644
--- a/nova/notifications/objects/instance.py
+++ b/nova/notifications/objects/instance.py
@@ -65,7 +65,8 @@ class InstancePayload(base.NotificationPayloadBase):
# Version 1.3: Add key_name field
# Version 1.4: Add BDM related data
# Version 1.5: Add updated_at field
- VERSION = '1.5'
+ # Version 1.6: Add request_id field
+ VERSION = '1.6'
fields = {
'uuid': fields.UUIDField(),
'user_id': fields.StringField(nullable=True),
@@ -105,10 +106,12 @@ class InstancePayload(base.NotificationPayloadBase):
'metadata': fields.DictOfStringsField(),
'locked': fields.BooleanField(),
- 'auto_disk_config': fields.DiskConfigField()
+ 'auto_disk_config': fields.DiskConfigField(),
+
+ 'request_id': fields.StringField(nullable=True),
}
- def __init__(self, instance, bdms=None):
+ def __init__(self, context, instance, bdms=None):
super(InstancePayload, self).__init__()
network_info = instance.get_network_info()
self.ip_addresses = IpPayload.from_network_info(network_info)
@@ -117,6 +120,12 @@ class InstancePayload(base.NotificationPayloadBase):
self.block_devices = BlockDevicePayload.from_bdms(bdms)
else:
self.block_devices = BlockDevicePayload.from_instance(instance)
+ # NOTE(Kevin_Zheng): Don't include request_id for periodic tasks,
+ # RequestContext for periodic tasks does not include project_id
+ # and user_id. Consider modify this once periodic tasks got a
+ # consistent request_id.
+ self.request_id = context.request_id if (context.project_id and
+ context.user_id) else None
self.populate_schema(instance=instance)
@@ -130,13 +139,16 @@ class InstanceActionPayload(InstancePayload):
# Version 1.3: Added key_name field to InstancePayload
# Version 1.4: Add BDM related data
# Version 1.5: Added updated_at field to InstancePayload
- VERSION = '1.5'
+ # Version 1.6: Added request_id field to InstancePayload
+ VERSION = '1.6'
fields = {
'fault': fields.ObjectField('ExceptionPayload', nullable=True),
+ 'request_id': fields.StringField(nullable=True),
}
- def __init__(self, instance, fault, bdms=None):
- super(InstanceActionPayload, self).__init__(instance=instance,
+ def __init__(self, context, instance, fault, bdms=None):
+ super(InstanceActionPayload, self).__init__(context=context,
+ instance=instance,
bdms=bdms)
self.fault = fault
@@ -147,14 +159,16 @@ class InstanceActionVolumePayload(InstanceActionPayload):
# Version 1.1: Added key_name field to InstancePayload
# Version 1.2: Add BDM related data
# Version 1.3: Added updated_at field to InstancePayload
+ # Version 1.4: Added request_id field to InstancePayload
- VERSION = '1.3'
+ VERSION = '1.4'
fields = {
'volume_id': fields.UUIDField()
}
- def __init__(self, instance, fault, volume_id):
+ def __init__(self, context, instance, fault, volume_id):
super(InstanceActionVolumePayload, self).__init__(
+ context=context,
instance=instance,
fault=fault)
self.volume_id = volume_id
@@ -169,14 +183,16 @@ class InstanceActionVolumeSwapPayload(InstanceActionPayload):
# Version 1.3: Added key_name field to InstancePayload
# Version 1.4: Add BDM related data
# Version 1.5: Added updated_at field to InstancePayload
- VERSION = '1.5'
+ # Version 1.6: Added request_id field to InstancePayload
+ VERSION = '1.6'
fields = {
'old_volume_id': fields.UUIDField(),
'new_volume_id': fields.UUIDField(),
}
- def __init__(self, instance, fault, old_volume_id, new_volume_id):
+ def __init__(self, context, instance, fault, old_volume_id, new_volume_id):
super(InstanceActionVolumeSwapPayload, self).__init__(
+ context=context,
instance=instance,
fault=fault)
self.old_volume_id = old_volume_id
@@ -197,15 +213,17 @@ class InstanceCreatePayload(InstanceActionPayload):
# 1.5: Add BDM related data to InstancePayload
# 1.6: Add tags field to InstanceCreatePayload
# 1.7: Added updated_at field to InstancePayload
- VERSION = '1.7'
+ # 1.8: Added request_id field to InstancePayload
+ VERSION = '1.8'
fields = {
'keypairs': fields.ListOfObjectsField('KeypairPayload'),
'tags': fields.ListOfStringsField(),
}
- def __init__(self, instance, fault, bdms):
+ def __init__(self, context, instance, fault, bdms):
super(InstanceCreatePayload, self).__init__(
+ context=context,
instance=instance,
fault=fault,
bdms=bdms)
@@ -220,13 +238,15 @@ class InstanceActionResizePrepPayload(InstanceActionPayload):
# No SCHEMA as all the additional fields are calculated
# Version 1.0: Initial version
- VERSION = '1.0'
+ # Version 1.1: Added request_id field to InstancePayload
+ VERSION = '1.1'
fields = {
'new_flavor': fields.ObjectField('FlavorPayload', nullable=True)
}
- def __init__(self, instance, fault, new_flavor):
+ def __init__(self, context, instance, fault, new_flavor):
super(InstanceActionResizePrepPayload, self).__init__(
+ context=context,
instance=instance,
fault=fault)
self.new_flavor = new_flavor
@@ -241,7 +261,8 @@ class InstanceUpdatePayload(InstancePayload):
# Version 1.4: Added key_name field to InstancePayload
# Version 1.5: Add BDM related data
# Version 1.6: Added updated_at field to InstancePayload
- VERSION = '1.6'
+ # Version 1.7: Added request_id field to InstancePayload
+ VERSION = '1.7'
fields = {
'state_update': fields.ObjectField('InstanceStateUpdatePayload'),
'audit_period': fields.ObjectField('AuditPeriodPayload'),
@@ -250,9 +271,10 @@ class InstanceUpdatePayload(InstancePayload):
'tags': fields.ListOfStringsField(),
}
- def __init__(self, instance, state_update, audit_period, bandwidth,
- old_display_name):
- super(InstanceUpdatePayload, self).__init__(instance=instance)
+ def __init__(self, context, instance, state_update, audit_period,
+ bandwidth, old_display_name):
+ super(InstanceUpdatePayload, self).__init__(
+ context=context, instance=instance)
self.state_update = state_update
self.audit_period = audit_period
self.bandwidth = bandwidth
@@ -264,13 +286,15 @@ class InstanceUpdatePayload(InstancePayload):
@nova_base.NovaObjectRegistry.register_notification
class InstanceActionRescuePayload(InstanceActionPayload):
# Version 1.0: Initial version
- VERSION = '1.0'
+ # Version 1.1: Added request_id field to InstancePayload
+ VERSION = '1.1'
fields = {
'rescue_image_ref': fields.UUIDField(nullable=True)
}
- def __init__(self, instance, fault, rescue_image_ref):
+ def __init__(self, context, instance, fault, rescue_image_ref):
super(InstanceActionRescuePayload, self).__init__(
+ context=context,
instance=instance,
fault=fault)
self.rescue_image_ref = rescue_image_ref
@@ -591,13 +615,15 @@ class InstanceActionSnapshotPayload(InstanceActionPayload):
# from using InstanceActionPayload 1.5 to this new payload and
# also it added a new field so we wanted to keep the version
# number increasing to signal the change.
- VERSION = '1.6'
+ # Version 1.7: Added request_id field to InstancePayload
+ VERSION = '1.7'
fields = {
'snapshot_image_id': fields.UUIDField(),
}
- def __init__(self, instance, fault, snapshot_image_id):
+ def __init__(self, context, instance, fault, snapshot_image_id):
super(InstanceActionSnapshotPayload, self).__init__(
+ context=context,
instance=instance,
fault=fault)
self.snapshot_image_id = snapshot_image_id