Douglas Schilling Landgraf has uploaded a new change for review. Change subject: autoinstall: Drop reading /var/log/message ......................................................................
autoinstall: Drop reading /var/log/message This patch replaces the schema of reading kargs params from /var/log/messages in favor of use /etc/default/ovirt. All karg parms used are stored in /etc/default/ovirt with the prefix OVIRT_. Change-Id: Icc4e25584947b16916169a51bc2ca83d05ba7562 Signed-off-by: Douglas Schilling Landgraf <dougsl...@redhat.com> --- M autoinstall/ovirt-node-plugin-vdsm-autoreg M src/config.py.in 2 files changed, 52 insertions(+), 81 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-node-plugin-vdsm refs/changes/34/42434/1 diff --git a/autoinstall/ovirt-node-plugin-vdsm-autoreg b/autoinstall/ovirt-node-plugin-vdsm-autoreg old mode 100644 new mode 100755 index a012fac..5abb903 --- a/autoinstall/ovirt-node-plugin-vdsm-autoreg +++ b/autoinstall/ovirt-node-plugin-vdsm-autoreg @@ -22,12 +22,12 @@ import ovirtnode.ovirtfunctions as _functions -from ovirt.node import log, utils +from ovirt.node import utils from ovirt.node.config.defaults import SSH -from ovirt.node.setup.vdsm import engine_page -from ovirt.node.utils import system +from ovirt.node.setup.vdsm import engine_page, config from systemd import journal + class AutoRegister(object): @@ -38,7 +38,6 @@ # doesn't check CA cert self.vdsm_tool_cmd = "vdsm-tool register --check-fqdn False " - self.kargs = None self.mserver = None self.mserver_port = None @@ -54,69 +53,47 @@ ) return log - def _is_karg_set(self, key, debug=True): - """ - Check if the key was used as kernel argument - - Arguments: - key -- The key to look for - debug -- Debugging prints - - Returns: the key or False - """ - if key in self.kargs and len(self.kargs[key]) > 0: - if debug: - self.logger.info("autoinstall: kernel argument " - "[%s] is set [%s]" % (key, self.kargs[key])) - return self.kargs[key] - - return False - def is_node_registered(self): """ - Validate OVIRT_NODE_AUTO_REGISTER in /etc/default/ovirt + Validate OVIRT_NODE_REGISTER in /etc/default/ovirt if already set, no need to execute auto-register Return True or False """ - self.logger.info("== autoinstall: validating /etc/default/ovirt") + self.logger.info("== autoinstall: validating {f}".format( + f=config.DEFAULT_OVIRT_FILE) + ) - with open('/etc/default/ovirt', 'r') as f: - for line in f: - if "OVIRT_NODE_AUTO_REGISTER=True" in line: - return True + if utils.AugeasWrapper().match( + '/files/etc/default/ovirt/OVIRT_NODE_REGISTER' + ): + return True return False - def get_kargs(self): + def get_key(self, key): """ - Find in the boot kernel arguments from /var/log/messages, - the autoinstall keys that start with "management_" - - Return a dict with the keys + Check if key is available in /etc/default/ovirt """ - self.logger.info("== autoinstall: validating kernel arguments ==") - key_word_karg = "Command line" - with open('/var/log/messages', 'r') as f: - for line in f: - if key_word_karg in line and "management_server" in line: - self.kargs = system.kernel_cmdline_arguments( - line.split(key_word_karg)[1] - ) - self.logger.info("autoinstall kargs: {k}".format( - k=self.kargs) - ) - break + node_entry = "/files{p}/{k}".format(p=config.DEFAULT_OVIRT_FILE, + k=key) - return self.kargs + aug = utils.AugeasWrapper() + # Autoinstall can save "" or "None" and even None type, check all + if aug.get(node_entry) and \ + aug.get(node_entry) != "\"None\"" and \ + aug.get(node_entry) is not None: + return aug.get(node_entry) + + return False def get_management_server(self): """ - If management_server exist in the kernel argument + If OVIRT_MANAGEMENT_SERVER exists in /etc/default/ovirt add it to the auto-register script call """ - if self._is_karg_set("management_server"): - self.mserver = self.kargs["management_server"] + self.mserver = self.get_key("OVIRT_MANAGEMENT_SERVER") + if self.mserver: self.vdsm_tool_cmd += "--engine-fqdn {s} ".format( s=self.mserver) else: @@ -124,48 +101,40 @@ def get_management_server_port(self): """ - If management_server_port exist in the kernel argument + If OVIRT_MANAGEMENT_SERVER_PORT exists in /etc/default/ovirt add it to the auto-register script call """ - if self._is_karg_set("management_server_port"): - if not self._is_karg_set("management_server", debug=False): + self.mserver_port = self.get_key("OVIRT_MANAGEMENT_PORT") + + if self.mserver_port: + if not self.get_key("OVIRT_MANAGEMENT_SERVER"): raise RuntimeError("management_server_port requires" " to set management_server key too!") else: - self.mserver_port = self.kargs["management_server_port"] self.vdsm_tool_cmd += "--engine-https-port {p} ".format( p=self.mserver_port) def get_management_server_fingerprint(self): """ - If management_server_fingerprint exist in the kernel argument + If OVIRT_MANAGEMENT_SERVER_FINGERPRINT exists in /etc/default/ovirt add it to the auto-register script call """ - if self._is_karg_set("management_server_fingerprint"): - if not self._is_karg_set("management_server", debug=False): + fprint = self.get_key("OVIRT_MANAGEMENT_SERVER_FINGERPRINT") + + if fprint: + if not self.get_key("OVIRT_MANAGEMENT_SERVER"): raise RuntimeError("management_server_fingerprint requires" " to set management_server key too!") + else: - self.vdsm_tool_cmd += "--fingerprint {f}".format( - f=self.kargs["management_server_fingerprint"] - ) + self.vdsm_tool_cmd += "--fingerprint {f}".format(f=fprint) def write_changes(self): """ - Write OVIRT_MANAGEMENT and OVIRT_MANAGEMENT_PORT + Write OVIRT_NODE_REGISTER """ - # Updating OVIRT_MANAGEMENT_SERVER in /etc/default/ovirt - - if self.mserver_port is not None: - engine_page.VDSM().update(server=self.mserver, - port=self.mserver_port, - cert_path="/etc/pki/ovirt-engine/ca.pem") - else: - engine_page.VDSM().update(server=self.mserver, - cert_path="/etc/pki/ovirt-engine/ca.pem") - - with open('/etc/default/ovirt', 'a') as f: - f.write("OVIRT_NODE_AUTO_REGISTER=True") + with open(config.DEFAULT_OVIRT_FILE, 'a') as f: + f.write("OVIRT_NODE_REGISTER=True") def pass_sysadm(self): """ @@ -175,18 +144,16 @@ Note: To generate password to use with rhevm_admin_password and engine_admin_password you must execute: openssl passwd -1 """ - admin_pwd = None - if self._is_karg_set("rhevm_admin_password"): - admin_pwd = "rhevm_admin_password" + admin_pwd = self.get_key("OVIRT_RHEVM_ADMIN_PASSWORD") - if self._is_karg_set("engine_admin_password"): - admin_pwd = "engine_admin_password" + if not admin_pwd: + admin_pwd = self.get_key("OVIRT_ENGINE_ADMIN_PASSWORD") if admin_pwd: _functions.unmount_config("/etc/shadow") _functions.unmount_config("/etc/passwd") engine_page.execute_cmd("/usr/sbin/usermod -p %s root" % - self.kargs[admin_pwd]) + admin_pwd) engine_page.execute_cmd("chage -E -1 root") utils.fs.Config().persist("/etc/shadow") @@ -213,9 +180,12 @@ reg.logger.info("=======================================") if not reg.is_node_registered(): - reg.logger.info("OVIRT_NODE_AUTO_REGISTER is NOT set, " + reg.logger.info("OVIRT_NODE_REGISTER is NOT set, " "starting auto-register..") - if reg.get_kargs() is None: + + if not utils.AugeasWrapper().match( + '/files/etc/default/ovirt/OVIRT_MANAGEMENT_SERVER' + ): reg.logger.info( "autoinstall: Not found management_server, " "management_server_port or " @@ -225,7 +195,7 @@ return 0 else: reg.logger.info( - "No need to auto-register, OVIRT_NODE_AUTO_REGISTER is set!" + "No need to auto-register, OVIRT_NODE_REGISTER is set!" ) return 0 diff --git a/src/config.py.in b/src/config.py.in index eb7d5a5..947ec77 100644 --- a/src/config.py.in +++ b/src/config.py.in @@ -20,3 +20,4 @@ PACKAGE_VERSION = '@PACKAGE_VERSION@' engine_name = '@ENGINENAME@' ENGINE_PORT = '443' +DEFAULT_OVIRT_FILE = '/etc/default/ovirt' -- To view, visit https://gerrit.ovirt.org/42434 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icc4e25584947b16916169a51bc2ca83d05ba7562 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-node-plugin-vdsm Gerrit-Branch: master Gerrit-Owner: Douglas Schilling Landgraf <dougsl...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches