Porting shell script get-vif.sh to python module get-vif.py for cisco ucsm module
This commit is contained in:
parent
cd46f081ec
commit
7fb19f22ce
|
@ -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
|
Loading…
Reference in New Issue