import httplib import json class SBHTTPClient(object): def __init__(self, addr, port, path): self.path = path self.addr = addr self.port = port self.connection = None def request(self, method, path, body, headers=None): if self.connection is not None: self.connection.close() self.connection = httplib.HTTPConnection(self.addr, self.port) if headers is None: headers = {} return self.connection.request(method, path, body, headers) def getresponse(self): res = self.connection.getresponse() if res.status != 200: raise Exception("Request failed : {} ({})".format(res.reason, res.status)) try: res.body = json.loads(res.read()) except: raise Exception("Cannot parse response") return res def query(self, cmd): body = '{{"name" : "{}"}}'.format(cmd) if cmd == "debug.stop_server" or cmd == "stitcher.stop_stream": try: self.request('POST', self.path, body) except: pass else: self.request('POST', self.path, body) def query_with_body(self, body): self.request('POST', self.path, json.dumps(body))