Added DE Background Scheduler w/ model sync jobs

In this changeset, I implemented a background scheduler service
for Watcher and more particularly for the Decision Engine where
I made it create 2 types of job per cluster data model collector
plugin:

- An initial job that is asynchronously executed upon starting the
  Decision Engine
- A periodical job that gets triggered every configurable interval
  of time

Change-Id: I3f5442f81933a19565217b894bd86c186e339762
Partially-Implements: bluprint cluster-model-objects-wrapper
This commit is contained in:
Vincent Françoise
2016-06-30 09:39:57 +02:00
parent b94677c3ef
commit 06c6c4691b
33 changed files with 517 additions and 74 deletions

View File

@@ -23,11 +23,18 @@ from watcher.decision_engine.model import vm
class ModelRoot(object):
def __init__(self):
def __init__(self, stale=False):
self._hypervisors = utils.Struct()
self._vms = utils.Struct()
self.mapping = mapping.Mapping(self)
self.resource = utils.Struct()
self.stale = stale
def __nonzero__(self):
return not self.stale
__bool__ = __nonzero__
def assert_hypervisor(self, obj):
if not isinstance(obj, hypervisor.Hypervisor):