def test_send_version_instance_update_uses_flavor(self, mock_emit): # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value test_keys = ['memory_mb', 'vcpus', 'root_gb', 'ephemeral_gb'] flavor_values = {k: 123 for k in test_keys} instance_values = {k: 456 for k in test_keys} flavor = objects.Flavor(**flavor_values) info_cache = objects.InstanceInfoCache( network_info=network_model.NetworkInfo()) instance = objects.Instance( flavor=flavor, info_cache=info_cache, **instance_values) payload = { 'bandwidth': {}, 'audit_period_ending': timeutils.utcnow(), 'audit_period_beginning': timeutils.utcnow(), } notification_base._send_versioned_instance_update( mock.MagicMock(), instance, payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in test_keys} self.assertEqual(flavor_values, data)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value test_keys = ['memory_mb', 'vcpus', 'root_gb', 'ephemeral_gb', 'swap'] flavor_values = {k: 123 for k in test_keys} instance_values = {k: 456 for k in test_keys} flavor = objects.Flavor(flavorid='test-flavor', name='test-flavor', disabled=False, projects=[], is_public=True, extra_specs={}, **flavor_values) info_cache = objects.InstanceInfoCache( network_info=network_model.NetworkInfo()) instance = objects.Instance(flavor=flavor, info_cache=info_cache, metadata={}, uuid=uuids.instance1, locked=False, **instance_values) payload = { 'bandwidth': {}, 'audit_period_ending': timeutils.utcnow(), 'audit_period_beginning': timeutils.utcnow(), } notification_base._send_versioned_instance_update( mock.MagicMock(), instance, payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in test_keys} self.assertEqual(flavor_values, data)
def test_send_versioned_instance_notification_is_not_called_unversioned( self, mock_notification, mock_payload): self.flags(notification_format='unversioned', group='notifications') notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') self.assertFalse(mock_payload.called) self.assertFalse(mock_notification.called)
def test_send_versioned_instance_notification_is_not_called_disabled( self, mock_notification, mock_payload, mock_notifier): mock_notifier.is_enabled.return_value = False notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') self.assertFalse(mock_payload.called) self.assertFalse(mock_notification.called)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in self.test_keys} self.assertEqual(self.flavor_values, data)
def test_send_versioned_instance_update_notification_disabled( self, mock_enabled, mock_info): """Tests the case that versioned notifications are disabled which makes _send_versioned_instance_update_notification a noop. """ base._send_versioned_instance_update(mock.sentinel.ctxt, mock.sentinel.instance, mock.sentinel.payload, mock.sentinel.host, mock.sentinel.service)
def test_send_versioned_instance_update_notification_disabled(self, mock_enabled, mock_info): """Tests the case that versioned notifications are disabled which makes _send_versioned_instance_update_notification a noop. """ base._send_versioned_instance_update(mock.sentinel.ctxt, mock.sentinel.instance, mock.sentinel.payload, mock.sentinel.host, mock.sentinel.service)
def test_send_versioned_instance_notification_is_not_called_unversioned( self, mock_notification, mock_payload): self.flags(notification_format='unversioned', group='notifications') notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') self.assertFalse(mock_payload.called) self.assertFalse(mock_notification.called)
def test_send_versioned_instance_notification_is_not_called_disabled( self, mock_notification, mock_payload, mock_notifier): mock_notifier.is_enabled.return_value = False notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') self.assertFalse(mock_payload.called) self.assertFalse(mock_notification.called)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value notification_base._send_versioned_instance_update( mock.MagicMock(), self.instance, self.payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in self.test_keys} self.assertEqual(self.flavor_values, data)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value test_keys = ["memory_mb", "vcpus", "root_gb", "ephemeral_gb"] flavor_values = {k: 123 for k in test_keys} instance_values = {k: 456 for k in test_keys} flavor = objects.Flavor(**flavor_values) info_cache = objects.InstanceInfoCache(network_info=network_model.NetworkInfo()) instance = objects.Instance(flavor=flavor, info_cache=info_cache, **instance_values) payload = { "bandwidth": {}, "audit_period_ending": timeutils.utcnow(), "audit_period_beginning": timeutils.utcnow(), } notification_base._send_versioned_instance_update(mock.MagicMock(), instance, payload, "host", "compute") payload = mock_emit.call_args_list[0][1]["payload"]["nova_object.data"] flavor_payload = payload["flavor"]["nova_object.data"] data = {k: flavor_payload[k] for k in test_keys} self.assertEqual(flavor_values, data)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # instance.update notification needs some tags value to avoid lazy-load self.instance.tags = objects.TagList() # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value mock_context = mock.MagicMock() mock_context.project_id = 'fake_project_id' mock_context.user_id = 'fake_user_id' mock_context.request_id = 'fake_req_id' notification_base._send_versioned_instance_update( mock_context, self.instance, self.payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in self.test_keys} self.assertEqual(self.flavor_values, data)
def test_send_version_instance_update_uses_flavor(self, mock_emit): # instance.update notification needs some tags value to avoid lazy-load self.instance.tags = objects.TagList() # Make sure that the notification payload chooses the values in # instance.flavor.$value instead of instance.$value mock_context = mock.MagicMock() mock_context.project_id = 'fake_project_id' mock_context.user_id = 'fake_user_id' mock_context.request_id = 'fake_req_id' notification_base._send_versioned_instance_update( mock_context, self.instance, self.payload, 'host', 'compute') payload = mock_emit.call_args_list[0][1]['payload']['nova_object.data'] flavor_payload = payload['flavor']['nova_object.data'] data = {k: flavor_payload[k] for k in self.test_keys} self.assertEqual(self.flavor_values, data)