Fabian Deutsch has uploaded a new change for review. Change subject: Add seperate installer and setup ......................................................................
Add seperate installer and setup Change-Id: I7f74603137881e8f663517df7cae3aa4d05f716c Signed-off-by: Fabian Deutsch <[email protected]> --- C scripts/tui/bin/ovirt-config-installer R scripts/tui/bin/ovirt-config-setup R scripts/tui/src/ovirt/node/app/__init__.py C scripts/tui/src/ovirt/node/app/installer.py R scripts/tui/src/ovirt/node/app/setup.py C scripts/tui/src/ovirt/node/base.py M scripts/tui/src/ovirt/node/config/defaults.py M scripts/tui/src/ovirt/node/plugins/__init__.py M scripts/tui/src/ovirt/node/plugins/setup/engine_page.py M scripts/tui/src/ovirt/node/plugins/setup/example.py M scripts/tui/src/ovirt/node/plugins/setup/features.py M scripts/tui/src/ovirt/node/plugins/setup/kdump_page.py M scripts/tui/src/ovirt/node/plugins/setup/keyboard_page.py M scripts/tui/src/ovirt/node/plugins/setup/logging_page.py M scripts/tui/src/ovirt/node/plugins/setup/monitoring_page.py M scripts/tui/src/ovirt/node/plugins/setup/network_page.py M scripts/tui/src/ovirt/node/plugins/setup/ping.py M scripts/tui/src/ovirt/node/plugins/setup/remote_storage_page.py M scripts/tui/src/ovirt/node/plugins/setup/security_page.py M scripts/tui/src/ovirt/node/plugins/setup/snmp_page.py M scripts/tui/src/ovirt/node/plugins/setup/status_page.py M scripts/tui/src/ovirt/node/plugins/setup/support_page.py M scripts/tui/src/ovirt/node/plugins/setup/usage.py M scripts/tui/src/ovirt/node/ui/__init__.py M scripts/tui/src/ovirt/node/ui/tui.py M scripts/tui/src/ovirt/node/utils/__init__.py M scripts/tui/src/ovirt/node/utils/security.py M scripts/tui/src/ovirt/node/utils/virt.py M scripts/tui/src/ovirt/node/valid.py 29 files changed, 99 insertions(+), 150 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node refs/changes/31/9931/1 diff --git a/scripts/tui/bin/ovirt-config-setup-molch b/scripts/tui/bin/ovirt-config-installer similarity index 77% copy from scripts/tui/bin/ovirt-config-setup-molch copy to scripts/tui/bin/ovirt-config-installer index 996da15..f50eca4 100755 --- a/scripts/tui/bin/ovirt-config-setup-molch +++ b/scripts/tui/bin/ovirt-config-installer @@ -5,4 +5,4 @@ #export PYTHONUNBUFFERED=x #export PYTHONDEBUG= #export PYTHONVERBOSE=x -python -t -m ovirt.node.main "$@" +python -t -m ovirt.node.app.installer "$@" diff --git a/scripts/tui/bin/ovirt-config-setup-molch b/scripts/tui/bin/ovirt-config-setup similarity index 78% rename from scripts/tui/bin/ovirt-config-setup-molch rename to scripts/tui/bin/ovirt-config-setup index 996da15..af0610b 100755 --- a/scripts/tui/bin/ovirt-config-setup-molch +++ b/scripts/tui/bin/ovirt-config-setup @@ -5,4 +5,4 @@ #export PYTHONUNBUFFERED=x #export PYTHONDEBUG= #export PYTHONVERBOSE=x -python -t -m ovirt.node.main "$@" +python -t -m ovirt.node.app.setup "$@" diff --git a/scripts/tui/src/ovirt/node/app.py b/scripts/tui/src/ovirt/node/app/__init__.py similarity index 95% rename from scripts/tui/src/ovirt/node/app.py rename to scripts/tui/src/ovirt/node/app/__init__.py index 0373706..92f57fc 100644 --- a/scripts/tui/src/ovirt/node/app.py +++ b/scripts/tui/src/ovirt/node/app/__init__.py @@ -74,6 +74,8 @@ def run(self): self.__load_plugins() + if not self.plugins: + raise Exception("No plugins found in '%s'" % self.plugin_base) self.ui.register_hotkey("f12", self.__drop_to_shell) self.ui.register_hotkey("window resize", self.__check_terminal_size) self.ui.footer = "Press esc to quit." @@ -81,4 +83,4 @@ def quit(self): LOGGER.info("Quitting") - self.ui.quit() + self.ui.quit() \ No newline at end of file diff --git a/scripts/tui/src/ovirt/node/main.py b/scripts/tui/src/ovirt/node/app/installer.py similarity index 80% copy from scripts/tui/src/ovirt/node/main.py copy to scripts/tui/src/ovirt/node/app/installer.py index 2e5c3f5..ae6e730 100644 --- a/scripts/tui/src/ovirt/node/main.py +++ b/scripts/tui/src/ovirt/node/app/installer.py @@ -1,6 +1,6 @@ #!/usr/bin/python # -# main.py - Copyright (C) 2012 Red Hat, Inc. +# ovirt-config-setup.py - Copyright (C) 2012 Red Hat, Inc. # Written by Fabian Deutsch <[email protected]> # # This program is free software; you can redistribute it and/or modify @@ -19,13 +19,13 @@ # also available at http://www.gnu.org/copyleft/gpl.html. """ -Create an setup application instance an start it. +Create an installer application instance an start it. """ import ovirt.node.app -import ovirt.node.plugins.setup +import ovirt.node.plugins.installer if __name__ == '__main__': - app = ovirt.node.app.Application(ovirt.node.plugins.setup) + app = ovirt.node.app.Application(ovirt.node.plugins.installer) app.run() diff --git a/scripts/tui/src/ovirt/node/main.py b/scripts/tui/src/ovirt/node/app/setup.py similarity index 94% rename from scripts/tui/src/ovirt/node/main.py rename to scripts/tui/src/ovirt/node/app/setup.py index 2e5c3f5..074391b 100644 --- a/scripts/tui/src/ovirt/node/main.py +++ b/scripts/tui/src/ovirt/node/app/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/python # -# main.py - Copyright (C) 2012 Red Hat, Inc. +# ovirt-config-setup.py - Copyright (C) 2012 Red Hat, Inc. # Written by Fabian Deutsch <[email protected]> # # This program is free software; you can redistribute it and/or modify diff --git a/scripts/tui/src/ovirt/node/main.py b/scripts/tui/src/ovirt/node/base.py similarity index 71% copy from scripts/tui/src/ovirt/node/main.py copy to scripts/tui/src/ovirt/node/base.py index 2e5c3f5..7b8c055 100644 --- a/scripts/tui/src/ovirt/node/main.py +++ b/scripts/tui/src/ovirt/node/base.py @@ -1,6 +1,6 @@ #!/usr/bin/python # -# main.py - Copyright (C) 2012 Red Hat, Inc. +# base.py - Copyright (C) 2012 Red Hat, Inc. # Written by Fabian Deutsch <[email protected]> # # This program is free software; you can redistribute it and/or modify @@ -19,13 +19,20 @@ # also available at http://www.gnu.org/copyleft/gpl.html. """ -Create an setup application instance an start it. +Base for all classes """ -import ovirt.node.app -import ovirt.node.plugins.setup +import logging -if __name__ == '__main__': - app = ovirt.node.app.Application(ovirt.node.plugins.setup) - app.run() +class Base(object): + """Base class for all objects.""" + + @property + def logger(self): + """Logger.""" + return self._logger + + def __init__(self): + """Contructor.""" + self._logger = logging.getLogger(self.__module__) \ No newline at end of file diff --git a/scripts/tui/src/ovirt/node/config/defaults.py b/scripts/tui/src/ovirt/node/config/defaults.py index 1931d8e..44f0aa1 100644 --- a/scripts/tui/src/ovirt/node/config/defaults.py +++ b/scripts/tui/src/ovirt/node/config/defaults.py @@ -39,6 +39,8 @@ import ovirt.node.utils import ovirt.node.config +from ovirt.node import base + LOGGER = logging.getLogger(__name__) @@ -99,7 +101,7 @@ return wrapper -class CentralNodeConfiguration(object): +class CentralNodeConfiguration(base.Base): def __init__(self, keys): assert type(keys) is tuple, "Keys need to have an order, " + \ "therefor a tuple expected" @@ -175,12 +177,12 @@ """ ovirt_config = defaults() if "OVIRT_DNS" not in ovirt_config: - LOGGER.debug("No DNS server entry in default config") + self.logger.debug("No DNS server entry in default config") return servers = ovirt_config["OVIRT_DNS"] if servers is None or servers == "": - LOGGER.debug("No DNS servers configured in default config") + self.logger.debug("No DNS servers configured in default config") servers = servers.split(",") diff --git a/scripts/tui/src/ovirt/node/plugins/__init__.py b/scripts/tui/src/ovirt/node/plugins/__init__.py index fb457c1..a4b52d2 100644 --- a/scripts/tui/src/ovirt/node/plugins/__init__.py +++ b/scripts/tui/src/ovirt/node/plugins/__init__.py @@ -22,11 +22,9 @@ This contains much stuff related to plugins """ import pkgutil -import logging +from ovirt.node import base import ovirt.node.exceptions - -LOGGER = logging.getLogger(__name__) def __walk_plugins(module): @@ -48,7 +46,7 @@ return modules -class NodePlugin(object): +class NodePlugin(base.Base): """ Basically a plugin provides a model which is changed by the UI (using the model() method) @@ -68,6 +66,7 @@ validate_changes = True def __init__(self, application): + super(NodePlugin, self).__init__() self.__changes = {} self.application = application @@ -182,15 +181,15 @@ Raises: An exception on a problem """ - LOGGER.debug("Triggering revalidation of model") + self.logger.debug("Triggering revalidation of model") is_valid = True try: model = model or self.model() self.on_change(model) except NotImplementedError: - LOGGER.debug("Plugin has no model") + self.logger.debug("Plugin has no model") except ovirt.node.exceptions.InvalidData: - LOGGER.warning("Plugins model does not pass sematic check: %s" % \ + self.logger.warning("Plugins model does not pass sematic check: %s" % \ model) is_valid = False finally: @@ -215,21 +214,21 @@ change is expected to be a dict. """ if type(change) is not dict: - LOGGER.warning("Change is not a dict: %s" % change) + self.logger.warning("Change is not a dict: %s" % change) - LOGGER.debug("Passing UI change to callback on_change: %s" % change) + self.logger.debug("Passing UI change to callback on_change: %s" % change) if self.validate_changes: self.validate(change) self.on_change(change) self.__changes.update(change) - LOGGER.debug("Sum of all UI changes up to now: %s" % self.__changes) + self.logger.debug("Sum of all UI changes up to now: %s" % self.__changes) return True def _on_ui_save(self): """Called when data should be saved Calls merge_changes, but only with values that really changed """ - LOGGER.debug("Request to apply model changes") + self.logger.debug("Request to apply model changes") effective_changes = self.pending_changes() or {} successfull_merge = self.on_merge(effective_changes) if successfull_merge: @@ -260,10 +259,10 @@ model = self.model() for key, value in self.__changes.items(): if key in model and value == model[key]: - LOGGER.debug(("Skipping pseudo-change of '%s', value " + \ + self.logger.debug(("Skipping pseudo-change of '%s', value " + \ "(%s) did not change") % (key, value)) else: effective_changes[key] = value else: - LOGGER.debug("No effective changes detected.") + self.logger.debug("No effective changes detected.") return effective_changes if len(effective_changes) > 0 else None diff --git a/scripts/tui/src/ovirt/node/plugins/setup/engine_page.py b/scripts/tui/src/ovirt/node/plugins/setup/engine_page.py index 8d97580..daa94a4 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/engine_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/engine_page.py @@ -21,14 +21,11 @@ """ Configure Engine """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui import ovirt.node.utils - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/example.py b/scripts/tui/src/ovirt/node/plugins/setup/example.py index d438d89..589b43c 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/example.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/example.py @@ -21,14 +21,10 @@ """ Example plugin with TUI """ -import logging - import ovirt.node.plugins import ovirt.node.ui import ovirt.node.exceptions import ovirt.node.valid - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): @@ -86,9 +82,9 @@ def on_change(self, changes): """Applies the changes to the plugins model, will do all required logic """ - LOGGER.debug("checking %s" % changes) + self.logger.debug("checking %s" % changes) if "foo.hostname" in changes: - LOGGER.debug("Found foo.hostname") + self.logger.debug("Found foo.hostname") if "/" in changes["foo.hostname"]: raise ovirt.node.exceptions.InvalidData("No slash allowed") @@ -101,20 +97,20 @@ if "dis" in changes["foo.hostname"]: self._widgets["foo.port"].enabled(False) - LOGGER.debug("change to dis") + self.logger.debug("change to dis") self._widgets["foo.section"].text(changes["foo.hostname"]) #raise ovirt.node.plugins.ContentRefreshRequest() else: self._widgets["foo.port"].enabled(True) if "foo.port" in changes: - LOGGER.debug("Found foo.port") + self.logger.debug("Found foo.port") if "/" in changes["foo.port"]: raise ovirt.node.exceptions.InvalidData("No slashes allowed") if "dialog.button" in changes: - LOGGER.debug("Request to close the dialog") + self.logger.debug("Request to close the dialog") self._widgets["dialog.dialog"].close() return True @@ -122,7 +118,7 @@ def on_merge(self, effective_changes): """Applies the changes to the plugins model, will do all required logic """ - LOGGER.debug("saving %s" % effective_changes) + self.logger.debug("saving %s" % effective_changes) # Look for conflicts etc self._model.update(effective_changes) @@ -131,7 +127,7 @@ return dialog def _create_dialog(self, txt): - LOGGER.debug("Building dialog") + self.logger.debug("Building dialog") widgets = [ ("dialog.text", ovirt.node.ui.Label(txt)), ("dialog.button", ovirt.node.ui.Button("Close")) diff --git a/scripts/tui/src/ovirt/node/plugins/setup/features.py b/scripts/tui/src/ovirt/node/plugins/setup/features.py index 2a17965..4e8720b 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/features.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/features.py @@ -21,13 +21,10 @@ """ A plugin illustrating the features of the TUI """ -import logging import ovirt.node.plugins import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) features = """ - Resize the terminal window and watch diff --git a/scripts/tui/src/ovirt/node/plugins/setup/kdump_page.py b/scripts/tui/src/ovirt/node/plugins/setup/kdump_page.py index 5c06104..8d7d03e 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/kdump_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/kdump_page.py @@ -21,13 +21,10 @@ """ Configure KDump """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): @@ -89,7 +86,7 @@ def on_change(self, changes): """Applies the changes to the plugins model, will do all required logic """ - LOGGER.debug("New (valid) address: %s" % changes) + self.logger.debug("New (valid) address: %s" % changes) if "kdump.type" in changes: net_types = ["kdump.ssh_location", "kdump.nfs_location"] @@ -109,6 +106,6 @@ """ if effective_changes: - LOGGER.debug("Generating conf according to model and changes") + self.logger.debug("Generating conf according to model and changes") else: - LOGGER.debug("Generating no new conf as there are no changes") + self.logger.debug("Generating no new conf as there are no changes") diff --git a/scripts/tui/src/ovirt/node/plugins/setup/keyboard_page.py b/scripts/tui/src/ovirt/node/plugins/setup/keyboard_page.py index d914b65..8927c12 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/keyboard_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/keyboard_page.py @@ -21,12 +21,9 @@ """ Configure Keyboard Layout """ -import logging import ovirt.node.plugins import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/logging_page.py b/scripts/tui/src/ovirt/node/plugins/setup/logging_page.py index 2f56ff4..4a2f86e 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/logging_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/logging_page.py @@ -21,14 +21,10 @@ """ Configure Logging """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) - class Plugin(ovirt.node.plugins.NodePlugin): _model = None diff --git a/scripts/tui/src/ovirt/node/plugins/setup/monitoring_page.py b/scripts/tui/src/ovirt/node/plugins/setup/monitoring_page.py index 2a1ff8e..9945be6 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/monitoring_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/monitoring_page.py @@ -21,13 +21,10 @@ """ Configure Monitoring """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/network_page.py b/scripts/tui/src/ovirt/node/plugins/setup/network_page.py index 23048c8..0ef7954 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/network_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/network_page.py @@ -21,15 +21,12 @@ """ Network plugin """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui import ovirt.node.utils.network import ovirt.node.config.network - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): @@ -129,7 +126,7 @@ def _build_nic_details_dialog(self): # Populate model with nic specific informations iface = self._model["nics"] - LOGGER.debug("Getting informations for NIC details page") + self.logger.debug("Getting informations for NIC details page") live = ovirt.node.utils.network.node_nics()[iface] self._model.update({ @@ -209,15 +206,15 @@ changes = self.pending_changes(False) effective_model = dict(self._model) effective_model.update(effective_changes) - LOGGER.info("effm %s" % effective_model) - LOGGER.info("effc %s" % effective_changes) - LOGGER.info("allc %s" % changes) + self.logger.info("effm %s" % effective_model) + self.logger.info("effc %s" % effective_changes) + self.logger.info("allc %s" % changes) if "dns[0]" in effective_changes or \ "dns[1]" in effective_changes: new_servers = [v for k, v in effective_model \ if k.startswith("dns[")] - LOGGER.info("Setting new nameservers: %s" % new_servers) + self.logger.info("Setting new nameservers: %s" % new_servers) model = ovirt.node.config.defaults.Nameservers() model.configure(new_servers) @@ -225,11 +222,11 @@ "ntp[1]" in effective_changes: new_servers = [v for k, v in effective_model \ if k.startswith("ntp[")] - LOGGER.info("Setting new timeservers: %s" % new_servers) + self.logger.info("Setting new timeservers: %s" % new_servers) model = ovirt.node.config.defaults.Timeservers() model.configure(new_servers) if "nics" in changes: iface = changes["nics"] - LOGGER.debug("Opening NIC Details dialog for '%s'" % iface) + self.logger.debug("Opening NIC Details dialog for '%s'" % iface) return self._build_nic_details_dialog() \ No newline at end of file diff --git a/scripts/tui/src/ovirt/node/plugins/setup/ping.py b/scripts/tui/src/ovirt/node/plugins/setup/ping.py index 3d01cf6..aaa4717 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/ping.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/ping.py @@ -21,14 +21,11 @@ """ A ping tool page """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui import ovirt.node.utils.process - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): @@ -89,7 +86,7 @@ def on_change(self, changes): """Applies the changes to the plugins model, will do all required logic """ - LOGGER.debug("New (valid) address: %s" % changes) + self.logger.debug("New (valid) address: %s" % changes) if "ping.address" in changes: self._model.update(changes) if "ping.count" in changes: @@ -107,7 +104,7 @@ if "ping.address" in self._model: addr = self._model["ping.address"] count = self._model["ping.count"] - LOGGER.debug("Pinging %s" % addr) + self.logger.debug("Pinging %s" % addr) cmd = "ping" if ovirt.node.valid.IPv6Address().validate(addr): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/remote_storage_page.py b/scripts/tui/src/ovirt/node/plugins/setup/remote_storage_page.py index 80c3d2d..77fc64c 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/remote_storage_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/remote_storage_page.py @@ -21,12 +21,9 @@ """ Configure Remote Storage """ -import logging import ovirt.node.plugins import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/security_page.py b/scripts/tui/src/ovirt/node/plugins/setup/security_page.py index d1aef46..5d099f0 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/security_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/security_page.py @@ -21,13 +21,10 @@ """ Configure Security """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/snmp_page.py b/scripts/tui/src/ovirt/node/plugins/setup/snmp_page.py index a0ce026..1851aeb 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/snmp_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/snmp_page.py @@ -21,13 +21,10 @@ """ Configure SNMP """ -import logging import ovirt.node.plugins import ovirt.node.valid import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/status_page.py b/scripts/tui/src/ovirt/node/plugins/setup/status_page.py index e3dd12e..667f3b8 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/status_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/status_page.py @@ -21,7 +21,6 @@ """ Status plugin """ -import logging import textwrap import ovirt.node.plugins @@ -29,8 +28,6 @@ import ovirt.node.utils as utils import ovirt.node.utils.virt as virt import ovirt.node.utils.security - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): @@ -122,20 +119,20 @@ def on_merge(self, changes): # Handle button presses if "action.lock" in changes: - LOGGER.info("Locking screen") + self.logger.info("Locking screen") elif "action.logoff" in changes: - LOGGER.info("Logging off") + self.logger.info("Logging off") self.application.quit() elif "action.restart" in changes: - LOGGER.info("Restarting") + self.logger.info("Restarting") elif "action.poweroff" in changes: - LOGGER.info("Shutting down") + self.logger.info("Shutting down") elif "action.hostkey" in changes: - LOGGER.info("Showing hostkey") + self.logger.info("Showing hostkey") return self._build_hostkey_dialog() elif "_save" in changes: diff --git a/scripts/tui/src/ovirt/node/plugins/setup/support_page.py b/scripts/tui/src/ovirt/node/plugins/setup/support_page.py index 04eb095..1974cb0 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/support_page.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/support_page.py @@ -21,13 +21,9 @@ """ A plugin for a support page """ -import logging import ovirt.node.plugins import ovirt.node.ui - - -LOGGER = logging.getLogger(__name__) class Plugin(ovirt.node.plugins.NodePlugin): diff --git a/scripts/tui/src/ovirt/node/plugins/setup/usage.py b/scripts/tui/src/ovirt/node/plugins/setup/usage.py index b2513e6..2bd8a4b 100644 --- a/scripts/tui/src/ovirt/node/plugins/setup/usage.py +++ b/scripts/tui/src/ovirt/node/plugins/setup/usage.py @@ -21,13 +21,10 @@ """ A plugin illustrating how to use the TUI """ -import logging import ovirt.node.plugins import ovirt.node.ui - -LOGGER = logging.getLogger(__name__) usage = """Plugins need to be derived from a provided class and need to \ implement a couple of methods. diff --git a/scripts/tui/src/ovirt/node/ui/__init__.py b/scripts/tui/src/ovirt/node/ui/__init__.py index 8eeed93..4aefe8f 100644 --- a/scripts/tui/src/ovirt/node/ui/__init__.py +++ b/scripts/tui/src/ovirt/node/ui/__init__.py @@ -21,18 +21,12 @@ """ This contains abstract UI Elements """ -import logging -LOGGER = logging.getLogger(__name__) - - -def deprecated(func): - LOGGER.warning("Deprecated %s" % func) - return lambda *args, **kwargs: func(*args, **kwargs) +from ovirt.node import base # http://stackoverflow.com/questions/739654/understanding-python-decorators -class Element(object): +class Element(base.Base): """An abstract UI Element. This basically provides signals to communicate between real UI widget and the plugins @@ -43,7 +37,8 @@ """Registers all widget signals. All signals must be given in self.signals """ - LOGGER.debug("Initializing new %s" % self) + super(Element, self).__init__() + self.logger.debug("Initializing new %s" % self) @staticmethod def signal_change(func): @@ -66,7 +61,7 @@ self._signal_cbs = {} if name not in self._signal_cbs: self._signal_cbs[name] = [] - LOGGER.debug("Registered new signal '%s' for '%s'" % (name, self)) + self.logger.debug("Registered new signal '%s' for '%s'" % (name, self)) def connect_signal(self, name, cb): """Connect an callback to a signal @@ -82,9 +77,9 @@ """ if self._signal_cbs is None or name not in self._signal_cbs: return False - LOGGER.debug("Emitting '%s'" % name) + self.logger.debug("Emitting '%s'" % name) for cb in self._signal_cbs[name]: - LOGGER.debug("... %s" % cb) + self.logger.debug("... %s" % cb) cb(self, userdata) def set_text(self, value): @@ -98,9 +93,9 @@ """ def __init__(self, name, is_enabled): + super(InputElement, self).__init__() self.name = name self.enabled(is_enabled) - super(InputElement, self).__init__() @Element.signal_change def enabled(self, is_enabled=None): @@ -124,8 +119,8 @@ children = [] def __init__(self, children): - self.children = children super(ContainerElement, self).__init__() + self.children = children def children(self, v=None): if v: @@ -144,9 +139,9 @@ """ def __init__(self, title, children): + super(Dialog, self).__init__(children) self.title = title self.close(False) - super(Dialog, self).__init__(children) @Element.signal_change def close(self, v=True): @@ -164,8 +159,8 @@ """ def __init__(self, text): - self.text(text) super(Label, self).__init__() + self.text(text) @Element.signal_change def text(self, text=None): @@ -187,9 +182,8 @@ """ def __init__(self, keyword, text=""): - super(Label, self).__init__() + super(KeywordLabel, self).__init__(text) self.keyword = keyword - self.text(text) class Entry(InputElement): @@ -198,9 +192,9 @@ """ def __init__(self, label, enabled=True, align_vertical=False): + super(Entry, self).__init__(label, enabled) self.label = label self.align_vertical = align_vertical - super(Entry, self).__init__(label, enabled) class PasswordEntry(Entry): @@ -229,6 +223,7 @@ class Divider(Element): def __init__(self, char=u" "): + super(Divider, self).__init__() self.char = char @@ -240,10 +235,10 @@ options: """ def __init__(self, label, options): + super(Options, self).__init__() self.label = label self.options = options self.option(options[0]) - super(Options, self).__init__() @Element.signal_change def option(self, option=None): @@ -263,6 +258,7 @@ state: The initial change """ def __init__(self, label, state=False): + super(Checkbox, self).__init__() self.label = label self.state(state) @@ -281,9 +277,9 @@ done: The maximum value """ def __init__(self, current=0, done=100): + super(ProgressBar, self).__init__() self.current(current) self.done = done - super(ProgressBar, self).__init__() @Element.signal_change def current(self, current=None): @@ -310,11 +306,11 @@ """ def __init__(self, label, header, items, height=5, enabled=True): + super(Table, self).__init__(label, enabled) self.label = label self.header = header self.items = items self.height = height - super(Table, self).__init__(label, enabled) @Element.signal_change def select(self, selected=None): @@ -328,7 +324,8 @@ """ def __init__(self, app): - LOGGER.info("Creating UI for application '%s'" % app) + super(Window, self).__init__() + self.logger.info("Creating UI for application '%s'" % app) self.app = app self._plugins = {} @@ -346,8 +343,8 @@ """ if type(hotkey) is str: hotkey = [hotkey] - LOGGER.debug("Registering hotkey '%s': %s" % (hotkey, cb)) + self.logger.debug("Registering hotkey '%s': %s" % (hotkey, cb)) self._hotkeys[str(hotkey)] = cb def run(self): - raise NotImplementedError + raise NotImplementedError \ No newline at end of file diff --git a/scripts/tui/src/ovirt/node/ui/tui.py b/scripts/tui/src/ovirt/node/ui/tui.py index f763b68..043233b 100644 --- a/scripts/tui/src/ovirt/node/ui/tui.py +++ b/scripts/tui/src/ovirt/node/ui/tui.py @@ -90,9 +90,8 @@ ] def __init__(self, app): - LOGGER.info("Creating urwid tui for '%s'" % app) - self.app = app super(UrwidTUI, self).__init__(app) + self.logger.info("Creating urwid tui for '%s'" % app) def __build_menu(self): self.__menu = ovirt.node.ui.widgets.PluginMenu(self._plugins) diff --git a/scripts/tui/src/ovirt/node/utils/__init__.py b/scripts/tui/src/ovirt/node/utils/__init__.py index 1ddcd7e..aa556cf 100644 --- a/scripts/tui/src/ovirt/node/utils/__init__.py +++ b/scripts/tui/src/ovirt/node/utils/__init__.py @@ -26,17 +26,17 @@ And use the model.py module for oVirt Node's defaults file. """ -import logging import hashlib import augeas as _augeas -LOGGER = logging.getLogger(__name__) +from ovirt.node import base -class AugeasWrapper(object): +class AugeasWrapper(base.Base): _aug = _augeas.Augeas() def __init__(self): + super(AugeasWrapper, self).__init__() # self._aug = _augeas.Augeas() # Is broken self._aug.set("/augeas/save/copy_if_rename_fails", "") diff --git a/scripts/tui/src/ovirt/node/utils/security.py b/scripts/tui/src/ovirt/node/utils/security.py index 6cd0c45..a368b16 100644 --- a/scripts/tui/src/ovirt/node/utils/security.py +++ b/scripts/tui/src/ovirt/node/utils/security.py @@ -23,11 +23,8 @@ """ import os.path -import logging -import ovirt.node.utils.process as process - -LOGGER = logging.getLogger(__name__) +from . import process def get_ssh_hostkey(variant="rsa"): @@ -35,7 +32,6 @@ if not os.path.exists(fn_hostkey): raise Exception("SSH hostkey does not yet exist.") - hostkey = None with open(fn_hostkey) as hkf: hostkey = hkf.read() diff --git a/scripts/tui/src/ovirt/node/utils/virt.py b/scripts/tui/src/ovirt/node/utils/virt.py index e99a527..81915ed 100644 --- a/scripts/tui/src/ovirt/node/utils/virt.py +++ b/scripts/tui/src/ovirt/node/utils/virt.py @@ -23,10 +23,9 @@ """ import os.path -import logging import libvirt -LOGGER = logging.getLogger(__name__) +from ovirt.node import base def virtualization_hardware_is_available(): @@ -81,8 +80,9 @@ return "No virtualization hardware was detected on this system" -class LibvirtConnection(object): +class LibvirtConnection(base.Base): def __init__(self, readonly=True): + super(LibvirtConnection, self).__init__() if readonly: self.con = libvirt.openReadOnly(None) else: diff --git a/scripts/tui/src/ovirt/node/valid.py b/scripts/tui/src/ovirt/node/valid.py index 2706cce..5c21dd0 100644 --- a/scripts/tui/src/ovirt/node/valid.py +++ b/scripts/tui/src/ovirt/node/valid.py @@ -22,18 +22,13 @@ A module with several validators for common user inputs. """ import re -import logging import socket -import ovirt.node.plugins -import ovirt.node.exceptions +from . import base +from . import exceptions -logging.basicConfig(level=logging.DEBUG) -LOGGER = logging.getLogger(__name__) - - -class Validator(object): +class Validator(base.Base): """This class is used to validate user inputs Basically an exception is raised if an invalid value was given. The value is validated using the self.validate(value) method raises an exception. @@ -67,7 +62,7 @@ def raise_exception(self): msg = self.__exception_msg.format(description=self.description) - raise ovirt.node.exceptions.InvalidData(msg) + raise exceptions.InvalidData(msg) def __or__(self, other): """This allows to combin validators using | -- To view, visit http://gerrit.ovirt.org/9931 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I7f74603137881e8f663517df7cae3aa4d05f716c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node Gerrit-Branch: master Gerrit-Owner: Fabian Deutsch <[email protected]> _______________________________________________ node-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/node-patches
