From c81849712f8888e6f12b7c2b7ebfcf5d2294addd Mon Sep 17 00:00:00 2001 From: Tomas Babej Date: Mon, 10 Jun 2013 14:43:24 +0200 Subject: Provide ipa-advise tool Provides a pluggable framework for generating configuration scriptlets and instructions for various machine setups and use cases. Creates a new ipa-advise command, available to root user on the IPA server. Also provides an example configuration plugin, config-fedora-authconfig. https://fedorahosted.org/freeipa/ticket/3670 --- ipalib/frontend.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'ipalib/frontend.py') diff --git a/ipalib/frontend.py b/ipalib/frontend.py index 427f6823..67ca7767 100644 --- a/ipalib/frontend.py +++ b/ipalib/frontend.py @@ -1445,3 +1445,48 @@ class Updater(Method): ) return self.execute(**options) + + +class _AdviceOutput(object): + + def __init__(self): + self.content = [] + self.prefix = '# ' + self.options = None + + def comment(self, line): + self.content.append(self.prefix + line) + + def debug(self, line): + if self.options.verbose: + self.comment('DEBUG: ' + line) + + def command(self, line): + self.content.append(line) + + +class Advice(Plugin): + """ + Base class for advices, plugins for ipa-advise. + """ + + options = None + require_root = False + description = '' + + def __init__(self): + super(Advice, self).__init__() + self.log = _AdviceOutput() + + def set_options(self, options): + self.options = options + self.log.options = options + + def get_info(self): + """ + This method should be overriden by child Advices. + + Returns a string with instructions. + """ + + raise NotImplementedError -- cgit