def test_get_flavor_id(self): self.CONF.set_override("instance_discovery_method", "libvirt_metadata", group="compute") self.client.nova_client = mock.MagicMock() self.client.nova_client.flavors = mock.MagicMock() fake_flavor = mock.MagicMock() fake_flavor.id = 'fake_id' self.client.nova_client.flavors.find = mock.MagicMock( return_value=fake_flavor) dsc = discovery.InstanceDiscovery(self.CONF) flavor_name = 'fake_name' ret_flavor_id = dsc.get_flavor_id(flavor_name) self.assertEqual('fake_id', ret_flavor_id) # test raise NotFound exception self.client.nova_client.flavors.find = mock.MagicMock( side_effect=exceptions.NotFound(404)) dsc = discovery.InstanceDiscovery(self.CONF) ret_flavor_id = dsc.get_flavor_id(flavor_name) self.assertEqual(flavor_name, ret_flavor_id)
def test_discovery_with_legacy_resource_cache_cleanup(self): self.CONF.set_override("instance_discovery_method", "naive", group="compute") self.CONF.set_override("resource_update_interval", 600, group="compute") self.CONF.set_override("resource_cache_expiry", 1800, group="compute") dsc = discovery.InstanceDiscovery(self.CONF) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.utc_now.return_value = datetime.datetime( 2016, 1, 1, minute=20, tzinfo=iso8601.iso8601.UTC) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.utc_now.return_value = datetime.datetime( 2016, 1, 1, minute=31, tzinfo=iso8601.iso8601.UTC) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) expected_calls = [ mock.call('test', None), mock.call('test', '2016-01-01T00:00:00+00:00'), mock.call('test', None) ] self.assertEqual(expected_calls, self.client.instance_get_all_by_host.call_args_list)
def test_discovery_with_resource_update_interval(self): self.CONF.set_override("instance_discovery_method", "naive", group="compute") self.CONF.set_override("resource_update_interval", 600, group="compute") dsc = discovery.InstanceDiscovery(self.CONF) dsc.last_run = datetime.datetime(2016, 1, 1, tzinfo=iso8601.iso8601.UTC) self.utc_now.return_value = datetime.datetime( 2016, 1, 1, minute=5, tzinfo=iso8601.iso8601.UTC) resources = dsc.discover(mock.MagicMock()) self.assertEqual(0, len(resources)) self.client.instance_get_all_by_host.assert_not_called() self.utc_now.return_value = datetime.datetime( 2016, 1, 1, minute=20, tzinfo=iso8601.iso8601.UTC) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.assertEqual(1, list(resources)[0].id) self.client.instance_get_all_by_host.assert_called_once_with( self.CONF.host, "2016-01-01T00:00:00+00:00")
def test_discovery_with_libvirt_error(self, libvirt, libvirt2): self.CONF.set_override("instance_discovery_method", "libvirt_metadata", group="compute") libvirt.VIR_DOMAIN_METADATA_ELEMENT = 2 libvirt2.openReadOnly.return_value = FakeManualInstanceConn() dsc = discovery.InstanceDiscovery(self.CONF) resources = dsc.discover(mock.MagicMock()) self.assertEqual(0, len(resources))
def test_normal_discovery(self): dsc = discovery.InstanceDiscovery() resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.assertEqual(1, list(resources)[0].id) self.client.instance_get_all_by_host.assert_called_once_with( 'test', None) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.assertEqual(1, list(resources)[0].id) self.client.instance_get_all_by_host.assert_called_with( self.CONF.host, "2016-01-01T00:00:00+00:00")
def test_normal_discovery(self): self.CONF.set_override("instance_discovery_method", "naive", group="compute") dsc = discovery.InstanceDiscovery(self.CONF) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.assertEqual(1, list(resources)[0].id) self.client.instance_get_all_by_host.assert_called_once_with( 'test', None) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) self.assertEqual(1, list(resources)[0].id) self.client.instance_get_all_by_host.assert_called_with( self.CONF.host, "2016-01-01T00:00:00+00:00")
def test_discovery_with_libvirt(self, libvirt, libvirt2): self.CONF.set_override("instance_discovery_method", "libvirt_metadata", group="compute") libvirt.VIR_DOMAIN_METADATA_ELEMENT = 2 libvirt2.openReadOnly.return_value = FakeConn() dsc = discovery.InstanceDiscovery(self.CONF) resources = dsc.discover(mock.MagicMock()) self.assertEqual(1, len(resources)) r = list(resources)[0] s = util.make_sample_from_instance(self.CONF, r, "metric", "delta", "carrot", 1) self.assertEqual("a75c2fa5-6c03-45a8-bbf7-b993cfcdec27", s.resource_id) self.assertEqual("d99c829753f64057bc0f2030da309943", s.project_id) self.assertEqual("a1f4684e58bd4c88aefd2ecb0783b497", s.user_id) metadata = s.resource_metadata self.assertEqual(1, metadata["vcpus"]) self.assertEqual(512, metadata["memory_mb"]) self.assertEqual(1, metadata["disk_gb"]) self.assertEqual(0, metadata["ephemeral_gb"]) self.assertEqual(1, metadata["root_gb"]) self.assertEqual("bdaf114a-35e9-4163-accd-226d5944bf11", metadata["image_ref"]) self.assertEqual("test.dom.com", metadata["display_name"]) self.assertEqual("instance-00000001", metadata["name"]) self.assertEqual("a75c2fa5-6c03-45a8-bbf7-b993cfcdec27", metadata["instance_id"]) self.assertEqual("m1.tiny", metadata["instance_type"]) self.assertEqual( "4d0bc931ea7f0513da2efd9acb4cf3a273c64b7bcc544e15c070e662", metadata["host"]) self.assertEqual(self.CONF.host, metadata["instance_host"]) self.assertEqual("active", metadata["status"]) self.assertEqual("running", metadata["state"]) self.assertEqual("hvm", metadata["os_type"]) self.assertEqual("x86_64", metadata["architecture"])