diff options
author | liyi <liyi8611@gmail.com> | 2018-06-19 17:33:30 +0800 |
---|---|---|
committer | Pavlo Shchelokovskyy <shchelokovskyy@gmail.com> | 2021-02-03 20:45:23 +0200 |
commit | 5d40f5e70ac502978405ef55c095356694ae8128 (patch) | |
tree | e15d413db7cf09b38107934e61ba5e3ada977d70 /ceilometer/tests | |
parent | 2be7a43be144f02d8fb71526aeda19553f1a368f (diff) | |
download | ceilometer-5d40f5e70ac502978405ef55c095356694ae8128.tar.gz |
Fix gnocchi create resource error when missing flavor
When a server created, I delete the related flavor, and the
gnocchi can not discover the server.
This patch also makes discovery of private flavors possible.
Change-Id: I0f570bddf0f2597808a0148d72c0ea2e5f900e23
Closes-Bug: #1777607
Diffstat (limited to 'ceilometer/tests')
-rw-r--r-- | ceilometer/tests/unit/compute/test_discovery.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ceilometer/tests/unit/compute/test_discovery.py b/ceilometer/tests/unit/compute/test_discovery.py index e5c1c964..0e1eccad 100644 --- a/ceilometer/tests/unit/compute/test_discovery.py +++ b/ceilometer/tests/unit/compute/test_discovery.py @@ -17,6 +17,8 @@ from unittest import mock import fixtures import testtools +from novaclient import exceptions + try: import libvirt except ImportError: @@ -297,3 +299,29 @@ class TestDiscovery(base.BaseTestCase): dsc = discovery.InstanceDiscovery(self.CONF) resources = dsc.discover(mock.MagicMock()) self.assertEqual(0, len(resources)) + + 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) |