1 from pcucontrol.reboot import *
3 ### rebooting european BlackBox PSE boxes
4 # Thierry Parmentelat - May 11 2005
5 # tested on 4-ports models known as PSE505-FR
6 # uses http to POST a data 'P<port>=r'
7 # relies on basic authentication within http1.0
8 # first curl-based script was
9 # curl --http1.0 --basic --user <username>:<password> --data P<port>=r \
10 # http://<hostname>:<http_port>/cmd.html && echo OK
15 class BlackBoxPSMaverick(PCUControl):
16 supported_ports = [80]
18 def run_http(self, node_port, dryrun):
21 cmd = "curl -s --data 'P%s=r' --anyauth --user '%s:%s' http://%s/config/home_f.html" % ( node_port, self.username, self.password, self.host)
23 # else, just try to log in
24 cmd = "curl -s --anyauth --user '%s:%s' http://%s/config/home_f.html" % ( self.username, self.password, self.host)
28 print "RESULT: ", result
30 if len(result.split()) > 3:
35 def bbpse_reboot (pcu_ip,username,password,port_in_pcu,http_port, dryrun):
39 url = "http://%s:%d/cmd.html" % (pcu_ip,http_port)
40 data= "P%d=r" % port_in_pcu
42 logger.debug("POSTing '%s' on %s" % (data,url))
44 authinfo = urllib2.HTTPPasswordMgrWithDefaultRealm()
45 uri = "%s:%d" % (pcu_ip,http_port)
46 authinfo.add_password (None, uri, username, password)
47 authhandler = urllib2.HTTPBasicAuthHandler( authinfo )
49 opener = urllib2.build_opener(authhandler)
50 urllib2.install_opener(opener)
56 f = urllib2.urlopen(url,data)
63 except urllib2.URLError,err:
64 logger.info('Could not open http connection', err)