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
This commit is contained in:
Hongbin Lu 2017-10-18 23:07:40 -04:00
parent fcc86539bb
commit d4883cef78
2 changed files with 5 additions and 7 deletions

View File

@ -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,

View File

@ -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)