def test_info_from_instance_not_call_generate_image_url( self, mock_gen_image_url): ctxt = nova_context.get_admin_context() instance = fake_instance.fake_instance_obj(ctxt, image_ref=uuids.image) instance.system_metadata = {} instance.metadata = {} base.info_from_instance(ctxt, instance, network_info=None, populate_image_ref_url=False) mock_gen_image_url.assert_not_called()
def test_payload_has_timestamp_fields(self): time = datetime.datetime(2017, 2, 2, 16, 45, 0) # do not define deleted_at to test that missing value is handled # properly self.instance.terminated_at = time self.instance.launched_at = time info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertEqual('2017-02-02T16:45:00.000000', info['terminated_at']) self.assertEqual('2017-02-02T16:45:00.000000', info['launched_at']) self.assertEqual('', info['deleted_at'])
def test_payload_has_timestamp_fields(self): time = datetime.datetime(2017, 2, 2, 16, 45, 0) # do not define deleted_at to test that missing value is handled # properly self.instance.terminated_at = time self.instance.launched_at = time info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertEqual('2017-02-02T16:45:00.000000', info['terminated_at']) self.assertEqual('2017-02-02T16:45:00.000000', info['launched_at']) self.assertEqual('', info['deleted_at'])
def test_info_from_instance_image_api_endpoint_not_found_no_token( self, mock_gen_image_url): """Tests the case that we fail to generate the image ref url because CONF.glance.api_servers isn't set and we have a context without an auth token, like in the case of a periodic task using an admin context. In this case, we expect the payload field 'image_ref_url' to just be the instance.image_ref (image ID for a non-volume-backed server). """ ctxt = nova_context.get_admin_context() instance = fake_instance.fake_instance_obj(ctxt, image_ref=uuids.image) instance.system_metadata = {} instance.metadata = {} payload = base.info_from_instance(ctxt, instance, network_info=None) self.assertEqual(instance.image_ref, payload['image_ref_url']) mock_gen_image_url.assert_called_once_with(instance.image_ref, ctxt)
def test_payload_has_flavor_attributes(self): # Zero these to make sure they are not used self.instance.vcpus = self.instance.memory_mb = 0 self.instance.root_gb = self.instance.ephemeral_gb = 0 # Set flavor values and make sure _these_ are present in the output self.instance.flavor.vcpus = 10 self.instance.flavor.root_gb = 20 self.instance.flavor.memory_mb = 30 self.instance.flavor.ephemeral_gb = 40 info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertEqual(10, info['vcpus']) self.assertEqual(20, info['root_gb']) self.assertEqual(30, info['memory_mb']) self.assertEqual(40, info['ephemeral_gb']) self.assertEqual(60, info['disk_gb'])
def test_payload_has_flavor_attributes(self): # Zero these to make sure they are not used self.instance.vcpus = self.instance.memory_mb = 0 self.instance.root_gb = self.instance.ephemeral_gb = 0 # Set flavor values and make sure _these_ are present in the output self.instance.flavor.vcpus = 10 self.instance.flavor.root_gb = 20 self.instance.flavor.memory_mb = 30 self.instance.flavor.ephemeral_gb = 40 info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertEqual(10, info['vcpus']) self.assertEqual(20, info['root_gb']) self.assertEqual(30, info['memory_mb']) self.assertEqual(40, info['ephemeral_gb']) self.assertEqual(60, info['disk_gb'])
def test_payload_has_progress(self): self.instance.progress = 50 info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("progress", info) self.assertEqual(50, info["progress"])
def test_payload_has_progress_empty(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("progress", info) self.assertIsNone(self.instance.progress) self.assertEqual("", info["progress"])
def test_payload_has_cell_name(self): self.instance.cell_name = "cell1" info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("cell_name", info) self.assertEqual("cell1", info["cell_name"])
def test_payload_has_cell_name_empty(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("cell_name", info) self.assertIsNone(self.instance.cell_name) self.assertEqual("", info["cell_name"])
def test_payload_has_vif_mac_address(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("fixed_ips", info) self.assertEqual(self.net_info[0]['address'], info["fixed_ips"][0]["vif_mac"])
def test_payload_has_fixed_ip_labels(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info) self.assertIn("fixed_ips", info) self.assertEqual(info["fixed_ips"][0]["label"], "test1")
def test_payload_has_progress(self): self.instance.progress = 50 info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertIn("progress", info) self.assertEqual(50, info["progress"])
def test_payload_has_progress_empty(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertIn("progress", info) self.assertIsNone(self.instance.progress) self.assertEqual("", info["progress"])
def test_payload_has_cell_name(self): self.instance.cell_name = "cell1" info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertIn("cell_name", info) self.assertEqual("cell1", info["cell_name"])
def test_payload_has_vif_mac_address(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertIn("fixed_ips", info) self.assertEqual(self.net_info[0]['address'], info["fixed_ips"][0]["vif_mac"])
def test_payload_has_fixed_ip_labels(self): info = notifications.info_from_instance(self.context, self.instance, self.net_info, None) self.assertIn("fixed_ips", info) self.assertEqual(info["fixed_ips"][0]["label"], "test1")