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 | |
| 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')
| -rw-r--r-- | examples/README | 1 | ||||
| -rwxr-xr-x | examples/dhcpleases.py | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/examples/README b/examples/README index f4db76c..5b5d405 100644 --- a/examples/README +++ b/examples/README @@ -10,6 +10,7 @@ domsave.py - save all running domU's into a directory domrestore.py - restore domU's from their saved files in a directory esxlist.py - list active domains of an VMware ESX host and print some info. also demonstrates how to use the libvirt.openAuth() method +dhcpleases.py - list dhcp leases for a given virtual network The XML files in this directory are examples of the XML format that libvirt expects, and will have to be adapted for your setup. They are only needed 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']) |
