diff options
| author | Nehal J Wani <nehaljw.kkd1@gmail.com> | 2014-06-26 04:15:30 +0530 |
|---|---|---|
| committer | Peter Krempa <pkrempa@redhat.com> | 2014-06-27 10:39:19 +0200 |
| commit | bdb64c7641ba158e5bf0344d2386959ff6b21fc4 (patch) | |
| tree | 28e8895b2111066462634eaa92e385115ff99cca /examples/dhcpleases.py | |
| parent | 724df7f11b515507dce0f91dfa5b2e37db21d3c0 (diff) | |
| download | libvirt-python-1.2.6.tar.gz | |
Implement new virNetworkGetDHCPLeases APIv1.2.6-rc2v1.2.6
This API returns a list of DHCP leases for all network interfaces
connected to the given virtual network or limited output just for one
interface if mac is specified.
Example Output:
[{'iface': 'virbr3', 'ipaddr': '192.168.150.181', 'hostname': 'ubuntu14',
'expirytime': 1403737495L, 'prefix': 24, 'clientid': None,
'mac': '52:54:00:e8:73:eb', 'iaid': None, 'type': 0},
{'iface': 'virbr3', 'ipaddr': '2001:db8:ca2:2:1::bd', 'hostname': 'fedora20-test',
'expirytime': 1403738587L, 'prefix': 64, 'clientid': '00:04:b1:d8:86:42:e1:6a:aa:cf:d5:86:94:23:6f:94:04:cd',
'mac': '52:54:00:5b:40:98', 'iaid': '5980312', 'type': 1}]
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Diffstat (limited to 'examples/dhcpleases.py')
| -rwxr-xr-x | examples/dhcpleases.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/dhcpleases.py b/examples/dhcpleases.py new file mode 100755 index 0000000..c172dc2 --- /dev/null +++ b/examples/dhcpleases.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# netdhcpleases - print leases info for given virtual network + +import libvirt +import sys +import time + +def usage(): + print "Usage: %s [URI] NETWORK" % sys.argv[0] + print " Print leases info for a given virtual network" + +uri = None +network = None +args = len(sys.argv) + +if args == 2: + network = sys.argv[1] +elif args == 3: + uri = sys.argv[1] + network = sys.argv[2] +else: + usage() + sys.exit(2) + +conn = libvirt.open(uri) +if conn == None: + print "Unable to open connection to libvirt" + sys.exit(1) + +try: + net = conn.networkLookupByName(network) +except libvirt.libvirtError: + print "Network %s not found" % network + sys.exit(0) + +leases = net.DHCPLeases(); +if (leases == None): + print "Failed to get leases for %s" % net.name() + sys.exit(0) + +def toIPAddrType(addrType): + if addrType == libvirt.VIR_IP_ADDR_TYPE_IPV4: + return "ipv4" + elif addrType == libvirt.VIR_IP_ADDR_TYPE_IPV6: + return "ipv6" + +print " {0:20} {1:18} {2:9} {3:25} {4:15} {5}".format("Expiry Time", "MAC address", "Protocol", "IP address", "Hostname", "Client ID or DUID") +print "-"*115 + +for lease in leases: + print " {0:20}".format(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(lease['expirytime']))), + print "{0:18} {1:9}".format(lease['mac'], toIPAddrType(lease['type'])), + print "{0:<25} {1:15} {2}".format("{}/{}".format(lease['ipaddr'], lease['prefix']), lease['hostname'], lease['clientid']) |
