summaryrefslogtreecommitdiff
path: root/tests/compute/test_notifications.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/compute/test_notifications.py')
-rw-r--r--tests/compute/test_notifications.py248
1 files changed, 207 insertions, 41 deletions
diff --git a/tests/compute/test_notifications.py b/tests/compute/test_notifications.py
index d341b3b4..c7b4bee5 100644
--- a/tests/compute/test_notifications.py
+++ b/tests/compute/test_notifications.py
@@ -201,7 +201,9 @@ INSTANCE_FINISH_RESIZE_END = {
u'hostname': u's1',
u'state': u'resized',
u'launched_at': u'2013-01-04T15:10:14.923939',
- u'metadata': [],
+ u'metadata': {u'metering.server_group': u'Group_A',
+ u'AutoScalingGroupName': u'tyky-Group_Awste7',
+ u'metering.foo.bar': u'true'},
u'ramdisk_id': u'5f23128e-5525-46d8-bc66-9c30cd87141a',
u'access_ip_v6': None,
u'disk_gb': 20,
@@ -258,7 +260,9 @@ INSTANCE_RESIZE_REVERT_END = {
u'hostname': u's1',
u'state': u'resized',
u'launched_at': u'2013-01-04T15:10:14.000000',
- u'metadata': [],
+ u'metadata': {u'metering.server_group': u'Group_A',
+ u'AutoScalingGroupName': u'tyky-Group_A-wste7',
+ u'metering.foo.bar': u'true'},
u'ramdisk_id': u'5f23128e-5525-46d8-bc66-9c30cd87141a',
u'access_ip_v6': None,
u'disk_gb': 0,
@@ -315,7 +319,9 @@ INSTANCE_DELETE_SAMPLES = {
u'hostname': u's1',
u'state': u'resized',
u'launched_at': u'2013-01-04T15:10:14.000000',
- u'metadata': [],
+ u'metadata': {u'metering.server_group': u'Group_A',
+ u'AutoScalingGroupName': u'tyky-Group_A-wste7',
+ u'metering.foo.bar': u'true'},
u'ramdisk_id': u'5f23128e-5525-46d8-bc66-9c30cd87141a',
u'access_ip_v6': None,
u'disk_gb': 0,
@@ -352,49 +358,190 @@ INSTANCE_DELETE_SAMPLES = {
u'priority': u'INFO'
}
-
INSTANCE_SCHEDULED = {
- u'_context_roles': [u'admin'],
- u'_context_request_id': u'req-9da1d714-dabe-42fd-8baa-583e57cd4f1a',
+ u'_context_request_id': u'req-f28a836a-32bf-4cc3-940a-3515878c181f',
u'_context_quota_class': None,
u'event_type': u'scheduler.run_instance.scheduled',
- u'_context_user_name': u'admin',
- u'_context_project_name': u'admin',
- u'timestamp': u'2013-01-04 15:20:32.009532',
- u'_context_is_admin': True,
- u'message_id': u'c48deeba-d0c3-4154-b3db-47480b52267a',
- u'_context_auth_token': None,
- u'_context_instance_lock_checked': False,
- u'_context_project_id': u'cea4b25edb484e5392727181b7721d29',
- u'_context_timestamp': u'2013-01-04T15:19:51.018218',
- u'_context_read_deleted': u'no',
- u'_context_user_id': u'01b83a5e23f24a6fb6cd073c0aee6eed',
- u'_context_remote_address': u'10.147.132.184',
- u'publisher_id': u'compute.ip-10-147-132-184.ec2.internal',
+ u'_context_service_catalog': [{
+ u'endpoints': [{
+ u'adminURL':
+ u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb',
+ u'region': u'RegionOne',
+ u'internalURL':
+ u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb',
+ u'id': u'30cb904fdc294eea9b225e06b2d0d4eb',
+ u'publicURL':
+ u'http://172.16.12.21:8776/v1/2bd766a095b44486bf07cf7f666997eb'}],
+ u'endpoints_links': [],
+ u'type': u'volume',
+ u'name': u'cinder'}],
+ u'_context_auth_token': u'TOK',
+ u'_context_user_id': u'0a757cd896b64b65ba3784afef564116',
u'payload': {
'instance_id': 'fake-uuid1-1',
- 'weighted_host': {
- 'host': 'host3',
- 'weight': 3.0,
- },
- 'request_spec': {
- 'instance_properties': {
- 'root_gb': 512,
- 'ephemeral_gb': 0,
- 'launch_index': 0,
- 'memory_mb': 512,
- 'vcpus': 1,
- 'os_type': 'Linux',
- 'project_id': 1,
- 'system_metadata': {'system': 'metadata'}},
- 'instance_type': {'memory_mb': 512,
- 'vcpus': 1,
- 'root_gb': 512,
- 'ephemeral_gb': 0},
- 'instance_uuids': ['fake-uuid1-1'],
- },
- },
- u'priority': u'INFO'
+ u'weighted_host': {u'host': u'eglynn-f19-devstack3', u'weight': 1.0},
+ u'request_spec': {
+ u'num_instances': 1,
+ u'block_device_mapping': [{
+ u'instance_uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8',
+ u'guest_format': None,
+ u'boot_index': 0,
+ u'no_device': None,
+ u'connection_info': None,
+ u'volume_id': None,
+ u'volume_size': None,
+ u'device_name': None,
+ u'disk_bus': None,
+ u'image_id': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b',
+ u'source_type': u'image',
+ u'device_type': u'disk',
+ u'snapshot_id': None,
+ u'destination_type': u'local',
+ u'delete_on_termination': True}],
+ u'image': {
+ u'status': u'active',
+ u'name': u'cirros-0.3.1-x86_64-uec',
+ u'deleted': False,
+ u'container_format': u'ami',
+ u'created_at': u'2014-02-18T13:16:26.000000',
+ u'disk_format': u'ami',
+ u'updated_at': u'2014-02-18T13:16:27.000000',
+ u'properties': {
+ u'kernel_id': u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4',
+ u'ramdisk_id': u'4999726c-545c-4a9e-bfc0-917459784275'},
+ u'min_disk': 0,
+ u'min_ram': 0,
+ u'checksum': u'f8a2eeee2dc65b3d9b6e63678955bd83',
+ u'owner': u'2bd766a095b44486bf07cf7f666997eb',
+ u'is_public': True,
+ u'deleted_at': None,
+ u'id': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b',
+ u'size': 25165824},
+ u'instance_type': {
+ u'root_gb': 1,
+ u'name': u'm1.tiny',
+ u'ephemeral_gb': 0,
+ u'memory_mb': 512,
+ u'vcpus': 1,
+ u'extra_specs': {},
+ u'swap': 0,
+ u'rxtx_factor': 1.0,
+ u'flavorid': u'1',
+ u'vcpu_weight': None,
+ u'id': 2},
+ u'instance_properties': {
+ u'vm_state': u'building',
+ u'availability_zone': None,
+ u'terminated_at': None,
+ u'ephemeral_gb': 0,
+ u'instance_type_id': 2,
+ u'user_data': None,
+ u'cleaned': False,
+ u'vm_mode': None,
+ u'deleted_at': None,
+ u'reservation_id': u'r-ven5q6om',
+ u'id': 15,
+ u'security_groups': [{
+ u'deleted_at': None,
+ u'user_id': u'0a757cd896b64b65ba3784afef564116',
+ u'description': u'default',
+ u'deleted': False,
+ u'created_at': u'2014-02-19T11:02:31.000000',
+ u'updated_at': None,
+ u'project_id': u'2bd766a095b44486bf07cf7f666997eb',
+ u'id': 1,
+ u'name': u'default'}],
+ u'disable_terminate': False,
+ u'root_device_name': None,
+ u'display_name': u'new',
+ u'uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8',
+ u'default_swap_device': None,
+ u'info_cache': {
+ u'instance_uuid': u'9206baae-c3b6-41bc-96f2-2c0726ff51c8',
+ u'deleted': False,
+ u'created_at': u'2014-03-05T12:44:00.000000',
+ u'updated_at': None,
+ u'network_info': [],
+ u'deleted_at': None},
+ u'hostname': u'new',
+ u'launched_on': None,
+ u'display_description': u'new',
+ u'key_data': None,
+ u'deleted': False,
+ u'config_drive': u'',
+ u'power_state': 0,
+ u'default_ephemeral_device': None,
+ u'progress': 0,
+ u'project_id': u'2bd766a095b44486bf07cf7f666997eb',
+ u'launched_at': None,
+ u'scheduled_at': None,
+ u'node': None,
+ u'ramdisk_id': u'4999726c-545c-4a9e-bfc0-917459784275',
+ u'access_ip_v6': None,
+ u'access_ip_v4': None,
+ u'kernel_id': u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4',
+ u'key_name': None,
+ u'updated_at': None,
+ u'host': None,
+ u'root_gb': 1,
+ u'user_id': u'0a757cd896b64b65ba3784afef564116',
+ u'system_metadata': {
+ u'image_kernel_id':
+ u'c8794c1a-4158-42cc-9f97-d0d250c9c6a4',
+ u'image_min_disk': u'1',
+ u'instance_type_memory_mb': u'512',
+ u'instance_type_swap': u'0',
+ u'instance_type_vcpu_weight': None,
+ u'instance_type_root_gb': u'1',
+ u'instance_type_name': u'm1.tiny',
+ u'image_ramdisk_id':
+ u'4999726c-545c-4a9e-bfc0-917459784275',
+ u'instance_type_id': u'2',
+ u'instance_type_ephemeral_gb': u'0',
+ u'instance_type_rxtx_factor': u'1.0',
+ u'instance_type_flavorid': u'1',
+ u'instance_type_vcpus': u'1',
+ u'image_container_format': u'ami',
+ u'image_min_ram': u'0',
+ u'image_disk_format': u'ami',
+ u'image_base_image_ref':
+ u'0560ac3f-3bcd-434d-b012-8dd7a212b73b'},
+ u'task_state': u'scheduling',
+ u'shutdown_terminate': False,
+ u'cell_name': None,
+ u'ephemeral_key_uuid': None,
+ u'locked': False,
+ u'name': u'instance-0000000f',
+ u'created_at': u'2014-03-05T12:44:00.000000',
+ u'locked_by': None,
+ u'launch_index': 0,
+ u'memory_mb': 512,
+ u'vcpus': 1,
+ u'image_ref': u'0560ac3f-3bcd-434d-b012-8dd7a212b73b',
+ u'architecture': None,
+ u'auto_disk_config': False,
+ u'os_type': None,
+ u'metadata': {u'metering.server_group': u'Group_A',
+ u'AutoScalingGroupName': u'tyky-Group_Awste7',
+ u'metering.foo.bar': u'true'}},
+ u'security_group': [u'default'],
+ u'instance_uuids': [u'9206baae-c3b6-41bc-96f2-2c0726ff51c8']}},
+ u'priority': u'INFO',
+ u'_context_is_admin': True,
+ u'_context_timestamp': u'2014-03-05T12:44:00.135674',
+ u'publisher_id': u'scheduler.eglynn-f19-devstack3',
+ u'message_id': u'd6c1ae63-a26b-47c7-8397-8794216e09dd',
+ u'_context_remote_address': u'172.16.12.21',
+ u'_context_roles': [u'_member_', u'admin'],
+ u'timestamp': u'2014-03-05 12:44:00.733758',
+ u'_context_user': u'0a757cd896b64b65ba3784afef564116',
+ u'_unique_id': u'2af47cbdde604ff794bb046f3f9db1e2',
+ u'_context_project_name': u'admin',
+ u'_context_read_deleted': u'no',
+ u'_context_tenant': u'2bd766a095b44486bf07cf7f666997eb',
+ u'_context_instance_lock_checked': False,
+ u'_context_project_id': u'2bd766a095b44486bf07cf7f666997eb',
+ u'_context_user_name': u'admin'
}
@@ -424,6 +571,14 @@ class TestNotifications(base.TestCase):
def _find_counter(counters, name):
return filter(lambda counter: counter.name == name, counters)[0]
+ def _verify_user_metadata(self, metadata):
+ self.assertIn('user_metadata', metadata)
+ user_meta = metadata['user_metadata']
+ self.assertEqual(user_meta.get('server_group'), 'Group_A')
+ self.assertNotIn('AutoScalingGroupName', user_meta)
+ self.assertIn('foo_bar', user_meta)
+ self.assertNotIn('foo.bar', user_meta)
+
def test_instance_create_instance(self):
ic = notifications.Instance()
counters = list(ic.process_notification(INSTANCE_CREATE_END))
@@ -501,6 +656,7 @@ class TestNotifications(base.TestCase):
c = counters[0]
self.assertEqual(c.volume, 1)
self.assertEqual(c.name, 'instance:m1.small')
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_finish_resize_memory(self):
ic = notifications.Memory()
@@ -509,6 +665,7 @@ class TestNotifications(base.TestCase):
c = counters[0]
self.assertEqual(c.volume,
INSTANCE_FINISH_RESIZE_END['payload']['memory_mb'])
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_finish_resize_vcpus(self):
ic = notifications.VCpus()
@@ -524,6 +681,7 @@ class TestNotifications(base.TestCase):
self.assertEqual(len(counters), 1)
c = counters[0]
self.assertEqual(c.volume, 1)
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_resize_finish_flavor(self):
ic = notifications.InstanceFlavor()
@@ -532,6 +690,7 @@ class TestNotifications(base.TestCase):
c = counters[0]
self.assertEqual(c.volume, 1)
self.assertEqual(c.name, 'instance:m1.tiny')
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_resize_finish_memory(self):
ic = notifications.Memory()
@@ -540,6 +699,7 @@ class TestNotifications(base.TestCase):
c = counters[0]
self.assertEqual(c.volume,
INSTANCE_RESIZE_REVERT_END['payload']['memory_mb'])
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_resize_finish_vcpus(self):
ic = notifications.VCpus()
@@ -548,6 +708,7 @@ class TestNotifications(base.TestCase):
c = counters[0]
self.assertEqual(c.volume,
INSTANCE_RESIZE_REVERT_END['payload']['vcpus'])
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_delete_samples(self):
ic = notifications.InstanceDelete()
@@ -555,6 +716,8 @@ class TestNotifications(base.TestCase):
self.assertEqual(len(counters), 2)
names = [c.name for c in counters]
self.assertEqual(names, ['sample-name1', 'sample-name2'])
+ c = counters[0]
+ self._verify_user_metadata(c.resource_metadata)
def test_instance_scheduled(self):
ic = notifications.InstanceScheduled()
@@ -568,3 +731,6 @@ class TestNotifications(base.TestCase):
self.assertEqual(names, ['instance.scheduled'])
rid = [c.resource_id for c in counters]
self.assertEqual(rid, ['fake-uuid1-1'])
+ c = counters[0]
+ metadata = c.resource_metadata['request_spec']['instance_properties']
+ self._verify_user_metadata(metadata)