diff --git a/debian/cloudstack-common.postinst b/debian/cloudstack-common.postinst index aa99edaee064..682b11a2fa1e 100644 --- a/debian/cloudstack-common.postinst +++ b/debian/cloudstack-common.postinst @@ -21,12 +21,12 @@ set -e CLOUDUTILS_DIR="/usr/share/pyshared/" DIST_DIR=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") -if which pycompile >/dev/null 2>&1; then - pycompile -p cloudstack-common +if which py3compile >/dev/null 2>&1; then + py3compile -p cloudstack-common fi -if which pycompile >/dev/null 2>&1; then - pycompile -p cloudstack-common /usr/share/cloudstack-common +if which py3compile >/dev/null 2>&1; then + py3compile -p cloudstack-common /usr/share/cloudstack-common fi cp $CLOUDUTILS_DIR/cloud_utils.py $DIST_DIR diff --git a/scripts/network/exdhcp/dhcpd_edithosts.py b/scripts/network/exdhcp/dhcpd_edithosts.py index 4df996dc0321..7100e8dc3f75 100644 --- a/scripts/network/exdhcp/dhcpd_edithosts.py +++ b/scripts/network/exdhcp/dhcpd_edithosts.py @@ -36,27 +36,27 @@ def lock(): sleep(1) count = count + 1 if count > sleep_max: - print "Can not get file lock at %s, time expired" % file_lock + print("Can not get file lock at %s, time expired" % file_lock) return False try: f = open(file_lock, "w") f.close() return True - except IOError,e: - print "Cannot create file lock at /etc/dhcpd.conf_locked,", e + except IOError as e: + print("Cannot create file lock at /etc/dhcpd.conf_locked,", e) return False def unlock(): if exists(file_lock) == False: - print "Cannot find %s when unlocking, race condition happens" % file_lock + print("Cannot find %s when unlocking, race condition happens" % file_lock) else: try: remove(file_lock) return True - except IOError, e: - print "Cannot remove file lock at %s" % file_lock + except IOError as e: + print("Cannot remove file lock at %s" % file_lock) return False def insert_host_entry(mac, ip, hostname, dns, gateway, next_server): @@ -66,14 +66,14 @@ def insert_host_entry(mac, ip, hostname, dns, gateway, next_server): cmd = 'sed -i /"fixed-address %s"/d %s' % (ip, conf_path) ret = os.system(cmd) if ret != 0: - print "Command %s failed" % cmd + print("Command %s failed" % cmd) unlock() return 1 cmd = 'sed -i /"hardware ethernet %s"/d %s' % (mac, conf_path) ret = os.system(cmd) if ret != 0: - print "Command %s failed" % cmd + print("Command %s failed" % cmd) unlock() return 1 @@ -84,14 +84,14 @@ def insert_host_entry(mac, ip, hostname, dns, gateway, next_server): cmd = '''echo '%s' >> %s''' % (entry, conf_path) ret = os.system(cmd) if ret != 0: - print "Command %s failed" % cmd + print("Command %s failed" % cmd) unlock() return 1 cmd = 'service dhcpd restart' ret = os.system(cmd) if ret != 0: - print "Command %s failed" % cmd + print("Command %s failed" % cmd) unlock() return 1 @@ -102,7 +102,7 @@ def insert_host_entry(mac, ip, hostname, dns, gateway, next_server): if __name__ == "__main__": if len(sys.argv) < 7: - print usage + print(usage) sys.exit(1) mac = sys.argv[1] @@ -115,7 +115,7 @@ def insert_host_entry(mac, ip, hostname, dns, gateway, next_server): if exists(conf_path) == False: conf_path = "/etc/dhcp/dhcpd.conf" if exists(conf_path) == False: - print "Cannot find dhcpd.conf" + print("Cannot find dhcpd.conf") sys.exit(1) ret = insert_host_entry(mac, ip, hostname, dns, gateway, next_server) diff --git a/scripts/network/ping/prepare_kickstart_bootfile.py b/scripts/network/ping/prepare_kickstart_bootfile.py index 27baecef0253..757cff1ed7d4 100755 --- a/scripts/network/ping/prepare_kickstart_bootfile.py +++ b/scripts/network/ping/prepare_kickstart_bootfile.py @@ -62,14 +62,14 @@ def prepare(): f.write(stuff) f.close() return 0 - except Exception, e: - print e + except Exception as e: + print(e) return 1 if __name__ == "__main__": if len(sys.argv) < 7: - print "Usage: prepare_kickstart_bootfile.py tftp_dir mac kernel initrd ks_file ks_device" + print("Usage: prepare_kickstart_bootfile.py tftp_dir mac kernel initrd ks_file ks_device") exit(1) (tftp_dir, mac, kernel, initrd, ks_file, ks_device) = sys.argv[1:] diff --git a/scripts/network/ping/prepare_kickstart_kernel_initrd.py b/scripts/network/ping/prepare_kickstart_kernel_initrd.py index 510a5cc11caa..80501327e274 100755 --- a/scripts/network/ping/prepare_kickstart_kernel_initrd.py +++ b/scripts/network/ping/prepare_kickstart_kernel_initrd.py @@ -26,7 +26,7 @@ copy_to = None def cmd(cmdstr, err=True): - print cmdstr + print(cmdstr) if os.system(cmdstr) != 0 and err: raise Exception("Failed to run shell command: %s" % cmdstr) @@ -36,7 +36,7 @@ def prepare(): k = os.path.join(copy_to, "vmlinuz") i = os.path.join(copy_to, "initrd.img") if os.path.exists(k) and os.path.exists(i): - print "Having template(%s) prepared already, skip copying" % copy_to + print("Having template(%s) prepared already, skip copying" % copy_to) return 0 else: if not os.path.exists(copy_to): @@ -61,14 +61,14 @@ def copy_from_nfs(src, dst): copy_from_nfs(kernel, copy_to) copy_from_nfs(initrd, copy_to) - except Exception, e: - print e + except Exception as e: + print(e) return 1 if __name__ == "__main__": if len(sys.argv) < 4: - print "Usage: prepare_kickstart_kerneal_initrd.py path_to_kernel path_to_initrd path_kernel_initrd_copy_to" - sys.exit(1) + print("Usage: prepare_kickstart_kerneal_initrd.py path_to_kernel path_to_initrd path_kernel_initrd_copy_to") + sys.exit(1) (kernel, initrd, copy_to) = sys.argv[1:] sys.exit(prepare()) diff --git a/scripts/network/ping/prepare_tftp_bootfile.py b/scripts/network/ping/prepare_tftp_bootfile.py index 00d8bb0ccbc1..5b779531b32b 100644 --- a/scripts/network/ping/prepare_tftp_bootfile.py +++ b/scripts/network/ping/prepare_tftp_bootfile.py @@ -72,14 +72,14 @@ def prepare(is_restore): f.write(stuff) f.close() return 0 - except Exception, e: - print e + except Exception as e: + print(e) return 1 if __name__ == "__main__": if len(sys.argv) < 12: - print "Usage: prepare_tftp_bootfile.py tftp_dir mac cifs_server share directory image_to_restor cifs_username cifs_password ip netmask gateway" + print("Usage: prepare_tftp_bootfile.py tftp_dir mac cifs_server share directory image_to_restor cifs_username cifs_password ip netmask gateway") exit(1) (cmd, tftp_dir, mac, cifs_server, share, directory, template_dir, cifs_username, cifs_password, ip, netmask, gateway) = sys.argv[1:] @@ -89,7 +89,7 @@ def prepare(is_restore): elif cmd == "backup": ret = prepare(False) else: - print "Unknown cmd: %s"%cmd + print("Unknown cmd: %s"%cmd) ret = 1 exit(ret) diff --git a/scripts/storage/secondary/cloud-install-sys-tmplt.py b/scripts/storage/secondary/cloud-install-sys-tmplt.py index 4950908201bb..7aa33f10afb7 100644 --- a/scripts/storage/secondary/cloud-install-sys-tmplt.py +++ b/scripts/storage/secondary/cloud-install-sys-tmplt.py @@ -19,7 +19,7 @@ import argparse import sys -import urllib +import urllib.request, urllib.parse, urllib.error import uuid import subprocess import os @@ -90,7 +90,7 @@ def populateOptions(self): self.databaseuserpassword = "" if self.args.templatesuffix: self.templatesuffix = self.args.templatesuffix - print 'Password for DB: %s'%self.databaseuserpassword + print('Password for DB: %s'%self.databaseuserpassword) def errorAndExit(self, msg): err = '''\n\nWe apologize for below error: @@ -117,11 +117,11 @@ def runCmd(self, cmds): def runMysql(self, query): try: - print 'Running Query: %s' % query + print('Running Query: %s' % query) mysqlCmds = ['mysql', '--user=%s'%self.databaseusername, '--host=%s'%self.databasehostname, '--password=%s'%self.databaseuserpassword, '--skip-column-names', '-U', 'cloud', '-e "%s"'%query] templateId = self.runCmd(mysqlCmds) - print 'TemplateId is : %s' % templateId - except Exception, e: + print('TemplateId is : %s' % templateId) + except Exception as e: err = '''Encountering an error when executing mysql script\n%s''' % str(e) self.errorAndExit(err) return templateId @@ -137,9 +137,9 @@ def fetchTemplateDetails(self): def downloadTemplate(self): self.systemvmtemplatepath = self.templateName + "." + self.fileextension - print 'Downloading template from %s To %s' % (self.systemvmtemplateurl, self.systemvmtemplatepath) + print('Downloading template from %s To %s' % (self.systemvmtemplateurl, self.systemvmtemplatepath)) try: - templateFileDownloadUrl = urllib.urlretrieve(self.systemvmtemplateurl, self.systemvmtemplatepath, reporthook=self.report) + templateFileDownloadUrl = urllib.request.urlretrieve(self.systemvmtemplateurl, self.systemvmtemplatepath, reporthook=self.report) except Exception: self.errorAndExit("Failed to download template file from %s" % self.systemvmtemplateurl) @@ -150,23 +150,23 @@ def report(tmp, blocknr, blocksize, size): def installTemplate(self): destDir = self.mountpoint + os.sep + "template" + os.sep + "tmpl" + os.sep + "1" + os.sep + str(self.template) self.destDir = destDir - print 'The desination Directory is : %s' % destDir + print('The desination Directory is : %s' % destDir) try: if self.forcecleanup: if os.path.exists(destDir): shutil.rmtree(destDir) if not os.path.exists(destDir): os.makedirs(destDir) - except Exception, e: + except Exception as e: self.errorAndExit('Failed to create directories on the mounted path.. %s' % str (e)) - print 'Installing Template to : %s' % destDir + print('Installing Template to : %s' % destDir) tmpFile = self.templateName + "." + "tmp" self.uncompressFile(tmpFile) - print 'Moving the decompressed file to destination directory %s... which could take a long time, please wait' % destDir + print('Moving the decompressed file to destination directory %s... which could take a long time, please wait' % destDir) shutil.move(tmpFile, destDir + os.sep + self.templateName) def uncompressFile(self, fileName): - print 'Uncompressing the file %s... which could take a long time, please wait' % self.systemvmtemplatepath + print('Uncompressing the file %s... which could take a long time, please wait' % self.systemvmtemplatepath) if self.fileextension == 'gz': compressedFile = gzip.GzipFile(self.systemvmtemplatepath, 'rb') decompressedData = compressedFile.read() @@ -181,7 +181,7 @@ def uncompressFile(self, fileName): decompressedFile = file(fileName, 'wb') decompressedFile.write(decompressedData) decompressedFile.close() - print '' + print('') elif self.fileextension == 'zip': zippedFile = zipfile.ZipFile(self.systemvmtemplatepath, 'r') zippedFiles = zippedFile.namelist() @@ -191,7 +191,7 @@ def uncompressFile(self, fileName): decompressedFile.write(decompressedData) decompressedFile.close() zippedFile.close() - print '' + print('') else: self.errorAndExit('Not supported file type %s to decompress' % self.fileextension) self.fileSize = os.path.getsize(fileName) @@ -226,10 +226,10 @@ def run(self): self.installTemplate() self.writeProperties() finally: - print '' - print '' - print "CloudStack has successfully installed system template" - print '' + print('') + print('') + print("CloudStack has successfully installed system template") + print('') if __name__ == "__main__": o = InstallSysTemplate() diff --git a/scripts/util/ipmi.py b/scripts/util/ipmi.py index 2b5c36c06f96..ca98f4c28fd2 100755 --- a/scripts/util/ipmi.py +++ b/scripts/util/ipmi.py @@ -80,7 +80,7 @@ def __repr__(self): return self.__str__() def check_tool(): if exists(TOOl_PATH) == False: - print "Can not find ipmitool" + print("Can not find ipmitool") return False def ping(args): @@ -89,15 +89,15 @@ def ping(args): password = args.get("password") if hostname == None: - print "No hostname" + print("No hostname") return 1 o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "power", "status") if o.ret: - print o.stderr + print(o.stderr) return 1 else: - print o.stdout + print(o.stdout) return 0 def boot_dev(args): @@ -107,16 +107,16 @@ def boot_dev(args): dev = args.get("dev") if hostname == None: - print "No hostname" + print("No hostname") return 1 if dev == None: - print "No boot device specified" + print("No boot device specified") return 1 o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "bootdev", dev) if o.ret: - print o.stderr + print(o.stderr) return 1 else: return 0 @@ -127,12 +127,12 @@ def reboot(args): password = args.get("password") if hostname == None: - print "No hostname" + print("No hostname") return 1 o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "power", "status") if o.ret: - print o.stderr + print(o.stderr) return 1 @@ -142,7 +142,7 @@ def reboot(args): o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "power", "reset") if o.ret: - print o.stderr + print(o.stderr) return 1 else: return 0 @@ -154,12 +154,12 @@ def power(args): action = args.get("action") if hostname == None: - print "No hostname" + print("No hostname") return 1 o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "power", action) if o.ret: - print o.stderr + print(o.stderr) return 1 else: return 0 @@ -170,7 +170,7 @@ def boot_or_reboot(args): password = args.get("password") o = ipmitool("-H", hostname, "-U", usrname, "-P", password, "chassis", "power", "status") if o.ret: - print o.stderr + print(o.stderr) return 1 if "is on" in o.stdout: @@ -179,7 +179,7 @@ def boot_or_reboot(args): args["action"] = "on" return power(args) else: - print "unknown power status:" + o.stdout + print("unknown power status:" + o.stdout) return 1 @@ -189,14 +189,14 @@ def dispatch(args): params = args[2:] func_params = {} - if call_table.has_key(cmd) == False: - print "No function %s" % cmd + if (cmd in call_table) == False: + print("No function %s" % cmd) return 1 for p in params: pairs = p.split("=") if len(pairs) != 2: - print "Invalid parameter %s" % p + print("Invalid parameter %s" % p) return 1 func_params[pairs[0]] = pairs[1] @@ -207,6 +207,6 @@ def dispatch(args): if check_tool() == False: sys.exit(1) if len(sys.argv) < 2: - print "Not enough arguments, at least one" + print("Not enough arguments, at least one") sys.exit(1) sys.exit(dispatch(sys.argv)) diff --git a/scripts/util/macgen.py b/scripts/util/macgen.py index ab3c7776be30..1bd0ff7b80e8 100755 --- a/scripts/util/macgen.py +++ b/scripts/util/macgen.py @@ -26,5 +26,5 @@ def randomMAC(): random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] - return ':'.join(map(lambda x: "%02x" % x, mac)) -print randomMAC() + return ':'.join(["%02x" % x for x in mac]) +print(randomMAC()) diff --git a/scripts/vm/hypervisor/ovm3/cloudstack.py b/scripts/vm/hypervisor/ovm3/cloudstack.py index 39b5926509da..92e4e318f4f3 100644 --- a/scripts/vm/hypervisor/ovm3/cloudstack.py +++ b/scripts/vm/hypervisor/ovm3/cloudstack.py @@ -31,7 +31,7 @@ import logging.handlers from xen.util.xmlrpcclient import ServerProxy -from xmlrpclib import Error +from xmlrpc.client import Error from xen.xend import XendClient from agent.api.base import Agent from agent.lib.settings import get_api_version @@ -134,7 +134,7 @@ def domrSftp(host, localfile, remotefile, timeout=10, username=domrRoot, port=do # rf.close() sftp.close() ssh.close() - except Exception, e: + except Exception as e: raise e return True @@ -145,7 +145,7 @@ def domrScp(host, localfile, remotefile, timeout=10, username=domrRoot, port=dom rc = subprocess.call(cmd, shell=False) if rc == 0: return True - except Exception, e: + except Exception as e: raise e return False @@ -236,7 +236,7 @@ def _replaceInFile(file, orig, set, full=False): if re.search(orig, line): line = line.replace(orig, set) replaced = True - print line + print(line) return replaced def _ovsIni(setting, change): @@ -278,7 +278,7 @@ def ovsControlInterface(dev, cidr): if re.search("%s" % (cidr), line) and not re.search("%s" % (dev), line): command = ['ip', 'route', 'del', cidr] subprocess.call(command, shell=False) - print "removed: %s" % (line) + print("removed: %s" % (line)) elif re.search("%s" % (cidr), line) and re.search("%s" % (dev), line): controlRoute = True @@ -354,7 +354,7 @@ def dom0CheckStorageHealth(path, script, guid, timeout): # return True # create a dir if we need it -def ovsMkdirs(dir, mode=0700): +def ovsMkdirs(dir, mode=0o700): if not os.path.exists(dir): return os.makedirs(dir, mode) return True @@ -369,15 +369,15 @@ def ovsUploadFile(path, filename, content): file = "%s/%s" % (path, filename) try: ovsMkdirs(os.path.expanduser(path)) - except Error, v: - print "path was already there %s" % path + except Error as v: + print("path was already there %s" % path) try: text_file = open("%s" % file, "w") text_file.write("%s" % content) text_file.close() - except Error, v: - print "something went wrong creating %s: %s" % (file, v) + except Error as v: + print("something went wrong creating %s: %s" % (file, v)) return False return True @@ -390,8 +390,8 @@ def ovsDomrUploadFile(domr, path, file, content): # domrSftp(domr, temp.name, remotefile) domrScp(domr, temp.name, remotefile) temp.close - except Exception, e: - print "problem uploading file %s/%s to %s, %s" % (path, file, domr, e) + except Exception as e: + print("problem uploading file %s/%s to %s, %s" % (path, file, domr, e)) raise e return True @@ -417,13 +417,13 @@ def getVncPort(domain): dom = server.xend.domain(domain, 1) devices = [child for child in sxp.children(dom) if len(child) > 0 and child[0] == "device"] - vfbs_sxp = map(lambda x: x[1], [device for device in devices - if device[1][0] == "vfb"])[0] + vfbs_sxp = [x[1] for x in [device for device in devices + if device[1][0] == "vfb"]][0] loc = [child for child in vfbs_sxp if child[0] == "location"][0][1] listner, port = loc.split(":") else: - print "no valid domain: %s" % domain + print("no valid domain: %s" % domain) return port def get_child_by_name(exp, childname, default=None): @@ -450,10 +450,10 @@ def ovsDomUStats(domain): devids = [dev[0] for dev in devs] for dev in devids: sys_path = "/sys/devices/%s-%s-%s/statistics" % ("vbd", domid, dev) - _rd_bytes += long(open("%s/rd_sect" % sys_path).readline().strip()) - _wr_bytes += long(open("%s/wr_sect" % sys_path).readline().strip()) - _rd_ops += long(open("%s/rd_req" % sys_path).readline().strip()) - _wr_ops += long(open("%s/wr_req" % sys_path).readline().strip()) + _rd_bytes += int(open("%s/rd_sect" % sys_path).readline().strip()) + _wr_bytes += int(open("%s/wr_sect" % sys_path).readline().strip()) + _rd_ops += int(open("%s/rd_req" % sys_path).readline().strip()) + _wr_ops += int(open("%s/wr_req" % sys_path).readline().strip()) # vifs devs = server.xend.domain.getDeviceSxprs(domain, 'vif') @@ -461,8 +461,8 @@ def ovsDomUStats(domain): for dev in devids: vif = "vif%s.%s" % (domid, dev) sys_path = "/sys/devices/%s-%s-%s/net/%s/statistics" % ("vif", domid, dev, vif) - _tx_bytes += long(open("%s/tx_bytes" % sys_path).readline().strip()) - _rx_bytes += long(open("%s/rx_bytes" % sys_path).readline().strip()) + _tx_bytes += int(open("%s/tx_bytes" % sys_path).readline().strip()) + _rx_bytes += int(open("%s/rx_bytes" % sys_path).readline().strip()) epoch = time.time() stats['rd_bytes'] = "%s" % (_rd_bytes * 512) @@ -513,7 +513,7 @@ def ping(host, count=3): opts, args = getopt.getopt(sys.argv[1:], "eosp::", [ 'port=', 'ssl=', 'exec=', 'opts=']) except getopt.GetoptError: - print "Available Options: --port=, --ssl=, --exec=, --opts=" + print("Available Options: --port=, --ssl=, --exec=, --opts=") sys.exit() for o, a in opts: @@ -528,12 +528,12 @@ def ping(host, count=3): if exec_sub != "": func = "%s(%s)" % (exec_sub, exec_opts) - print "exec: %s" % (func) + print("exec: %s" % (func)) if exec_opts: opts = exec_opts.split(',') else: opts = "" - print locals()[exec_sub](*opts) + print(locals()[exec_sub](*opts)) sys.exit() # check if we're in the modules already @@ -553,24 +553,24 @@ def ping(host, count=3): if re.search("MODULES", line): n = cs.getName() line = "%s\n\t%s.%s," % (line, n.lower(), n) - print line - print "Api inserted, %s in %s" % (cs.getName(), api) + print(line) + print("Api inserted, %s in %s" % (cs.getName(), api)) else: - print "Api missing, %s" % (api) + print("Api missing, %s" % (api)) else: - print "Api present, %s in %s" % (cs.getName(), api) + print("Api present, %s in %s" % (cs.getName(), api)) # either way check our version and install if checksum differs modfile = "%s/%s.py" % (modpath, cs.getName().lower()) me = os.path.abspath(__file__) if os.path.isfile(modfile): if hashlib.md5(open(me).read()).hexdigest() != hashlib.md5(open(modfile).read()).hexdigest(): - print "Module copy, %s" % (modfile) + print("Module copy, %s" % (modfile)) copyfile(me, modfile) else: - print "Module correct, %s" % (modfile) + print("Module correct, %s" % (modfile)) else: - print "Module copy, %s" % (modfile) + print("Module copy, %s" % (modfile)) copyfile(me, modfile) # setup ssl and port diff --git a/scripts/vm/hypervisor/ovm3/storagehealth.py b/scripts/vm/hypervisor/ovm3/storagehealth.py index 46779e1ded8f..096faf436d98 100755 --- a/scripts/vm/hypervisor/ovm3/storagehealth.py +++ b/scripts/vm/hypervisor/ovm3/storagehealth.py @@ -72,9 +72,9 @@ def writehb(self,file=""): def nfsoutput(self): command="mount -v -t nfs" p=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) - lines=map(lambda line: line.split()[2], p.stdout.readlines()) + lines=[line.split()[2] for line in p.stdout.readlines()] test=re.compile("^%s" % (primary)) - lines=filter(test.search, lines) + lines=list(filter(test.search, lines)) return lines """ @@ -128,7 +128,7 @@ def figureOutPrimary(): return "/var/run/sr-mount" if "Oracle VM server" in line: return "/OVS/Repositories/" - print "Unknown hypervisor, consider adding it, exiting" + print("Unknown hypervisor, consider adding it, exiting") sys.exit(42) """ The logger is here """ @@ -165,11 +165,11 @@ def Logger(level=logging.DEBUG): opts, args = getopt.getopt(sys.argv[1:], "h:y:i:s", [ 'host', 'timeout', 'interval', 'state']) except getopt.GetoptError: - print """Usage: + print("""Usage: host: host guid. timeout: timeout to fail on interval: time between checks - state: check the state""" + state: check the state""") sys.exit() for o, a in opts: if o in ('host'): @@ -187,14 +187,14 @@ def Logger(level=logging.DEBUG): opts, args = getopt.getopt(sys.argv[1:], "g:p:f:c:t:i:s", [ 'guid=', 'primary=','failcmd=','cmd=','timeout=','interval', 'state']) except getopt.GetoptError: - print """Usage: + print("""Usage: --guid|-g: guid of the host to check --primary|-p: match for primary storage to monitor. --failcmd|-f: executed on timeout. --cmd|-c: command to execute next to hb file(s) on primary. --timeout|-t: excute failcmd after timeout(s) is hit. --interval|-i: run the checks every %ss> - --state|-s check state""" + --state|-s check state""") sys.exit() for o, a in opts: @@ -226,10 +226,10 @@ def Logger(level=logging.DEBUG): if pid > 0: # exit first parent if me == "heartbeat": - print "> DONE <" + print("> DONE <") sys.exit(0) - except OSError, e: - print >>sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror) + except OSError as e: + print("fork #1 failed: %d (%s)" % (e.errno, e.strerror), file=sys.stderr) sys.exit(1) checker=Check(cmd=cmd, @@ -247,7 +247,7 @@ def Logger(level=logging.DEBUG): logger.debug("cmd time: %s" % (runtime)) if checkstate: for fs in checker.results: - print "%s: %s" % (fs, checker.results[fs]) + print("%s: %s" % (fs, checker.results[fs])) if checker.ok == False: sys.exit(1) else: diff --git a/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py b/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py index 84f90d454e3c..df5e640f3345 100644 --- a/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py +++ b/scripts/vm/hypervisor/xenserver/cloudstack_pluginlib.py @@ -17,7 +17,7 @@ # Common function for Cloudstack's XenAPI plugins -import ConfigParser +import configparser import logging import os import subprocess @@ -73,7 +73,7 @@ def setup_logging(log_file=None): log_date_format = DEFAULT_LOG_DATE_FORMAT # try to read plugin configuration file if os.path.exists(PLUGIN_CONFIG_PATH): - config = ConfigParser.ConfigParser() + config = configparser.ConfigParser() config.read(PLUGIN_CONFIG_PATH) try: options = config.options('LOGGING') @@ -91,7 +91,7 @@ def setup_logging(log_file=None): # configuration file contained invalid attributes # ignore them pass - except ConfigParser.NoSectionError: + except configparser.NoSectionError: # Missing 'Logging' section in configuration file pass @@ -138,7 +138,7 @@ def _is_process_run(pidFile, name): fpid = open(pidFile, "r") pid = fpid.readline() fpid.close() - except IOError, e: + except IOError as e: return -1 pid = pid[:-1] @@ -335,11 +335,11 @@ def __getattr__(self, val): def __repr__(self): return '{%s}' % str(', '.join('%s : %s' % (k, repr(v)) for (k, v) - in self.__dict__.iteritems())) + in self.__dict__.items())) def __str__(self): return '{%s}' % str(', '.join('%s : %s' % (k, repr(v)) for (k, v) - in self.__dict__.iteritems())) + in self.__dict__.items())) def get_acl(vpcconfig, required_acl_id): acls = vpcconfig.acls for acl in acls: @@ -409,7 +409,7 @@ def create_tunnel(bridge, remote_ip, gre_key, src_host, dst_host, network_uuid): key_validation = do_cmd(verify_interface_key) ip_validation = do_cmd(verify_interface_ip) - if not gre_key in key_validation or not remote_ip in ip_validation: + if gre_key not in key_validation or remote_ip not in ip_validation: logging.debug("WARNING: Unexpected output while verifying " + "interface %s on bridge %s" % (name, bridge)) return "FAILURE:VERIFY_INTERFACE_FAILED" @@ -581,7 +581,7 @@ def configure_vpc_bridge_for_network_topology(bridge, this_host_id, json_config, return "SUCCESS: successfully configured bridge as per the VPC topology update with sequence no: %s"%sequence_no - except Exception,e: + except Exception as e: error_message = "An unexpected error occurred while configuring bridge " + bridge + \ " as per latest VPC topology update with sequence no: %s" %sequence_no logging.debug(error_message + " due to " + str(e)) @@ -757,7 +757,7 @@ def configure_vpc_bridge_for_routing_policies(bridge, json_config, sequence_no): return "SUCCESS: successfully configured bridge as per the latest routing policies update with " \ "sequence no: %s"%sequence_no - except Exception,e: + except Exception as e: error_message = "An unexpected error occurred while configuring bridge " + bridge + \ " as per latest VPC's routing policy update with sequence number %s." %sequence_no logging.debug(error_message + " due to " + str(e)) @@ -797,7 +797,7 @@ class tier_ports: if port.startswith('vif'): network_id = get_network_id_for_vif(port) - if network_id not in all_tiers.keys(): + if network_id not in list(all_tiers.keys()): all_tiers[network_id] = tier_ports() tier_ports_info = all_tiers[network_id] tier_ports_info.tier_vif_ofports.append(if_ofport) @@ -806,14 +806,14 @@ class tier_ports: if port.startswith('t'): network_id = get_network_id_for_tunnel_port(port)[1:-1] - if network_id not in all_tiers.keys(): + if network_id not in list(all_tiers.keys()): all_tiers[network_id] = tier_ports() tier_ports_info = all_tiers[network_id] tier_ports_info.tier_tunnelif_ofports.append(if_ofport) tier_ports_info.tier_all_ofports.append(if_ofport) all_tiers[network_id] = tier_ports_info - for network_id, tier_ports_info in all_tiers.items(): + for network_id, tier_ports_info in list(all_tiers.items()): if len(tier_ports_info.tier_all_ofports) == 1 : continue @@ -850,7 +850,7 @@ class tier_ports: logging.debug("successfully configured bridge %s as per the latest flooding rules " %bridge) - except Exception,e: + except Exception as e: if os.path.isfile(ofspec_filename): os.remove(ofspec_filename) error_message = "An unexpected error occurred while updating the flooding rules for the bridge " + \ diff --git a/scripts/vm/hypervisor/xenserver/mockxcpplugin.py b/scripts/vm/hypervisor/xenserver/mockxcpplugin.py index f7c84371c499..96e778f63015 100644 --- a/scripts/vm/hypervisor/xenserver/mockxcpplugin.py +++ b/scripts/vm/hypervisor/xenserver/mockxcpplugin.py @@ -31,7 +31,7 @@ def getHost(): host = session.xenapi.host hosts = session.xenapi.host.get_by_name_label(hostname) if len(hosts) != 1: - print "can't find host:" + hostname + print("can't find host:" + hostname) sys.exit(1) localhost = hosts[0] return [host, localhost] @@ -44,7 +44,7 @@ def callPlugin(pluginName, func, params): def main(): if len(sys.argv) < 3: - print "args: pluginName funcName params" + print("args: pluginName funcName params") sys.exit(1) pluginName = sys.argv[1] @@ -52,15 +52,15 @@ def main(): paramList = sys.argv[3:] if (len(paramList) % 2) != 0: - print "params must be name/value pair" + print("params must be name/value pair") sys.exit(2) params = {} pos = 0; for i in range(len(paramList) / 2): params[str(paramList[pos])] = str(paramList[pos+1]) pos = pos + 2 - print "call: " + pluginName + " " + funcName + ", with params: " + str(params) - print "return: " + callPlugin(pluginName, funcName, params) + print("call: " + pluginName + " " + funcName + ", with params: " + str(params)) + print("return: " + callPlugin(pluginName, funcName, params)) if __name__ == "__main__": main() diff --git a/scripts/vm/hypervisor/xenserver/ovs-vif-flows.py b/scripts/vm/hypervisor/xenserver/ovs-vif-flows.py index b3d3917642e9..609729265b8c 100644 --- a/scripts/vm/hypervisor/xenserver/ovs-vif-flows.py +++ b/scripts/vm/hypervisor/xenserver/ovs-vif-flows.py @@ -137,8 +137,8 @@ def main(command, vif_raw): if __name__ == "__main__": if len(sys.argv) != 3: - print "usage: %s [online|offline] vif-domid-idx" % \ - os.path.basename(sys.argv[0]) + print("usage: %s [online|offline] vif-domid-idx" % \ + os.path.basename(sys.argv[0])) sys.exit(1) else: command, vif_raw = sys.argv[1:3] diff --git a/scripts/vm/hypervisor/xenserver/xcposs/NFSSR.py b/scripts/vm/hypervisor/xenserver/xcposs/NFSSR.py index 84eb7307b85f..a433005992c6 100644 --- a/scripts/vm/hypervisor/xenserver/xcposs/NFSSR.py +++ b/scripts/vm/hypervisor/xenserver/xcposs/NFSSR.py @@ -66,19 +66,19 @@ def load(self, sr_uuid): self.ops_exclusive = FileSR.OPS_EXCLUSIVE self.lock = Lock(vhdutil.LOCK_TYPE_SR, self.uuid) self.sr_vditype = SR.DEFAULT_TAP - if not self.dconf.has_key('server'): + if 'server' not in self.dconf: raise xs_errors.XenError('ConfigServerMissing') self.remoteserver = self.dconf['server'] self.path = os.path.join(SR.MOUNT_BASE, sr_uuid) # Test for the optional 'nfsoptions' dconf attribute self.transport = DEFAULT_TRANSPORT - if self.dconf.has_key('useUDP') and self.dconf['useUDP'] == 'true': + if 'useUDP' in self.dconf and self.dconf['useUDP'] == 'true': self.transport = "udp" def validate_remotepath(self, scan): - if not self.dconf.has_key('serverpath'): + if 'serverpath' not in self.dconf: if scan: try: self.scan_exports(self.dconf['server']) @@ -92,7 +92,7 @@ def validate_remotepath(self, scan): def check_server(self): try: nfs.check_server_tcp(self.remoteserver) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSVersion', opterr=exc.errstr) @@ -100,7 +100,7 @@ def check_server(self): def mount(self, mountpoint, remotepath): try: nfs.soft_mount(mountpoint, self.remoteserver, remotepath, self.transport) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSMount', opterr=exc.errstr) @@ -151,7 +151,7 @@ def detach(self, sr_uuid): try: nfs.unmount(self.path, True) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSUnMount', opterr=exc.errstr) return super(NFSSR, self).detach(sr_uuid) @@ -168,7 +168,7 @@ def create(self, sr_uuid, size): self.remotepath = self.dconf['serverpath'] try: self.mount_remotepath(sr_uuid) - except Exception, exn: + except Exception as exn: try: os.rmdir(self.path) except: @@ -193,7 +193,7 @@ def delete(self, sr_uuid): if util.ioretry(lambda: util.pathexists(newpath)): util.ioretry(lambda: os.rmdir(newpath)) self.detach(sr_uuid) - except util.CommandException, inst: + except util.CommandException as inst: self.detach(sr_uuid) if inst.code != errno.ENOENT: raise xs_errors.XenError('NFSDelete') @@ -210,7 +210,7 @@ def _checkmount(self): def scan_exports(self, target): util.SMlog("scanning2 (target=%s)" % target) dom = nfs.scan_exports(target) - print >>sys.stderr,dom.toprettyxml() + print(dom.toprettyxml(), file=sys.stderr) class NFSFileVDI(FileSR.FileVDI): def attach(self, sr_uuid, vdi_uuid): diff --git a/scripts/vm/hypervisor/xenserver/xcpserver/NFSSR.py b/scripts/vm/hypervisor/xenserver/xcpserver/NFSSR.py index faaf6d96486b..1651d9033392 100755 --- a/scripts/vm/hypervisor/xenserver/xcpserver/NFSSR.py +++ b/scripts/vm/hypervisor/xenserver/xcpserver/NFSSR.py @@ -66,19 +66,19 @@ def load(self, sr_uuid): self.ops_exclusive = FileSR.OPS_EXCLUSIVE self.lock = Lock(vhdutil.LOCK_TYPE_SR, self.uuid) self.sr_vditype = SR.DEFAULT_TAP - if not self.dconf.has_key('server'): + if 'server' not in self.dconf: raise xs_errors.XenError('ConfigServerMissing') self.remoteserver = self.dconf['server'] self.path = os.path.join(SR.MOUNT_BASE, sr_uuid) # Test for the optional 'nfsoptions' dconf attribute self.transport = DEFAULT_TRANSPORT - if self.dconf.has_key('useUDP') and self.dconf['useUDP'] == 'true': + if 'useUDP' in self.dconf and self.dconf['useUDP'] == 'true': self.transport = "udp" def validate_remotepath(self, scan): - if not self.dconf.has_key('serverpath'): + if 'serverpath' not in self.dconf: if scan: try: self.scan_exports(self.dconf['server']) @@ -92,7 +92,7 @@ def validate_remotepath(self, scan): def check_server(self): try: nfs.check_server_tcp(self.remoteserver) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSVersion', opterr=exc.errstr) @@ -100,7 +100,7 @@ def check_server(self): def mount(self, mountpoint, remotepath): try: nfs.soft_mount(mountpoint, self.remoteserver, remotepath, self.transport) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSMount', opterr=exc.errstr) @@ -150,7 +150,7 @@ def detach(self, sr_uuid): try: nfs.unmount(self.path, True) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSUnMount', opterr=exc.errstr) return super(NFSSR, self).detach(sr_uuid) @@ -167,7 +167,7 @@ def create(self, sr_uuid, size): self.remotepath = self.dconf['serverpath'] try: self.mount_remotepath(sr_uuid) - except Exception, exn: + except Exception as exn: try: os.rmdir(self.path) except: @@ -192,7 +192,7 @@ def delete(self, sr_uuid): if util.ioretry(lambda: util.pathexists(newpath)): util.ioretry(lambda: os.rmdir(newpath)) self.detach(sr_uuid) - except util.CommandException, inst: + except util.CommandException as inst: self.detach(sr_uuid) if inst.code != errno.ENOENT: raise xs_errors.XenError('NFSDelete') @@ -209,7 +209,7 @@ def _checkmount(self): def scan_exports(self, target): util.SMlog("scanning2 (target=%s)" % target) dom = nfs.scan_exports(target) - print >>sys.stderr,dom.toprettyxml() + print(dom.toprettyxml(), file=sys.stderr) class NFSFileVDI(FileSR.FileVDI): def attach(self, sr_uuid, vdi_uuid): diff --git a/scripts/vm/hypervisor/xenserver/xenserver56/InterfaceReconfigure.py b/scripts/vm/hypervisor/xenserver/xenserver56/InterfaceReconfigure.py index 2807f706ff50..2d7d2af6f2d2 100755 --- a/scripts/vm/hypervisor/xenserver/xenserver56/InterfaceReconfigure.py +++ b/scripts/vm/hypervisor/xenserver/xenserver56/InterfaceReconfigure.py @@ -47,7 +47,7 @@ def log(s): if get_log_destination() == 'syslog': syslog.syslog(s) else: - print >>sys.stderr, s + print(s, file=sys.stderr) # Exceptions. @@ -244,8 +244,8 @@ def _strlist_from_xml(n, ltag, itag): def _otherconfig_to_xml(xml, parent, val, attrs): otherconfig = xml.createElement("other_config") parent.appendChild(otherconfig) - for n,v in val.items(): - if not n in attrs: + for n,v in list(val.items()): + if n not in attrs: raise Error("Unknown other-config attribute: %s" % n) _str_to_xml(xml, otherconfig, n, v) def _otherconfig_from_xml(n, attrs): @@ -270,10 +270,10 @@ def _otherconfig_from_xml(n, attrs): _BOND_XML_TAG = "bond" _NETWORK_XML_TAG = "network" -_ETHTOOL_OTHERCONFIG_ATTRS = ['ethtool-%s' % x for x in 'autoneg', 'speed', 'duplex', 'rx', 'tx', 'sg', 'tso', 'ufo', 'gso' ] +_ETHTOOL_OTHERCONFIG_ATTRS = ['ethtool-%s' % x for x in ('autoneg', 'speed', 'duplex', 'rx', 'tx', 'sg', 'tso', 'ufo', 'gso') ] _PIF_OTHERCONFIG_ATTRS = [ 'domain', 'peerdns', 'defaultroute', 'mtu', 'static-routes' ] + \ - [ 'bond-%s' % x for x in 'mode', 'miimon', 'downdelay', 'updelay', 'use_carrier' ] + \ + [ 'bond-%s' % x for x in ('mode', 'miimon', 'downdelay', 'updelay', 'use_carrier') ] + \ _ETHTOOL_OTHERCONFIG_ATTRS _PIF_ATTRS = { 'uuid': (_str_to_xml,_str_from_xml), @@ -358,11 +358,11 @@ def __read_xensource_inventory(self): return dict(defs) def __pif_on_host(self,pif): - return self.__pifs.has_key(pif) + return pif in self.__pifs def __get_pif_records_from_xapi(self, session, host): self.__pifs = {} - for (p,rec) in session.xenapi.PIF.get_all_records().items(): + for (p,rec) in list(session.xenapi.PIF.get_all_records().items()): if rec['host'] != host: continue self.__pifs[p] = {} @@ -370,12 +370,12 @@ def __get_pif_records_from_xapi(self, session, host): self.__pifs[p][f] = rec[f] self.__pifs[p]['other_config'] = {} for f in _PIF_OTHERCONFIG_ATTRS: - if not rec['other_config'].has_key(f): continue + if f not in rec['other_config']: continue self.__pifs[p]['other_config'][f] = rec['other_config'][f] def __get_vlan_records_from_xapi(self, session): self.__vlans = {} - for (v,rec) in session.xenapi.VLAN.get_all_records().items(): + for (v,rec) in list(session.xenapi.VLAN.get_all_records().items()): if not self.__pif_on_host(rec['untagged_PIF']): continue self.__vlans[v] = {} @@ -384,7 +384,7 @@ def __get_vlan_records_from_xapi(self, session): def __get_bond_records_from_xapi(self, session): self.__bonds = {} - for (b,rec) in session.xenapi.Bond.get_all_records().items(): + for (b,rec) in list(session.xenapi.Bond.get_all_records().items()): if not self.__pif_on_host(rec['master']): continue self.__bonds[b] = {} @@ -393,7 +393,7 @@ def __get_bond_records_from_xapi(self, session): def __get_network_records_from_xapi(self, session): self.__networks = {} - for (n,rec) in session.xenapi.network.get_all_records().items(): + for (n,rec) in list(session.xenapi.network.get_all_records().items()): self.__networks[n] = {} for f in _NETWORK_ATTRS: if f == "PIFs": @@ -407,7 +407,7 @@ def __get_network_records_from_xapi(self, session): self.__networks[n][f] = rec[f] self.__networks[n]['other_config'] = {} for f in _NETWORK_OTHERCONFIG_ATTRS: - if not rec['other_config'].has_key(f): continue + if f not in rec['other_config']: continue self.__networks[n]['other_config'][f] = rec['other_config'][f] def __to_xml(self, xml, parent, key, ref, rec, attrs): @@ -417,8 +417,8 @@ def __to_xml(self, xml, parent, key, ref, rec, attrs): if ref: e.setAttribute('ref', ref) - for n,v in rec.items(): - if attrs.has_key(n): + for n,v in list(rec.items()): + if n in attrs: h,_ = attrs[n] h(xml, e, n, v) else: @@ -449,7 +449,7 @@ def __init__(self, session_ref=None, cache_file=None): try: inventory = self.__read_xensource_inventory() - assert(inventory.has_key('INSTALLATION_UUID')) + assert('INSTALLATION_UUID' in inventory) log("host uuid is %s" % inventory['INSTALLATION_UUID']) host = session.xenapi.host.get_by_uuid(inventory['INSTALLATION_UUID']) @@ -499,13 +499,13 @@ def save(self, cache_file): xml = getDOMImplementation().createDocument( None, "xenserver-network-configuration", None) - for (ref,rec) in self.__pifs.items(): + for (ref,rec) in list(self.__pifs.items()): self.__to_xml(xml, xml.documentElement, _PIF_XML_TAG, ref, rec, _PIF_ATTRS) - for (ref,rec) in self.__bonds.items(): + for (ref,rec) in list(self.__bonds.items()): self.__to_xml(xml, xml.documentElement, _BOND_XML_TAG, ref, rec, _BOND_ATTRS) - for (ref,rec) in self.__vlans.items(): + for (ref,rec) in list(self.__vlans.items()): self.__to_xml(xml, xml.documentElement, _VLAN_XML_TAG, ref, rec, _VLAN_ATTRS) - for (ref,rec) in self.__networks.items(): + for (ref,rec) in list(self.__networks.items()): self.__to_xml(xml, xml.documentElement, _NETWORK_XML_TAG, ref, rec, _NETWORK_ATTRS) @@ -514,9 +514,7 @@ def save(self, cache_file): f.close() def get_pif_by_uuid(self, uuid): - pifs = map(lambda (ref,rec): ref, - filter(lambda (ref,rec): uuid == rec['uuid'], - self.__pifs.items())) + pifs = [ref_rec3[0] for ref_rec3 in [ref_rec for ref_rec in list(self.__pifs.items()) if uuid == ref_rec[1]['uuid']]] if len(pifs) == 0: raise Error("Unknown PIF \"%s\"" % uuid) elif len(pifs) > 1: @@ -525,14 +523,10 @@ def get_pif_by_uuid(self, uuid): return pifs[0] def get_pifs_by_device(self, device): - return map(lambda (ref,rec): ref, - filter(lambda (ref,rec): rec['device'] == device, - self.__pifs.items())) + return [ref_rec4[0] for ref_rec4 in [ref_rec1 for ref_rec1 in list(self.__pifs.items()) if ref_rec1[1]['device'] == device]] def get_pif_by_bridge(self, bridge): - networks = map(lambda (ref,rec): ref, - filter(lambda (ref,rec): rec['bridge'] == bridge, - self.__networks.items())) + networks = [ref_rec5[0] for ref_rec5 in [ref_rec2 for ref_rec2 in list(self.__networks.items()) if ref_rec2[1]['bridge'] == bridge]] if len(networks) == 0: raise Error("No matching network \"%s\"" % bridge) @@ -549,13 +543,13 @@ def get_pif_by_bridge(self, bridge): return answer def get_pif_record(self, pif): - if self.__pifs.has_key(pif): + if pif in self.__pifs: return self.__pifs[pif] raise Error("Unknown PIF \"%s\"" % pif) def get_all_pifs(self): return self.__pifs def pif_exists(self, pif): - return self.__pifs.has_key(pif) + return pif in self.__pifs def get_management_pif(self): """ Returns the management pif on host @@ -567,18 +561,18 @@ def get_management_pif(self): return None def get_network_record(self, network): - if self.__networks.has_key(network): + if network in self.__networks: return self.__networks[network] raise Error("Unknown network \"%s\"" % network) def get_bond_record(self, bond): - if self.__bonds.has_key(bond): + if bond in self.__bonds: return self.__bonds[bond] else: return None def get_vlan_record(self, vlan): - if self.__vlans.has_key(vlan): + if vlan in self.__vlans: return self.__vlans[vlan] else: return None @@ -589,19 +583,19 @@ def get_vlan_record(self, vlan): def ethtool_settings(oc): settings = [] - if oc.has_key('ethtool-speed'): + if 'ethtool-speed' in oc: val = oc['ethtool-speed'] if val in ["10", "100", "1000"]: settings += ['speed', val] else: log("Invalid value for ethtool-speed = %s. Must be 10|100|1000." % val) - if oc.has_key('ethtool-duplex'): + if 'ethtool-duplex' in oc: val = oc['ethtool-duplex'] if val in ["10", "100", "1000"]: settings += ['duplex', 'val'] else: log("Invalid value for ethtool-duplex = %s. Must be half|full." % val) - if oc.has_key('ethtool-autoneg'): + if 'ethtool-autoneg' in oc: val = oc['ethtool-autoneg'] if val in ["true", "on"]: settings += ['autoneg', 'on'] @@ -611,7 +605,7 @@ def ethtool_settings(oc): log("Invalid value for ethtool-autoneg = %s. Must be on|true|off|false." % val) offload = [] for opt in ("rx", "tx", "sg", "tso", "ufo", "gso"): - if oc.has_key("ethtool-" + opt): + if "ethtool-" + opt in oc: val = oc["ethtool-" + opt] if val in ["true", "on"]: offload += [opt, 'on'] @@ -631,12 +625,12 @@ def mtu_setting(nw, type, oc): mtu = None nwrec = db().get_network_record(nw) - if nwrec.has_key('MTU'): + if 'MTU' in nwrec: mtu = nwrec['MTU'] else: mtu = "1500" - if oc.has_key('mtu'): + if 'mtu' in oc: log("Override Network.MTU setting on bridge %s from %s.MTU is %s" % \ (nwrec['bridge'], type, mtu)) mtu = oc['mtu'] @@ -645,7 +639,7 @@ def mtu_setting(nw, type, oc): try: int(mtu) # Check that the value is an integer return mtu - except ValueError, x: + except ValueError as x: log("Invalid value for mtu = %s" % mtu) return None @@ -854,7 +848,7 @@ def DatapathFactory(pif): network_conf = open(root_prefix() + "/etc/xensource/network.conf", 'r') network_backend = network_conf.readline().strip() network_conf.close() - except Exception, e: + except Exception as e: raise Error("failed to determine network backend:" + e) if network_backend == "bridge": diff --git a/scripts/vm/hypervisor/xenserver/xenserver56/NFSSR.py b/scripts/vm/hypervisor/xenserver/xenserver56/NFSSR.py index 50e9e6077ce3..697b9bafab77 100755 --- a/scripts/vm/hypervisor/xenserver/xenserver56/NFSSR.py +++ b/scripts/vm/hypervisor/xenserver/xenserver56/NFSSR.py @@ -65,19 +65,19 @@ def handles(type): def load(self, sr_uuid): self.lock = Lock(vhdutil.LOCK_TYPE_SR, self.uuid) self.sr_vditype = SR.DEFAULT_TAP - if not self.dconf.has_key('server'): + if 'server' not in self.dconf: raise xs_errors.XenError('ConfigServerMissing') self.remoteserver = self.dconf['server'] self.path = os.path.join(SR.MOUNT_BASE, sr_uuid) # Test for the optional 'nfsoptions' dconf attribute self.transport = DEFAULT_TRANSPORT - if self.dconf.has_key('useUDP') and self.dconf['useUDP'] == 'true': + if 'useUDP' in self.dconf and self.dconf['useUDP'] == 'true': self.transport = "udp" def validate_remotepath(self, scan): - if not self.dconf.has_key('serverpath'): + if 'serverpath' not in self.dconf: if scan: try: self.scan_exports(self.dconf['server']) @@ -91,7 +91,7 @@ def validate_remotepath(self, scan): def check_server(self): try: nfs.check_server_tcp(self.remoteserver) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSVersion', opterr=exc.errstr) @@ -99,7 +99,7 @@ def check_server(self): def mount(self, mountpoint, remotepath): try: nfs.soft_mount(mountpoint, self.remoteserver, remotepath, self.transport) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSMount', opterr=exc.errstr) @@ -153,7 +153,7 @@ def detach(self, sr_uuid): try: nfs.unmount(self.path, True) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSUnMount', opterr=exc.errstr) return super(NFSSR, self).detach(sr_uuid) @@ -171,7 +171,7 @@ def create(self, sr_uuid, size): self.remotepath = self.dconf['serverpath'] try: self.mount_remotepath(sr_uuid) - except Exception, exn: + except Exception as exn: try: os.rmdir(self.path) except: @@ -197,7 +197,7 @@ def delete(self, sr_uuid): if util.ioretry(lambda: util.pathexists(newpath)): util.ioretry(lambda: os.rmdir(newpath)) self.detach(sr_uuid) - except util.CommandException, inst: + except util.CommandException as inst: self.detach(sr_uuid) if inst.code != errno.ENOENT: raise xs_errors.XenError('NFSDelete') @@ -214,7 +214,7 @@ def _checkmount(self): def scan_exports(self, target): util.SMlog("scanning2 (target=%s)" % target) dom = nfs.scan_exports(target) - print >>sys.stderr,dom.toprettyxml() + print(dom.toprettyxml(), file=sys.stderr) class NFSFileVDI(FileSR.FileVDI): def attach(self, sr_uuid, vdi_uuid): diff --git a/scripts/vm/hypervisor/xenserver/xenserver56fp1/NFSSR.py b/scripts/vm/hypervisor/xenserver/xenserver56fp1/NFSSR.py index 9d2f81f8e8fa..ac1d8b0fd041 100755 --- a/scripts/vm/hypervisor/xenserver/xenserver56fp1/NFSSR.py +++ b/scripts/vm/hypervisor/xenserver/xenserver56fp1/NFSSR.py @@ -67,19 +67,19 @@ def load(self, sr_uuid): self.ops_exclusive = FileSR.OPS_EXCLUSIVE self.lock = Lock(vhdutil.LOCK_TYPE_SR, self.uuid) self.sr_vditype = SR.DEFAULT_TAP - if not self.dconf.has_key('server'): + if 'server' not in self.dconf: raise xs_errors.XenError('ConfigServerMissing') self.remoteserver = self.dconf['server'] self.path = os.path.join(SR.MOUNT_BASE, sr_uuid) # Test for the optional 'nfsoptions' dconf attribute self.transport = DEFAULT_TRANSPORT - if self.dconf.has_key('useUDP') and self.dconf['useUDP'] == 'true': + if 'useUDP' in self.dconf and self.dconf['useUDP'] == 'true': self.transport = "udp" def validate_remotepath(self, scan): - if not self.dconf.has_key('serverpath'): + if 'serverpath' not in self.dconf: if scan: try: self.scan_exports(self.dconf['server']) @@ -93,7 +93,7 @@ def validate_remotepath(self, scan): def check_server(self): try: nfs.check_server_tcp(self.remoteserver) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSVersion', opterr=exc.errstr) @@ -101,7 +101,7 @@ def check_server(self): def mount(self, mountpoint, remotepath): try: nfs.soft_mount(mountpoint, self.remoteserver, remotepath, self.transport) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSMount', opterr=exc.errstr) @@ -151,7 +151,7 @@ def detach(self, sr_uuid): try: nfs.unmount(self.path, True) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSUnMount', opterr=exc.errstr) return super(NFSSR, self).detach(sr_uuid) @@ -168,7 +168,7 @@ def create(self, sr_uuid, size): self.remotepath = self.dconf['serverpath'] try: self.mount_remotepath(sr_uuid) - except Exception, exn: + except Exception as exn: try: os.rmdir(self.path) except: @@ -193,7 +193,7 @@ def delete(self, sr_uuid): if util.ioretry(lambda: util.pathexists(newpath)): util.ioretry(lambda: os.rmdir(newpath)) self.detach(sr_uuid) - except util.CommandException, inst: + except util.CommandException as inst: self.detach(sr_uuid) if inst.code != errno.ENOENT: raise xs_errors.XenError('NFSDelete') @@ -210,7 +210,7 @@ def _checkmount(self): def scan_exports(self, target): util.SMlog("scanning2 (target=%s)" % target) dom = nfs.scan_exports(target) - print >>sys.stderr,dom.toprettyxml() + print(dom.toprettyxml(), file=sys.stderr) class NFSFileVDI(FileSR.FileVDI): def attach(self, sr_uuid, vdi_uuid): diff --git a/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py b/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py index 68aaeae24724..2f74c36ea2b6 100755 --- a/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py +++ b/scripts/vm/hypervisor/xenserver/xenserver60/NFSSR.py @@ -22,7 +22,7 @@ import errno import os, re, sys import xml.dom.minidom -import xmlrpclib +import xmlrpc.client import xs_errors import nfs import vhdutil @@ -72,19 +72,19 @@ def load(self, sr_uuid): self.lock = Lock(vhdutil.LOCK_TYPE_SR, self.uuid) self.sr_vditype = SR.DEFAULT_TAP self.driver_config = DRIVER_CONFIG - if not self.dconf.has_key('server'): + if 'server' not in self.dconf: raise xs_errors.XenError('ConfigServerMissing') self.remoteserver = self.dconf['server'] self.path = os.path.join(SR.MOUNT_BASE, sr_uuid) # Test for the optional 'nfsoptions' dconf attribute self.transport = DEFAULT_TRANSPORT - if self.dconf.has_key('useUDP') and self.dconf['useUDP'] == 'true': + if 'useUDP' in self.dconf and self.dconf['useUDP'] == 'true': self.transport = "udp" def validate_remotepath(self, scan): - if not self.dconf.has_key('serverpath'): + if 'serverpath' not in self.dconf: if scan: try: self.scan_exports(self.dconf['server']) @@ -98,7 +98,7 @@ def validate_remotepath(self, scan): def check_server(self): try: nfs.check_server_tcp(self.remoteserver) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSVersion', opterr=exc.errstr) @@ -106,7 +106,7 @@ def check_server(self): def mount(self, mountpoint, remotepath): try: nfs.soft_mount(mountpoint, self.remoteserver, remotepath, self.transport) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSMount', opterr=exc.errstr) @@ -157,7 +157,7 @@ def detach(self, sr_uuid): try: nfs.unmount(self.path, True) - except nfs.NfsException, exc: + except nfs.NfsException as exc: raise xs_errors.XenError('NFSUnMount', opterr=exc.errstr) return super(NFSSR, self).detach(sr_uuid) @@ -174,7 +174,7 @@ def create(self, sr_uuid, size): self.remotepath = self.dconf['serverpath'] try: self.mount_remotepath(sr_uuid) - except Exception, exn: + except Exception as exn: try: os.rmdir(self.path) except: @@ -199,7 +199,7 @@ def delete(self, sr_uuid): if util.ioretry(lambda: util.pathexists(newpath)): util.ioretry(lambda: os.rmdir(newpath)) self.detach(sr_uuid) - except util.CommandException, inst: + except util.CommandException as inst: self.detach(sr_uuid) if inst.code != errno.ENOENT: raise xs_errors.XenError('NFSDelete') @@ -216,11 +216,11 @@ def _checkmount(self): def scan_exports(self, target): util.SMlog("scanning2 (target=%s)" % target) dom = nfs.scan_exports(target) - print >>sys.stderr,dom.toprettyxml() + print(dom.toprettyxml(), file=sys.stderr) class NFSFileVDI(FileSR.FileVDI): def attach(self, sr_uuid, vdi_uuid): - if self.sr.srcmd.params.has_key("vdi_ref"): + if "vdi_ref" in self.sr.srcmd.params: try: vdi_ref = self.sr.srcmd.params['vdi_ref'] self.session.xenapi.VDI.remove_from_xenstore_data(vdi_ref, \ @@ -246,8 +246,8 @@ def generate_config(self, sr_uuid, vdi_uuid): resp['command'] = 'vdi_attach_from_config' # Return the 'config' encoded within a normal XMLRPC response so that # we can use the regular response/error parsing code. - config = xmlrpclib.dumps(tuple([resp]), "vdi_attach_from_config") - return xmlrpclib.dumps((config,), "", True) + config = xmlrpc.client.dumps(tuple([resp]), "vdi_attach_from_config") + return xmlrpc.client.dumps((config,), "", True) def attach_from_config(self, sr_uuid, vdi_uuid): """Used for HA State-file only. Will not just attach the VDI but diff --git a/scripts/vm/systemvm/injectkeys.py b/scripts/vm/systemvm/injectkeys.py index 089225503608..4f2c9eb12fea 100644 --- a/scripts/vm/systemvm/injectkeys.py +++ b/scripts/vm/systemvm/injectkeys.py @@ -116,7 +116,7 @@ def copy_priv_key(newKey): return 0 print ("Copying new private key file as it is not matching with old file") shutil.copyfile(newKey, currDir + pathSep + "id_rsa.cloud") - os.chmod(currDir + pathSep + "id_rsa.cloud", 0644) + os.chmod(currDir + pathSep + "id_rsa.cloud", 0o644) return 0 if len(sys.argv) != 4: