move audit-related code to backend

Add two functions in filebackend, to retrieve all audits, and to
retrieve an audit script's config given the name.

Replace occurences of utils.load_yaml in engine.py with calls to
above functions

Change-Id: Ia204d0db8a078c28ce27a2ae2ed57eb8b7fdf23b
This commit is contained in:
pran1990 2014-05-31 00:47:05 -07:00 committed by Pranesh Pandurangan
parent d4fcac48f1
commit e7c8fee0a8
2 changed files with 20 additions and 9 deletions

View File

@ -19,13 +19,25 @@ class FileBackend(base.Backend):
"""A directory based backend."""
def __init__(self, conf):
super(FileBackend, self).__init__(conf)
self._audit_cfg = conf['audit_cfg']
self._repair_cfg = conf['repair_cfg']
self.setup()
def setup(self):
utils.create_files([self._conf['audit_cfg'], self._conf['repair_cfg']])
utils.create_files([self._audit_cfg, self._repair_cfg])
def open(self):
pass
def close(self):
pass
def get_audits(self):
audits = utils.load_yaml(self._audit_cfg)
return audits
def audit_cfg_from_name(self, name):
audits = self.get_audits()
conf = audits[name]['cfg']
audit_cfg = dict(utils.load_yaml(conf))
return audit_cfg

View File

@ -100,7 +100,7 @@ class Engine(object):
scheduler = self.executor.submit(self.schedule)
self.futures.append(scheduler)
#watchdog
# watchdog
watchdog_thread = self.start_watchdog(self.cfg_dir)
watchdog_thread.join()
@ -155,16 +155,15 @@ class Engine(object):
def run_serializer(self, next_iteration, current_time):
LOG.info("Running serializer for %s at %s", self.name, current_time)
audits = utils.load_yaml(self.audit_cfg)
audits = self._backend_driver.get_audits()
schedules = {}
if not audits:
return
try:
for audit_name in audits:
conf = audits[audit_name]['cfg']
audit_config = dict(utils.load_yaml(conf))
schedules[audit_name] = audit_config['schedule']
audit_cfg = self._backend_driver.audit_cfg_from_name(
audit_name)
schedules[audit_name] = audit_cfg['schedule']
new_additions = []
for key in six.iterkeys(schedules):
@ -202,11 +201,11 @@ class Engine(object):
try:
pause.until(execution_time)
LOG.info("Time: %s, Starting %s", execution_time, audit_list)
audits = self._backend_driver.get_audits()
audit_futures = []
for audit in audit_list:
audit_name = audit['name']
audit_cfg = utils.load_yaml(audits[audit_name]['cfg'])
audit_cfg = self._backend_driver.audit_cfg_from_name(
audit_name)
future = self.executor.submit(self.run_audit,
audit_name=audit_name,
**audit_cfg)