From 7d33bf88131845ca796ad09cce7fe435c056fbb5 Mon Sep 17 00:00:00 2001 From: Hidekazu Nakamura Date: Tue, 10 Oct 2017 17:21:05 +0900 Subject: [PATCH] Fix _build_instance_node for building Compute CDM As of Nova API microversion 2.47, response of GET /servers/detail has flavor which contains a subset of the actual flavor information used to create the server instance, represented as a nested dictionary. Since current watcher nova default api version is 2.53(Pike), This patch follows the API response change. Change-Id: Ia575950f0702afa1d093f03ca8ddedd3c410b7de Closes-Bug: #1722462 --- watcher/common/nova_helper.py | 3 --- watcher/decision_engine/model/collector/nova.py | 10 +++++----- .../tests/decision_engine/cluster/test_nova_cdmc.py | 4 ---- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/watcher/common/nova_helper.py b/watcher/common/nova_helper.py index 6e8c96e72..8bc08a59b 100644 --- a/watcher/common/nova_helper.py +++ b/watcher/common/nova_helper.py @@ -70,9 +70,6 @@ class NovaHelper(object): def get_service(self, service_id): return self.nova.services.find(id=service_id) - def get_flavor(self, flavor_id): - return self.nova.flavors.get(flavor_id) - def get_aggregate_list(self): return self.nova.aggregates.list() diff --git a/watcher/decision_engine/model/collector/nova.py b/watcher/decision_engine/model/collector/nova.py index 462b040a1..bf336d08b 100644 --- a/watcher/decision_engine/model/collector/nova.py +++ b/watcher/decision_engine/model/collector/nova.py @@ -227,14 +227,14 @@ class ModelBuilder(object): :param instance: Nova VM object. :return: A instance node for the graph. """ - flavor = self.nova_helper.get_flavor(instance.flavor["id"]) + flavor = instance.flavor instance_attributes = { "uuid": instance.id, "human_id": instance.human_id, - "memory": flavor.ram, - "disk": flavor.disk, - "disk_capacity": flavor.disk, - "vcpus": flavor.vcpus, + "memory": flavor["ram"], + "disk": flavor["disk"], + "disk_capacity": flavor["disk"], + "vcpus": flavor["vcpus"], "state": getattr(instance, "OS-EXT-STS:vm_state"), "metadata": instance.metadata} diff --git a/watcher/tests/decision_engine/cluster/test_nova_cdmc.py b/watcher/tests/decision_engine/cluster/test_nova_cdmc.py index a6857667e..8eb173e50 100644 --- a/watcher/tests/decision_engine/cluster/test_nova_cdmc.py +++ b/watcher/tests/decision_engine/cluster/test_nova_cdmc.py @@ -19,7 +19,6 @@ import mock from watcher.common import nova_helper -from watcher.common import utils from watcher.decision_engine.model.collector import nova from watcher.tests import base from watcher.tests import conf_fixture @@ -62,9 +61,6 @@ class TestNovaClusterDataModelCollector(base.TestCase): # m_nova_helper.get_instances_by_node.return_value = [fake_instance] m_nova_helper.get_instance_list.return_value = [fake_instance] - m_nova_helper.get_flavor.return_value = utils.Struct(**{ - 'ram': 333, 'disk': 222, 'vcpus': 4}) - m_config = mock.Mock() m_osc = mock.Mock()