Porting shell script get-vif.sh to python module get-vif.py for cisco ucsm module

This commit is contained in:
rohitagarwalla roagarwa@cisco.com 2011-07-13 12:39:09 -07:00
parent cd46f081ec
commit 7fb19f22ce
1 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,37 @@
import sys
import subprocess
def get_next_dynic(argv=[]):
cmd = ["ifconfig", "-a"]
f_cmd_output = subprocess.Popen(cmd, stdout=subprocess.PIPE).\
communicate()[0]
eths = [lines.split(' ')[0] for lines in f_cmd_output.splitlines() \
if "eth" in lines]
#print eths
for eth in eths:
cmd = ["ethtool", "-i", eth]
f_cmd_output = subprocess.Popen(cmd, stdout=subprocess.PIPE).\
communicate()[0]
bdf = [lines.split(' ')[1] for lines in f_cmd_output.splitlines() \
if "bus-info" in lines]
#print bdf
cmd = ["lspci", "-n", "-s", bdf[0]]
f_cmd_output = subprocess.Popen(cmd, stdout=subprocess.PIPE).\
communicate()[0]
deviceid = [(lines.split(':')[3]).split(' ')[0] \
for lines in f_cmd_output.splitlines()]
#print deviceid
if deviceid[0] == "0044":
cmd = ["/usr/sbin/ip", "link", "show", eth]
f_cmd_output = subprocess.Popen(cmd, stdout=subprocess.PIPE).\
communicate()[0]
used = [lines for lines in f_cmd_output.splitlines() \
if "UP" in lines]
if not used:
break
return eth
if __name__ == '__main__':
nic = get_next_dynic(sys.argv)
print nic