improve http and xmlrpc interfaces
This commit is contained in:
@ -25,7 +25,7 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
cls.entries = entries
|
||||
cls.adminPwd = adminPwd
|
||||
cls.dnsq = dnsq
|
||||
cls.nullAddress = nullAdress
|
||||
cls.nullAddress = nullAddress
|
||||
|
||||
def do_GET(self):
|
||||
Logger.log("Request: %s, %s" % (self.path, self.client_address))
|
||||
@ -40,17 +40,19 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
if cmd == 'register':
|
||||
self.register(c)
|
||||
elif cmd == 'start':
|
||||
self.setAddress(c, self.client_address[0])
|
||||
self.setAddress(c, self.client_address[0])
|
||||
elif cmd == 'stop':
|
||||
self.setAddress(c, HttpCmdHandler.nullAddress)
|
||||
self.setAddress(c, HttpCmdHandler.nullAddress)
|
||||
else:
|
||||
raise LocalException('unknown cmd')
|
||||
|
||||
self.send_response(200, "OK")
|
||||
self.send_header("Content-Length", "0")
|
||||
self.end_headers()
|
||||
except IllegalEventException, e:
|
||||
Logger.log("Some failure (%s), not notifying user" % e.msg)
|
||||
self.send_response(200, "OK")
|
||||
self.send_header("Content-Length", "0")
|
||||
self.end_headers()
|
||||
except AdminFuncs.AdminFuncException, e:
|
||||
self.send_response(400, e.msg)
|
||||
@ -59,6 +61,7 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
self.send_response(400, e.msg)
|
||||
self.end_headers()
|
||||
|
||||
|
||||
def register(self, c):
|
||||
try:
|
||||
dynid = c['dynid'][0]
|
||||
@ -69,17 +72,17 @@ class HttpCmdHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||
except KeyError, e:
|
||||
raise LocalException('Parameter missing: ' + str(e))
|
||||
|
||||
AdminFuncs.register(dynid, subdomain, zone, sharedSecret)
|
||||
AdminFuncs.AdminFuncs.register(dynid, subdomain, zone, sharedSecret, checkSum)
|
||||
|
||||
def setAddress(self, c, address):
|
||||
try:
|
||||
dynId = c['dynid'][0]
|
||||
sharedSecret = c['sharedsecret'][0]
|
||||
except KeyError, e:
|
||||
raise LocalException('Parameter missing: ' + str(e))
|
||||
raise LocalException('Parameter missing: ' + str(e))
|
||||
|
||||
if not HttpCmdHandler.entries.has_key(dynId):
|
||||
raise IllegalEventException("unknown dynid %s" % dynId)
|
||||
raise IllegalEventException("unknown dynid %s" % dynId)
|
||||
|
||||
entry = HttpCmdHandler.entries[dynId]
|
||||
|
||||
|
Reference in New Issue
Block a user