[Tutor] Using dictionary key values as subprocess arguments
mike at froward.org
mike at froward.org
Thu Aug 1 19:51:48 CEST 2013
Hi all,
I'm trying to use dictionary key values as arguments being passed via
subprocess. The following is supposed to use argv arguments passed for the
target host, and direction to turn the ipmi interface up on or off. When I
run it I get an error about TypeError: format requires a mapping
Any insight would be appreciated, thanks!
#!/usr/bin/env python
from sys import argv
import subprocess
script, targ, switch = argv
ren = {'hostn':'ren.ipmi', 'usern':'Admin', 'passw':'p0w1r'}
stimpy = {'hostn':'stimpy.ipmi', 'usern':'Admin', 'passw':'p0w1r'}
lrrr = {'hostn':'lrrr.ipmi', 'usern':'ADMIN', 'passw':'p0w1r'}
kif = {'hostn':'kif.ipmi', 'usern':'ADMIN', 'passw':'p0w1r'}
ndnd = {'hostn':'ndnd.ipmi', 'usern':'ADMIN', 'passw':'p0w1r'}
zapp = {'hostn':'zapp.ipmi', 'usern':'ADMIN', 'passw':'p0w1r'}
def run():
if switch == "on":
on()
elif switch == "off":
off()
def on():
turnOn = ['ipmitool', '-I', 'lan', '-U', '%(usern)s' % targ, '-P',
'%(passw)s' % targ, '-H', '%(hostn)s' % targ, 'chassis', 'power',
'on']
subprocess.call(turnOn)
print "on!"
def off():
turnOff = ['ipmitool', '-I', 'lan', '-U', '%(usern)s' % targ, '-P',
'%(passw)s' % targ, '-H', '%(hostn)s' % targ, 'chassis', 'power',
'off']
print "off"
subprocess.call(turnOff)
run()
More information about the Tutor
mailing list