예제 #1
0
 def test_notify_usage_exists_instance_not_found(self):
     # Ensure 'exists' notification generates appropriate usage data.
     instance_id = self._create_instance()
     instance = objects.Instance.get_by_id(self.context, instance_id,
             expected_attrs=['metadata', 'system_metadata', 'info_cache'])
     self.compute.terminate_instance(self.context, instance, [], [])
     compute_utils.notify_usage_exists(
         rpc.get_notifier('compute'), self.context, instance)
     msg = fake_notifier.NOTIFICATIONS[-1]
     self.assertEqual(msg.priority, 'INFO')
     self.assertEqual(msg.event_type, 'compute.instance.exists')
     payload = msg.payload
     self.assertEqual(payload['tenant_id'], self.project_id)
     self.assertEqual(payload['user_id'], self.user_id)
     self.assertEqual(payload['instance_id'], instance['uuid'])
     self.assertEqual(payload['instance_type'], 'm1.tiny')
     type_id = flavors.get_flavor_by_name('m1.tiny')['id']
     self.assertEqual(str(payload['instance_type_id']), str(type_id))
     flavor_id = flavors.get_flavor_by_name('m1.tiny')['flavorid']
     self.assertEqual(str(payload['instance_flavor_id']), str(flavor_id))
     for attr in ('display_name', 'created_at', 'launched_at',
                  'state', 'state_description',
                  'bandwidth', 'audit_period_beginning',
                  'audit_period_ending', 'image_meta'):
         self.assertIn(attr, payload, "Key %s not in payload" % attr)
     self.assertEqual(payload['image_meta'], {})
     image_ref_url = "%s/images/1" % glance.generate_glance_url()
     self.assertEqual(payload['image_ref_url'], image_ref_url)
예제 #2
0
 def notify_usage_exists(self, context, instance, current_period,
                         ignore_missing_network_data,
                         system_metadata, extra_usage_info):
     if not isinstance(instance, objects.Instance):
         attrs = ['metadata', 'system_metadata']
         instance = objects.Instance._from_db_object(context,
                                                     objects.Instance(),
                                                     instance,
                                                     expected_attrs=attrs)
     compute_utils.notify_usage_exists(self.notifier, context, instance,
                                       current_period,
                                       ignore_missing_network_data,
                                       system_metadata, extra_usage_info)
예제 #3
0
파일: manager.py 프로젝트: hsluoyz/patron
 def notify_usage_exists(
     self, context, instance, current_period, ignore_missing_network_data, system_metadata, extra_usage_info
 ):
     if not isinstance(instance, objects.Instance):
         attrs = ["metadata", "system_metadata"]
         instance = objects.Instance._from_db_object(context, objects.Instance(), instance, expected_attrs=attrs)
     compute_utils.notify_usage_exists(
         self.notifier,
         context,
         instance,
         current_period,
         ignore_missing_network_data,
         system_metadata,
         extra_usage_info,
     )