Last change
on this file since 13961 was 10256, checked in by richardvm, 13 years ago |
duplicate rule: detected by Rick
|
-
Property svn:executable
set to
*
|
File size:
1015 bytes
|
Rev | Line | |
---|
[10252] | 1 | #!/usr/bin/env python
|
---|
| 2 |
|
---|
| 3 | import gformat
|
---|
| 4 |
|
---|
| 5 | nodes = gformat.get_nodelist()
|
---|
| 6 |
|
---|
| 7 | def list_ips(ip):
|
---|
| 8 | addr, mask = ip.split('/')[0], ip.split('/')[1]
|
---|
| 9 |
|
---|
| 10 | mask = 2 ** (32 - int(mask))
|
---|
| 11 | mask = int(mask)
|
---|
| 12 | addr = addr.split('.')
|
---|
| 13 | fourth = addr[3]
|
---|
| 14 | fourth = int(fourth)
|
---|
| 15 | start = fourth - (fourth % mask)
|
---|
| 16 | start = int(start)
|
---|
| 17 | end = int(start) + int(mask)
|
---|
| 18 | end = int(end)
|
---|
| 19 |
|
---|
| 20 | listing = []
|
---|
| 21 | for i in range(start, end):
|
---|
| 22 | ip2 = "%s.%s.%s.%i" % (addr[0], addr[1], addr[2], i)
|
---|
| 23 | listing.append(ip2)
|
---|
| 24 |
|
---|
| 25 | return listing
|
---|
| 26 |
|
---|
| 27 | f = open('client-ips.txt','w')
|
---|
| 28 |
|
---|
| 29 | for node in nodes:
|
---|
| 30 | ifaces = gformat.get_yaml(node)['interfaces'].split(',')
|
---|
| 31 | for iface in ifaces:
|
---|
[10255] | 32 | if gformat.get_yaml(node)['iface_%s' % iface]['dhcp'] == "no" :
|
---|
| 33 | continue
|
---|
| 34 | if gformat.get_yaml(node)['iface_%s' % iface]['dhcp'] == "False" :
|
---|
| 35 | continue
|
---|
[10252] | 36 | ip = gformat.get_yaml(node)['iface_%s' % iface]['ip']
|
---|
| 37 | node_short = node.replace('CNode', '').lower()
|
---|
| 38 | for client in list_ips(ip):
|
---|
| 39 | f.write("%s %s\n" % (node_short, client))
|
---|
| 40 |
|
---|
| 41 | f.close()
|
---|
Note:
See
TracBrowser
for help on using the repository browser.