diff options
author | Radostin Stoyanov <rstoyanov@fedoraproject.org> | 2020-07-15 10:54:14 +0100 |
---|---|---|
committer | Radostin Stoyanov <rstoyanov@fedoraproject.org> | 2020-07-15 11:05:35 +0100 |
commit | ed545f9ffff405941f9608e90cd25627d30e8bbd (patch) | |
tree | a6e24b0e9407a2c383111b8a906ec25028ba001d | |
parent | c1b9384759bb18d6d2620e1c693f583ae1684f08 (diff) | |
download | libvirt-python-ed545f9ffff405941f9608e90cd25627d30e8bbd.tar.gz |
examples: Refactor domipaddrs
This patch makes domipaddrs example compatible with Python3.
Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
-rwxr-xr-x | examples/domipaddrs.py | 106 |
1 files changed, 55 insertions, 51 deletions
diff --git a/examples/domipaddrs.py b/examples/domipaddrs.py index e893995..be30fd6 100755 --- a/examples/domipaddrs.py +++ b/examples/domipaddrs.py @@ -4,55 +4,59 @@ import libvirt import sys -def usage(): - print "Usage: %s [URI] DOMAIN" % sys.argv[0] - print " Print domain interfaces along with their MAC and IP addresses" - -uri = None -name = None -args = len(sys.argv) - -if args == 2: - name = sys.argv[1] -elif args == 3: - uri = sys.argv[1] - name = sys.argv[2] -else: - usage() - sys.exit(2) - -try: - conn = libvirt.open(uri) -except libvirt.libvirtError: - print "Unable to open connection to libvirt" - sys.exit(1) - -try: - dom = conn.lookupByName(name) -except libvirt.libvirtError: - print "Domain %s not found" % name - sys.exit(0) - -ifaces = dom.interfaceAddresses(libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE); -if (ifaces == None): - print "Failed to get domain interfaces" - sys.exit(0) - -print " {0:10} {1:20} {2:12} {3}".format("Interface", "MAC address", "Protocol", "Address") - -def toIPAddrType(addrType): - if addrType == libvirt.VIR_IP_ADDR_TYPE_IPV4: - return "ipv4" - elif addrType == libvirt.VIR_IP_ADDR_TYPE_IPV6: - return "ipv6" - -for (name, val) in ifaces.iteritems(): - if val['addrs']: - for addr in val['addrs']: - print " {0:10} {1:19}".format(name, val['hwaddr']), - print " {0:12} {1}/{2} ".format(toIPAddrType(addr['type']), addr['addr'], addr['prefix']), - print +IPTYPE = { + libvirt.VIR_IP_ADDR_TYPE_IPV4: "ipv4", + libvirt.VIR_IP_ADDR_TYPE_IPV6: "ipv6", +} + + +def print_dom_ifaces(dom): + ifaces = dom.interfaceAddresses(libvirt.VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE) + if (ifaces == None): + print("Failed to get domain interfaces") + sys.exit(0) + + print(" {0:10} {1:20} {2:12} {3}".format( + "Interface", "MAC address", "Protocol", "Address")) + + for (name, val) in ifaces.items(): + if val['addrs']: + for addr in val['addrs']: + print (" {0:10} {1:19} {2:12} {3}/{4}".format( + name, + val['hwaddr'], + IPTYPE[addr['type']], + addr['addr'], + addr['prefix'])) + else: + print(" {0:10} {1:19} {2:12} {3}".format(name, val['hwaddr'], "N/A", "N/A")) + + +if __name__ == "__main__": + uri = None + name = None + args = len(sys.argv) + + if args == 2: + name = sys.argv[1] + elif args == 3: + uri = sys.argv[1] + name = sys.argv[2] else: - print " {0:10} {1:19}".format(name, val['hwaddr']), - print " {0:12} {1}".format("N/A", "N/A"), - print + print("Usage: %s [URI] DOMAIN" % sys.argv[0]) + print(" Print domain interfaces along with their MAC and IP addresses") + sys.exit(2) + + try: + conn = libvirt.open(uri) + except libvirt.libvirtError: + raise SystemExit("Unable to open connection to libvirt") + + try: + dom = conn.lookupByName(name) + except libvirt.libvirtError: + print("Domain %s not found" % name) + sys.exit(0) + + print_dom_ifaces(dom) + conn.close() |