def commit(self): from ovirtnode.ovirtfunctions import remove_config remove_config("/etc/kdump.conf") utils.process.call("service kdump stop") open('/etc/kdump.conf', 'w').close() self.backups.remove()
def disable_snmpd(): from ovirtnode.ovirtfunctions import remove_config process.check_call("service snmpd stop") # copy to /tmp for enable/disable toggles w/o reboot process.check_call("cp /etc/snmp/snmpd.conf /tmp") process.check_call("sed -c -ie '/^createUser root/d' %s" % snmp_conf) remove_config(snmp_conf)
def commit(self): from ovirtnode.ovirtfunctions import remove_config remove_config("/etc/kdump.conf") utils.process.call("service kdump stop") open('/etc/kdump.conf', 'w').close() self.backups.remove()
def disable_snmpd(): from ovirtnode.ovirtfunctions import remove_config system.service("snmpd", "stop") # copy to /tmp for enable/disable toggles w/o reboot process.check_call("cp /etc/snmp/snmpd.conf /tmp") process.check_call("sed -c -ie '/^createUser root/d' %s" % snmp_conf) remove_config(snmp_conf)
def commit(self): from ovirtnode.ovirtfunctions import remove_config remove_config("/etc/kdump.conf") system.service("kdump", "stop") fs.File('/etc/kdump.conf').touch() self.backups.remove()
def disable_snmpd(): from ovirtnode.ovirtfunctions import remove_config system.service("snmpd", "stop") # copy to /tmp for enable/disable toggles w/o reboot process.check_call(["cp", "/etc/snmp/snmpd.conf", "/tmp"]) process.check_call("sed -c -ie '/^createUser root/d' %s" % snmp_conf, shell=True) remove_config(snmp_conf)
def convert_to_biosdevname(): if not "BIOSDEVNAMES_CONVERSION" in OVIRT_VARS: # check for appropriate bios version cmd = "dmidecode|grep SMBIOS|awk {'print $2'}" proc = _functions.passthrough(cmd, log_func=logger.debug) ver = proc.stdout.split()[0] if not float(ver) >= 2.6: logger.debug("Skipping biosdevname conversion, SMBIOS too old") _functions.augtool( "set", "/files/etc/default/ovirt/BIOSDEVNAMES_CONVERSION", "y") return nics = {} cmd = "biosdevname -d" biosdevname, err = subprocess.Popen( cmd, shell=True, stdout=subprocess.PIPE).communicate() biosdevname_output = biosdevname.splitlines() for line in biosdevname_output: if line is not None: if "BIOS device:" in line: nic = line.split()[2] if "Permanent" in line: mac = line.split()[2] nics[mac.upper()] = nic logger.debug(nics) scripts_path = "/etc/sysconfig/network-scripts" logger.debug(glob(scripts_path + "/ifcfg-*")) for file in glob(scripts_path + "/ifcfg-*"): logger.debug("Processing %s" % file) # get mac for matching existing_mac = _functions.augtool_get("/files/" + file + "/HWADDR") # check dictionary for mac if not existing_mac is None and existing_mac.upper() in nics: old_nic_script = os.path.basename(file) new_nic_name = nics[existing_mac.upper()] logger.debug("Found %s in %s" % (existing_mac, file)) # change device name within script file logger.debug("Setting to new device name: %s" % new_nic_name) _functions.augtool("set", \ "/files" + file + "/DEVICE", new_nic_name) new_nic_file = "%s/ifcfg-%s" % (scripts_path, new_nic_name) cmd = "cp %s %s" % (file, new_nic_file) _functions.remove_config(file) if _functions.system(cmd): logging.debug("Conversion on %s to %s succeed" % (file, new_nic_file)) _functions.ovirt_store_config(new_nic_file) else: return False _functions.system("service network restart") _functions.augtool("set", \ "/files/etc/default/ovirt/BIOSDEVNAMES_CONVERSION", "y") _functions.ovirt_store_config("/etc/default/ovirt") return True
def convert_to_biosdevname(): if not "BIOSDEVNAMES_CONVERSION" in OVIRT_VARS: # check for appropriate bios version cmd="dmidecode|grep SMBIOS|awk {'print $2'}" proc = _functions.passthrough(cmd, log_func=logger.debug) ver = proc.stdout.split()[0] if not float(ver) >= 2.6: logger.debug("Skipping biosdevname conversion, SMBIOS too old") _functions.augtool("set", "/files/etc/default/ovirt/BIOSDEVNAMES_CONVERSION", "y") return nics = {} cmd = "biosdevname -d" biosdevname, err = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).communicate() biosdevname_output = biosdevname.splitlines() for line in biosdevname_output: if line is not None: if "BIOS device:" in line: nic = line.split()[2] if "Permanent" in line: mac = line.split()[2] nics[mac.upper()] = nic logger.debug(nics) scripts_path = "/etc/sysconfig/network-scripts" logger.debug(glob(scripts_path + "/ifcfg-*")) for file in glob(scripts_path + "/ifcfg-*"): logger.debug("Processing %s" % file) # get mac for matching existing_mac = _functions.augtool_get("/files/" + file + "/HWADDR") # check dictionary for mac if not existing_mac is None and existing_mac.upper() in nics: old_nic_script = os.path.basename(file) new_nic_name = nics[existing_mac.upper()] logger.debug("Found %s in %s" % (existing_mac, file)) # change device name within script file logger.debug("Setting to new device name: %s" % new_nic_name) _functions.augtool("set", \ "/files" + file + "/DEVICE", new_nic_name) new_nic_file = "%s/ifcfg-%s" % (scripts_path, new_nic_name) cmd = "cp %s %s" % (file, new_nic_file) _functions.remove_config(file) if _functions.system(cmd): logging.debug("Conversion on %s to %s succeed" % (file, new_nic_file)) _functions.ovirt_store_config(new_nic_file) else: return False _functions.system("service network restart") _functions.augtool("set", \ "/files/etc/default/ovirt/BIOSDEVNAMES_CONVERSION", "y") _functions.ovirt_store_config("/etc/default/ovirt") return True
def unpersist(self, filename): """Remove the persistent version of a file and remove the bind mount """ if filename and self.is_enabled(): from ovirtnode import ovirtfunctions return ovirtfunctions.remove_config(filename)
def unpersist(self, filename): """Remove the persistent version of a file and remove the bind mount """ if filename and self.is_enabled(): from ovirtnode import ovirtfunctions return ovirtfunctions.remove_config(filename)
def disable_snmpd(): _functions.system("service snmpd stop") # copy to /tmp for enable/disable toggles w/o reboot _functions.system("cp /etc/snmp/snmpd.conf /tmp") _functions.system("sed -c -ie '/^createUser root/d' %s" % snmp_conf) _functions.remove_config(snmp_conf)
def disable_snmpd(): _functions.system("service snmpd stop") # copy to /tmp for enable/disable toggles w/o reboot _functions.system("cp /etc/snmp/snmpd.conf /tmp") _functions.system("sed -c -ie '/^createUser root/d' %s" % snmp_conf) _functions.remove_config(snmp_conf)
def commit(self): cfg = RHN().retrieve() self.logger.debug(cfg) rhntype = cfg["rhntype"] serverurl = cfg["url"] cacert = cfg["ca_cert"] activationkey = cfg["activationkey"] username = cfg["username"] profilename = cfg["profile"] proxy = cfg["proxy"] proxyuser = cfg["proxyuser"] # novirtinfo: rhn-virtualization daemon refreshes virtinfo extra_args = ['--novirtinfo', '--norhnsd', '--nopackages', '--force'] args = ['/usr/sbin/rhnreg_ks'] if rhntype == "rhn": sys.path.append("/usr/share/rhn/up2date_client") import rhnreg rhnreg.cfg.set("serverURL", RHN_XMLRPC_ADDR) rhnreg.cfg.set("sslCACert", RHN_SSL_CERT) rhnreg.cfg.save() self.logger.info("ran update") if serverurl: cacert = cacert if cacert is not None else serverurl + \ "/pub/RHN-ORG-TRUSTED-SSL-CERT" if not serverurl.endswith("/XMLRPC"): serverurl = serverurl + "/XMLRPC" args.append('--serverUrl') args.append(serverurl) location = "/etc/sysconfig/rhn/%s" % \ os.path.basename(cacert) if cacert: if not os.path.exists(cacert): self.logger.info("Downloading CA cert.....") self.logger.debug("From: %s To: %s" % (cacert, location)) RHN().retrieveCert(cacert, location) if os.path.isfile(location): if os.stat(location).st_size > 0: args.append('--sslCACert') args.append(location) ovirt_store_config(location) else: raise RuntimeError("Error Downloading \ CA cert!") if activationkey: args.append('--activationkey') args.append(activationkey) elif username: args.append('--username') args.append(username) if password: args.append('--password') args.append(password) else: # skip RHN registration when neither activationkey # nor username/password is supplied self.logger.debug("No activationkey or " "username+password given") return if profilename: args.append('--profilename') args.append(profilename) if proxy: args.append('--proxy') args.append(proxy) if proxyuser: args.append('--proxyUser') args.append(proxyuser) if proxypass: args.append('--proxyPassword') args.append(proxypass) args.extend(extra_args) self.logger.info("Registering to RHN account.....") remove_config("/etc/sysconfig/rhn/systemid") remove_config("/etc/sysconfig/rhn/up2date") logged_args = list(args) remove_values_from_args = ["--password", "--proxyPassword"] for idx, arg in enumerate(logged_args): if arg in remove_values_from_args: logged_args[idx+1] = "XXXXXXX" logged_args = str(logged_args) self.logger.debug(logged_args) try: subprocess.check_call(args) ovirt_store_config("/etc/sysconfig/rhn/up2date") ovirt_store_config("/etc/sysconfig/rhn/systemid") self.logger.info("System %s sucessfully registered to %s" % (profilename, serverurl)) # sync profile if reregistering, fixes problem with # virt guests not showing sys.path.append("/usr/share/rhn") from virtualization import support support.refresh(True) except: self.logger.exception("Failed to call: %s" % logged_args) raise RuntimeError("Error registering to RHN account")
def commit(self): cfg = RHN().retrieve() self.logger.debug(cfg) # rhntype = cfg["rhntype"] org = cfg["org"] serverurl = cfg["url"] cacert = cfg["ca_cert"] activationkey = cfg["activationkey"] username = cfg["username"] profilename = cfg["profile"] proxy = cfg["proxy"] proxyuser = cfg["proxyuser"] if os.path.exists("/etc/sysconfig/rhn/systemid"): remove_config("/etc/sysconfig/rhn/systemid") extra_args = ['--force'] if not activationkey: extra_args.append("--autosubscribe") sm = ['/usr/sbin/subscription-manager'] args = list(sm) args.append('register') if activationkey and org: args.append('--activationkey') args.append(activationkey) args.append('--org') args.append(org) elif username: args.append('--username') args.append(username) if password: args.append('--password') args.append(password) else: # skip RHN registration when neither activationkey # nor username/password is supplied # return success for AUTO w/o rhn_* parameters return if serverurl: (host, port) = parse_host_port(serverurl) parsed_url = urlparse(serverurl) prefix = parsed_url.path if port == 0: port = "443" else: port = str(port) else: prefix = "/subscription" host = "subscription.rhn.redhat.com" port = "443" location = "/etc/rhsm/ca/candlepin-local.pem" if cacert: if not os.path.exists(cacert): self.logger.info("Downloading CA cert.....") RHN().retrieveCert(cacert, location) if os.path.isfile(location): if os.stat(location).st_size > 0: ovirt_store_config(location) else: raise RuntimeError("Error Downloading CA cert!") smconf = list(sm) smconf.append('config') smconf.append('--server.hostname') smconf.append(host) smconf.append('--server.port') smconf.append(port) smconf.append('--server.prefix') smconf.append(prefix) if cacert: smconf.append('--rhsm.repo_ca_cert') smconf.append('/etc/rhsm/ca/candlepin-local.pem') try: subprocess.check_call(smconf) ovirt_store_config("/etc/rhsm/rhsm.conf") except: raise RuntimeError("Error updating subscription manager \ configuration") if profilename: args.append('--name') args.append(profilename) if proxy: try: (host, port) = proxy.split(":") process.check_call(["subscription-manager", "config", "--server.proxy_hostname", host]) process.check_call(["subscription-manager", "config", "--server.proxy_port", port]) if proxyuser: args.append('--proxyuser') args.append(proxyuser) cmd = ["subscription-manager", "config", "--server.proxy_user", proxyuser] process.check_call(cmd) if proxypass: args.append('--proxypassword') args.append(proxypass) cmd = ["subscription-manager", "config", "--server.proxy_password", proxypass] logged_args = list(cmd) remove_values_from_args = [ "--server.proxy_password"] for idx, arg in enumerate(cmd): if arg in remove_values_from_args: logged_args[idx+1] = "XXXXXXX" logged_args = str(logged_args) self.logger.info(logged_args) subprocess.check_call(cmd) except: raise RuntimeError("Error updating subscription \ manager proxy configuration") args.extend(extra_args) self.logger.info("Registering to RHN account.....") rhsm_configs = (["/var/lib/rhsm/cache/installed_products.json", "/var/lib/rhsm/facts/facts.json"]) unmount_config(rhsm_configs) unmount_config(glob.glob("/etc/pki/consumer/*pem")) def unlink_if_exists(f): if os.path.exists(f): os.unlink(f) for f in rhsm_configs: unlink_if_exists(f) logged_args = list(args) remove_values_from_args = ["--password", "--proxypassword"] for idx, arg in enumerate(logged_args): if arg in remove_values_from_args: logged_args[idx+1] = "XXXXXXX" logged_args = str(logged_args) self.logger.info(logged_args) smreg_output = process.pipe(args) self.logger.debug(smreg_output) if "been registered" not in smreg_output: if "Invalid credentials" in smreg_output: raise RuntimeError("Invalid Username / Password") elif "already been taken" in smreg_output: raise RuntimeError("Hostname is already " + "registered") else: raise RuntimeError("Registration Failed") else: ovirt_store_config(rhsm_configs) ovirt_store_config("/etc/pki/consumer/key.pem") ovirt_store_config("/etc/pki/consumer/cert.pem") self.logger.info("System %s sucessfully registered \ to %s" % (profilename, serverurl))
def commit(self): cfg = RHN().retrieve() self.logger.debug(cfg) rhntype = cfg["rhntype"] serverurl = cfg["url"] cacert = cfg["ca_cert"] activationkey = cfg["activationkey"] username = cfg["username"] profilename = cfg["profile"] proxy = cfg["proxy"] proxyuser = cfg["proxyuser"] # novirtinfo: rhn-virtualization daemon refreshes virtinfo extra_args = [ '--novirtinfo', '--norhnsd', '--nopackages', '--force' ] args = ['/usr/sbin/rhnreg_ks'] if rhntype == "rhn": sys.path.append("/usr/share/rhn/up2date_client") import rhnreg rhnreg.cfg.set("serverURL", RHN_XMLRPC_ADDR) rhnreg.cfg.set("sslCACert", RHN_SSL_CERT) rhnreg.cfg.save() self.logger.info("ran update") if serverurl: cacert = cacert if cacert is not None else serverurl + \ "/pub/RHN-ORG-TRUSTED-SSL-CERT" if not serverurl.endswith("/XMLRPC"): serverurl = serverurl + "/XMLRPC" args.append('--serverUrl') args.append(serverurl) location = "/etc/sysconfig/rhn/%s" % \ os.path.basename(cacert) if cacert: if not os.path.exists(cacert): self.logger.info("Downloading CA cert.....") self.logger.debug("From: %s To: %s" % (cacert, location)) RHN().retrieveCert(cacert, location) if os.path.isfile(location): if os.stat(location).st_size > 0: args.append('--sslCACert') args.append(location) ovirt_store_config(location) else: raise RuntimeError("Error Downloading \ CA cert!") if activationkey: args.append('--activationkey') args.append(activationkey) elif username: args.append('--username') args.append(username) if password: args.append('--password') args.append(password) else: # skip RHN registration when neither activationkey # nor username/password is supplied self.logger.debug("No activationkey or " "username+password given") return if profilename: args.append('--profilename') args.append(profilename) if proxy: args.append('--proxy') args.append(proxy) if proxyuser: args.append('--proxyUser') args.append(proxyuser) if proxypass: args.append('--proxyPassword') args.append(proxypass) args.extend(extra_args) self.logger.info("Registering to RHN account.....") remove_config("/etc/sysconfig/rhn/systemid") remove_config("/etc/sysconfig/rhn/up2date") logged_args = list(args) remove_values_from_args = ["--password", "--proxyPassword"] for idx, arg in enumerate(logged_args): if arg in remove_values_from_args: logged_args[idx + 1] = "XXXXXXX" logged_args = str(logged_args) self.logger.debug(logged_args) try: subprocess.check_call(args) ovirt_store_config("/etc/sysconfig/rhn/up2date") ovirt_store_config("/etc/sysconfig/rhn/systemid") self.logger.info("System %s sucessfully registered to %s" % (profilename, serverurl)) # sync profile if reregistering, fixes problem with # virt guests not showing sys.path.append("/usr/share/rhn") from virtualization import support support.refresh(True) except: self.logger.exception("Failed to call: %s" % logged_args) raise RuntimeError("Error registering to RHN account")
def commit(self): cfg = RHN().retrieve() self.logger.debug(cfg) # rhntype = cfg["rhntype"] org = cfg["org"] serverurl = cfg["url"] cacert = cfg["ca_cert"] activationkey = cfg["activationkey"] username = cfg["username"] profilename = cfg["profile"] proxy = cfg["proxy"] proxyuser = cfg["proxyuser"] if os.path.exists("/etc/sysconfig/rhn/systemid"): remove_config("/etc/sysconfig/rhn/systemid") extra_args = ['--force'] if not activationkey: extra_args.append("--autosubscribe") sm = ['/usr/sbin/subscription-manager'] args = list(sm) args.append('register') if activationkey and org: args.append('--activationkey') args.append(activationkey) args.append('--org') args.append(org) elif username: args.append('--username') args.append(username) if password: args.append('--password') args.append(password) else: # skip RHN registration when neither activationkey # nor username/password is supplied # return success for AUTO w/o rhn_* parameters return if serverurl: (host, port) = parse_host_port(serverurl) parsed_url = urlparse(serverurl) prefix = parsed_url.path if port == 0: port = "443" else: port = str(port) else: prefix = "/subscription" host = "subscription.rhn.redhat.com" port = "443" location = "/etc/rhsm/ca/candlepin-local.pem" if cacert: if not os.path.exists(cacert): self.logger.info("Downloading CA cert.....") RHN().retrieveCert(cacert, location) if os.path.isfile(location): if os.stat(location).st_size > 0: ovirt_store_config(location) else: raise RuntimeError("Error Downloading CA cert!") smconf = list(sm) smconf.append('config') smconf.append('--server.hostname') smconf.append(host) smconf.append('--server.port') smconf.append(port) smconf.append('--server.prefix') smconf.append(prefix) if cacert: smconf.append('--rhsm.repo_ca_cert') smconf.append('/etc/rhsm/ca/candlepin-local.pem') try: subprocess.check_call(smconf) ovirt_store_config("/etc/rhsm/rhsm.conf") except: raise RuntimeError("Error updating subscription manager \ configuration") if profilename: args.append('--name') args.append(profilename) if proxy: try: (host, port) = proxy.split(":") process.check_call([ "subscription-manager", "config", "--server.proxy_hostname", host ]) process.check_call([ "subscription-manager", "config", "--server.proxy_port", port ]) if proxyuser: args.append('--proxyuser') args.append(proxyuser) cmd = [ "subscription-manager", "config", "--server.proxy_user", proxyuser ] process.check_call(cmd) if proxypass: args.append('--proxypassword') args.append(proxypass) cmd = [ "subscription-manager", "config", "--server.proxy_password", proxypass ] logged_args = list(cmd) remove_values_from_args = [ "--server.proxy_password" ] for idx, arg in enumerate(cmd): if arg in remove_values_from_args: logged_args[idx + 1] = "XXXXXXX" logged_args = str(logged_args) self.logger.info(logged_args) subprocess.check_call(cmd) except: raise RuntimeError("Error updating subscription \ manager proxy configuration") args.extend(extra_args) self.logger.info("Registering to RHN account.....") rhsm_configs = ([ "/var/lib/rhsm/cache/installed_products.json", "/var/lib/rhsm/facts/facts.json" ]) unmount_config(rhsm_configs) unmount_config(glob.glob("/etc/pki/consumer/*pem")) def unlink_if_exists(f): if os.path.exists(f): os.unlink(f) for f in rhsm_configs: unlink_if_exists(f) logged_args = list(args) remove_values_from_args = ["--password", "--proxypassword"] for idx, arg in enumerate(logged_args): if arg in remove_values_from_args: logged_args[idx + 1] = "XXXXXXX" logged_args = str(logged_args) self.logger.info(logged_args) smreg_output = process.pipe(args) self.logger.debug(smreg_output) if "been registered" not in smreg_output: if "Invalid credentials" in smreg_output: raise RuntimeError("Invalid Username / Password") elif "already been taken" in smreg_output: raise RuntimeError("Hostname is already " + "registered") else: raise RuntimeError("Registration Failed") else: ovirt_store_config(rhsm_configs) ovirt_store_config("/etc/pki/consumer/key.pem") ovirt_store_config("/etc/pki/consumer/cert.pem") self.logger.info("System %s sucessfully registered \ to %s" % (profilename, serverurl))