From 769e8993000525e9163e936f6c546380cd67e700 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Thu, 20 May 2010 15:23:21 +0000 Subject: [PATCH] fix ePowerSwitchOld --- pcucontrol/models/ePowerSwitch.py | 71 ++++++++----------------------- 1 file changed, 18 insertions(+), 53 deletions(-) diff --git a/pcucontrol/models/ePowerSwitch.py b/pcucontrol/models/ePowerSwitch.py index 75e552a..35b7253 100644 --- a/pcucontrol/models/ePowerSwitch.py +++ b/pcucontrol/models/ePowerSwitch.py @@ -64,59 +64,24 @@ class ePowerSwitchNew(PCUControl): return 0 class ePowerSwitchOld(PCUControl): - def run_http(self, node_port, dryrun): - self.url = "http://%s:%d/" % (self.host,80) - uri = "%s:%d" % (self.host,80) - - # create authinfo - authinfo = urllib2.HTTPPasswordMgrWithDefaultRealm() - authinfo.add_password (None, uri, self.username, self.password) - authhandler = urllib2.HTTPBasicAuthHandler( authinfo ) - - # NOTE: it doesn't seem to matter whether this authinfo is here or not. - transport = urllib2.build_opener(authinfo) - f = transport.open(self.url) - if self.transport.verbose: print f.read() + supported_ports = [80] + def run_http(self, node_port, dryrun): + self.url = "http://%s" % (self.host) + + authinfo = { "pwd" : self.password } + data = urllib.urlencode(authinfo) + req = urllib2.Request(self.url + "/elogin.html", data) + print self.url + print data + response = urllib2.urlopen(req) + reply = response.read() if not dryrun: - transport = urllib2.build_opener(authhandler) - f = transport.open(self.url + "cmd.html", "P%d=r" % node_port) - if self.transport.verbose: print f.read() - - self.transport.close() - return 0 - -class ePowerSwitchOld(PCUControl): - supported_ports = [80] - def run_http(self, node_port, dryrun): - self.url = "http://%s:%d/" % (self.host,80) - uri = "%s:%d" % (self.host,80) - - # TODO: I'm still not sure what the deal is here. - # two independent calls appear to need to be made before the - # reboot will succeed. It doesn't seem to be possible to do - # this with a single call. I have no idea why. - - # create authinfo - authinfo = urllib2.HTTPPasswordMgrWithDefaultRealm() - authinfo.add_password (None, uri, self.username, self.password) - authhandler = urllib2.HTTPBasicAuthHandler( authinfo ) - - # NOTE: it doesn't seem to matter whether this authinfo is here or not. - transport = urllib2.build_opener() - f = transport.open(self.url + "elogin.html", "pwd=%s" % self.password) - if self.transport.verbose: print f.read() - - if not dryrun: - transport = urllib2.build_opener(authhandler) - f = transport.open(self.url + "econtrol.html", "P%d=r" % node_port) - if self.transport.verbose: print f.read() - - # data= "P%d=r" % node_port - #self.open(self.host, self.username, self.password) - #self.sendHTTP("elogin.html", "pwd=%s" % self.password) - #self.sendHTTP("econtrol.html", data) - #self.sendHTTP("cmd.html", data) + try: + data = urllib.urlencode({'P%d' % node_port : "r"}) + req = urllib2.Request(self.url + "econtrol.html") + f = urllib2.urlopen(req, data) + except: + import traceback; traceback.print_exc() - #self.close() - return 0 + return 0 -- 2.43.0