Add an audit unregister option
Allow users to remove audit scripts through a simple CLI call. The unregister-audit call will remove an audit script from audit.cfg, thus stopping the execution of all but the currently scheduled audit scripts. partially implements blueprint simple api Change-Id: I1d5328d87b607c2f5cfdaebb7448a11673f38d48
This commit is contained in:
parent
b1ca5a4c91
commit
473e2febc0
|
@ -60,6 +60,15 @@ def _add_to_list(engine, script_type, script_name, **script_args):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def _remove_from_list(engine, script_type, script_name):
|
||||||
|
backend = _get_backend_from_engine(engine)
|
||||||
|
try:
|
||||||
|
backend.remove_script(script_type, script_name)
|
||||||
|
except Exception:
|
||||||
|
LOG.exception("Could not remove %s script %s",
|
||||||
|
script_type, script_name)
|
||||||
|
|
||||||
|
|
||||||
def register_audit(args):
|
def register_audit(args):
|
||||||
LOG.info('Registering audit script %s', args.name)
|
LOG.info('Registering audit script %s', args.name)
|
||||||
|
|
||||||
|
@ -74,6 +83,14 @@ def register_audit(args):
|
||||||
LOG.info('Registered audit %s', args.name)
|
LOG.info('Registered audit %s', args.name)
|
||||||
|
|
||||||
|
|
||||||
|
def unregister_audit(args):
|
||||||
|
LOG.info('Unregistering audit script %s', args.name)
|
||||||
|
if not args.name and args.engine:
|
||||||
|
LOG.error('Need a audit name and engine to unregister')
|
||||||
|
return
|
||||||
|
_remove_from_list(args.engine, 'audit', args.name)
|
||||||
|
|
||||||
|
|
||||||
def register_repair(args):
|
def register_repair(args):
|
||||||
LOG.info('Registering repair script %s', args.name)
|
LOG.info('Registering repair script %s', args.name)
|
||||||
|
|
||||||
|
@ -151,6 +168,14 @@ def parse():
|
||||||
help='Engine')
|
help='Engine')
|
||||||
register_audit_parser.set_defaults(func=register_audit)
|
register_audit_parser.set_defaults(func=register_audit)
|
||||||
|
|
||||||
|
unregister_audit_parser =\
|
||||||
|
subparsers.add_parser('unregister-audit',
|
||||||
|
help='Unregister a repair script')
|
||||||
|
unregister_audit_parser.add_argument('-n', dest='name', action='store',
|
||||||
|
help='Repair script name')
|
||||||
|
unregister_audit_parser.add_argument('-e', dest='engine', action='store',
|
||||||
|
help='Engine')
|
||||||
|
unregister_audit_parser.set_defaults(func=unregister_audit)
|
||||||
register_repair_parser =\
|
register_repair_parser =\
|
||||||
subparsers.add_parser('register-repair',
|
subparsers.add_parser('register-repair',
|
||||||
help='Register a repair script')
|
help='Register a repair script')
|
||||||
|
|
|
@ -67,3 +67,7 @@ class Backend(object):
|
||||||
@abc.abstractmethod
|
@abc.abstractmethod
|
||||||
def add_script(self, script_type, data):
|
def add_script(self, script_type, data):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@abc.abstractmethod
|
||||||
|
def remove_script(self, script_type, script_name):
|
||||||
|
pass
|
||||||
|
|
|
@ -69,3 +69,21 @@ class FileBackend(base.Backend):
|
||||||
def add_script(self, script_type, data):
|
def add_script(self, script_type, data):
|
||||||
script_metadata = self.get_script_cfg(script_type)
|
script_metadata = self.get_script_cfg(script_type)
|
||||||
utils.write_yaml(data, script_metadata)
|
utils.write_yaml(data, script_metadata)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def remove_script_from_cfg(metadata, name):
|
||||||
|
scripts = utils.load_yaml(metadata)
|
||||||
|
try:
|
||||||
|
scripts.pop(name)
|
||||||
|
except KeyError:
|
||||||
|
raise
|
||||||
|
return scripts
|
||||||
|
|
||||||
|
def remove_script(self, script_type, script_name):
|
||||||
|
try:
|
||||||
|
script_metadata = self.get_script_cfg(script_type)
|
||||||
|
final_data = FileBackend.remove_script_from_cfg(script_metadata,
|
||||||
|
script_name)
|
||||||
|
utils.write_yaml(final_data, script_metadata, append=False)
|
||||||
|
except Exception:
|
||||||
|
raise
|
||||||
|
|
Loading…
Reference in New Issue