From d4883cef780fe41dc518ecbe4f50eddd570e4e3a Mon Sep 17 00:00:00 2001 From: Hongbin Lu Date: Wed, 18 Oct 2017 23:07:40 -0400 Subject: [PATCH] Move inventory host to compute manager This is because this task updates the resource tracker instance and this resource instance is duplicated with the one in compute manager. The duplication of resource trackers is problematic on tracking resources. For example, PCI tracking won't work as expected. This patch move the task to compute manager so that it can share the same resource tracker with compute manager. The duplication of tracking is removed. Change-Id: Ieb125a239b5e9f3287701f1d30f35171886e14e1 --- zun/compute/manager.py | 5 +++++ zun/service/periodic.py | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/zun/compute/manager.py b/zun/compute/manager.py index 462ebbae7..bc7dfdb68 100644 --- a/zun/compute/manager.py +++ b/zun/compute/manager.py @@ -684,6 +684,11 @@ class Manager(periodic_task.PeriodicTasks): six.text_type(e)) raise + @periodic_task.periodic_task(run_immediately=True) + def inventory_host(self, context): + rt = self._get_resource_tracker() + rt.update_available_resources(context) + def _get_resource_tracker(self): if not self._resource_tracker: rt = compute_node_tracker.ComputeNodeTracker(self.host, diff --git a/zun/service/periodic.py b/zun/service/periodic.py index 167955dc9..b8a0656bd 100644 --- a/zun/service/periodic.py +++ b/zun/service/periodic.py @@ -17,7 +17,6 @@ from oslo_log import log from oslo_service import periodic_task from zun.common import context -from zun.compute.compute_node_tracker import ComputeNodeTracker from zun.container import driver from zun import objects @@ -38,7 +37,6 @@ class ContainerStateSyncPeriodicJob(periodic_task.PeriodicTasks): self.host = conf.host self.driver = driver.load_container_driver( conf.container_driver) - self.node_tracker = ComputeNodeTracker(self.host, self.driver) super(ContainerStateSyncPeriodicJob, self).__init__(conf) @periodic_task.periodic_task(run_immediately=True) @@ -58,11 +56,6 @@ class ContainerStateSyncPeriodicJob(periodic_task.PeriodicTasks): capsule.save(ctx) LOG.debug('Complete syncing container states.') - @periodic_task.periodic_task(run_immediately=True) - @set_context - def inventory_host(self, ctx): - self.node_tracker.update_available_resources(ctx) - def setup(conf, tg): pt = ContainerStateSyncPeriodicJob(conf)