X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/3ecf6786a731c0a467f0efcbf6346914e3824ec8..2be7273ccdad115169ab0f8765f3fe66d0aeff47:/tools/cfgshell diff --git a/tools/cfgshell b/tools/cfgshell index 53dacb0..77afab9 100755 --- a/tools/cfgshell +++ b/tools/cfgshell @@ -53,6 +53,8 @@ class ConfigShell(cmd.Cmd): responsibility to know what they're doing. """ + # all do_/complete_* functions follow the same API + # pylint: disable-msg=W0613 prompt = "(/) " def __init__(self, cfg_file=None): @@ -91,7 +93,9 @@ class ConfigShell(cmd.Cmd): dirs = [] entries = [] if isinstance(obj, objects.ConfigObject): - for name in obj.__slots__: + # pylint: disable-msg=W0212 + # yes, we're using a protected member + for name in obj._all_slots(): child = getattr(obj, name, None) if isinstance(child, (list, dict, tuple, objects.ConfigObject)): dirs.append(name) @@ -152,8 +156,7 @@ class ConfigShell(cmd.Cmd): arg = None try: self.cfg = config.ConfigWriter(cfg_file=arg, offline=True) - self.cfg._OpenConfig() - self.parents = [self.cfg._config_data] + self.parents = [self.cfg._config_data] # pylint: disable-msg=W0212 self.path = [] except errors.ConfigurationError, err: print "Error: %s" % str(err) @@ -178,7 +181,7 @@ class ConfigShell(cmd.Cmd): """ pointer = self.parents[-1] - dirs, entries = self._get_entries(pointer) + dirs, _ = self._get_entries(pointer) matches = [str(name) for name in dirs if name.startswith(text)] return matches @@ -203,7 +206,7 @@ class ConfigShell(cmd.Cmd): return False pointer = self.parents[-1] - dirs, entries = self._get_entries(pointer) + dirs, _ = self._get_entries(pointer) if line not in dirs: print "No such child" @@ -233,7 +236,7 @@ class ConfigShell(cmd.Cmd): """ pointer = self.parents[-1] - dirs, entries = self._get_entries(pointer) + _, entries = self._get_entries(pointer) matches = [name for name in entries if name.startswith(text)] return matches @@ -245,7 +248,7 @@ class ConfigShell(cmd.Cmd): """ pointer = self.parents[-1] - dirs, entries = self._get_entries(pointer) + _, entries = self._get_entries(pointer) if line not in entries: print "No such entry" return False @@ -285,7 +288,7 @@ class ConfigShell(cmd.Cmd): if self.cfg.VerifyConfig(): print "Config data does not validate, refusing to save." return False - self.cfg._WriteConfig() + self.cfg._WriteConfig() # pylint: disable-msg=W0212 def do_rm(self, line): """Removes an instance or a node. @@ -295,7 +298,7 @@ class ConfigShell(cmd.Cmd): """ pointer = self.parents[-1] - data = self.cfg._config_data + data = self.cfg._config_data # pylint: disable-msg=W0212 if pointer not in (data.instances, data.nodes): print "Can only delete instances and nodes" return False @@ -310,14 +313,16 @@ class ConfigShell(cmd.Cmd): else: print "Invalid node name" - def do_EOF(self, line): + @staticmethod + def do_EOF(line): """Exit the application. """ print return True - def do_quit(self, line): + @staticmethod + def do_quit(line): """Exit the application. """ @@ -336,10 +341,9 @@ def ParseOptions(): In case of command line errors, it will show the usage and exit the program. - Returns: - (options, args), as returned by OptionParser.parse_args - """ + @return: a tuple (options, args), as returned by OptionParser.parse_args + """ parser = optparse.OptionParser() options, args = parser.parse_args() @@ -350,9 +354,8 @@ def ParseOptions(): def main(): """Application entry point. - This is just a wrapper over BootStrap, to handle our own exceptions. """ - options, args = ParseOptions() + _, args = ParseOptions() if args: cfg_file = args[0] else: