Exemple #1
0
def view_kbase(server_name, url_suff, limit=1, kbase_id=None):
    full_addr = server_name + url_suff["view_kbase"]
    response_list = []
    if kbase_id:
        full_addr += kbase_id
        req = HTTPRequest(full_addr, "GET")
        response = req.get()
        response_dict = response.json()
        if response_dict.status_code == 200:
            response_list.append(response_dict)
    else:
        full_addr += '?limit={0}'.format(limit)
        req = HTTPRequest(full_addr, "GET")
        response = req.get()
        response_dict = response.json()
        if response.status_code == 200:
            response_list = [response_dict]
            while response_dict.get("nextUri", 'null') != 'null':
                full_addr = server_name + url_suff["view_kbase"]
                full_addr += '?limit={0}'.format(limit)
                full_addr += response_dict.get("nextUri")
                req = HTTPRequest(full_addr, "GET")
                response = req.get()
                response_dict = response.json()
                if response.status_code == 200:
                    response_list.append(response_dict)

    return response_list
def view_ctg(server_name, url_suff, kbase_id, lang_code, ctg_id=None, limit=1):
    full_addr = server_name + url_suff["view_ctg"]
    response_list = []
    if ctg_id:
        full_addr += '/{categoryId}'
        full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                     languageCode=lang_code,
                                     categoryId=ctg_id)
        req = HTTPRequest(full_addr, "GET")
        response = req.get()
        response_list.append(response.json())

    else:
        # if there is a limit, limit your request
        full_addr += '?limit={limit_num}'
        full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                     languageCode=lang_code,
                                     categoryId=ctg_id,
                                     limit_num=limit)
        req = HTTPRequest(full_addr, "GET")
        response = req.get()
        response_dict = response.json()
        response_list = [response_dict]
        while response_dict.get("nextUri", 'null') != 'null':
            full_addr = server_name + url_suff["view_ctg"]
            full_addr += '?limit={0}'.format(limit)
            full_addr += response["nextUri"]
            req = HTTPRequest(full_addr, "GET")
            response = req.get()
            response_dict = response.json()
            response_list.append(response_dict)

    return response_list
Exemple #3
0
 def test_sendRequest(self):
     req = HTTPRequest("tests/testReq1", isTLS=True, verify=False)
     req.send()
     self.assertTrue("buildVersion" in req.response.text)
     req = HTTPRequest("tests/testReqPost1", isTLS=True, verify=True)
     req.send()
     self.assertTrue("Brainloop Web" in req.response.text)
     con = Connection(isTLS=True, verify=False)
     req = HTTPRequest("tests/testReqPost1", connection=con)
     req.send()
     self.assertTrue("Brainloop Web" in req.response.text)
     req = HTTPRequest("tests/reqHEAD1", connection=con)
     req.send()
     self.assertTrue(req.response.status_code == 405)
def create_kbase(server_name,
                 url_suff,
                 payload_info,
                 org_id,
                 token,
                 kbase_responses={}):

    # Check if # of databases exceeds limit (5)
    if len(kbase_responses.items()) == 5:
        return {},

    full_addr = server_name + url_suff["create_kbase"]

    req = HTTPRequest(full_addr, "POST")

    for key in payload_info.keys():
        req.payload_append(key, payload_info[key])

    #'Content-Type': "application/json",
    #'organizationid': "3ae6bd8b-23b6-47c7-a9a0-8dc56833ca18",
    #'token': "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcmdJZCI6IjNhZTZiZDhiLTIzYjYtNDdjNy1hOWEwLThkYzU2ODMzY2ExOCIsImV4cCI6MTU3MTUxNjYyOCwiaWF0IjoxNTcxNTEzMDI4fQ.S1mQ4sdeSaPhTCwUodVOb6QW3yOzTnQKOunSU732SSI",
    #'cache-control': "no-cache",
    req.add_header("Content-Type", "application/json")
    req.add_header("organizationid", org_id)
    req.add_header("token", token)
    req.add_header("cache-control", "no-cache")

    response = req.post()
    print(response)
    print("response: ", response.json())
Exemple #5
0
 def update_proxies(self, wait=True):
     Logger.message('ProxyManager: Updating proxy list')
     proxy_list = HTTPRequest(
         self._proxies_list_url).read().splitlines(False)
     if len(proxy_list) == 0:
         Logger.error(
             'ProxyManager: Could not retrieve proxy list from server')
     if len(proxy_list) == 1:
         if wait:
             Logger.message(
                 'ProxyManager: Waiting for access to proxy list')
             time.sleep(30)
             self.update_proxies()
         return
     for proxy in proxy_list:
         if proxy not in self._proxies:
             self._proxies.append(proxy)
             if proxy in self._deleted_proxies:
                 Logger.message(
                     'ProxyManager: Added previously removed proxy {} as suspicious'
                     .format(proxy))
                 self._suspect_proxies.append(proxy)
             else:
                 Logger.message(
                     'ProxyManager: Added proxy {}'.format(proxy))
     if len(self._proxies) == 0:
         Logger.error('ProxyManager: Proxy list is empty')
         return False
     return True
Exemple #6
0
def getHttp(data):
    request = HTTPRequest(data)
    # print request.error_code       # None  (check this first)
    # print request.command          # "GET"
    print request.path  # "/who/ken/trust.html"
    # print request.request_version  # "HTTP/1.1"
    # print len(request.headers)     # 3
    # print request.headers.keys()   # ['accept-charset', 'host', 'accept']
    print request.headers['host']  # "cm.bell-labs.com"
    # print request.headers;
    ######
    # req = urllib2.Request(getIp(request.headers['host']),headers=request.headers)
    # for key in request.headers:
    #     print key+":"+request.headers[key]
    #     req.add_header(key, request.headers[key])
    # res = urllib2.urlopen("http://"+request.headers['host'])
    # res=urllib2.urlopen(req)
    # print res.info()
    # return res
    #####
    dictHeader = {}  #构造包头
    for key in request.headers:
        dictHeader[key] = request.headers[key]
    conn = httplib.HTTPConnection(getIp(request.headers['host']))
    conn.request(request.command, request.path, "", dictHeader)
    r1 = conn.getresponse()
    # print r1.status, r1.reason
    returnData = str(request.request_version) + " " + str(
        r1.status) + " " + str(r1.reason) + "\n" + str(r1.msg) + "\n" + str(
            r1.read())
    # print "返回的数据包包头\n"+returnData
    # logCommand(returnData)
    return returnData
Exemple #7
0
def mod_docs(server_name, url_suff, kbase_id, lang_code, payloads, categories={}):
    full_addr = server_name + url_suff["mod_docs"]
    full_addr = full_addr.format(knowledgebaseID=kbase_id,
                                 languageCode=lang_code)
    responses = ()
    request_count = 0
    req = HTTPRequest(full_addr, "PATCH")

    for payload in payloads:
        request_count += 1
        req.payload_append("type", "Faq")
        key = "faq"
        val = {"question": payload["question"],
               "answer": payload["answer"],
               "alternatives": payload["alternatives"]}
        req.payload_append(key, val)
        key = "categories"
        val = []
        for elem1, elem2 in categories.items():
            val.append({elem1: elem2})
        req.payload_append(key, val)
        req.payload_append("externalUrl", "")
        response = req.patch()
        response_dict = response.json()
        responses += ((response_dict.get('id', request_count), response.status_code), )

    return responses
Exemple #8
0
def search(server_name,
           url_suff,
           kbase_id,
           req_payload,
           org_id,
           token,
           search_size=1):

    full_addr = server_name + url_suff["search"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id)

    req = HTTPRequest(full_addr, "POST")

    for key in req_payload.keys():
        req.payload_append(key, req_payload[key])
    req.payload_append("pageSize", search_size)
    req.payload_append("pageNumber", 1)
    req.payload_append("languageCode", "en-US")
    req.payload_append("documentType", "Faq")

    req.add_header("Content-Type", "application/json")
    req.add_header("organizationid", org_id)
    req.add_header("token", token)
    req.add_header("cache-control", "no-cache")

    response = (req.post())
    print("Response status: ", response.status_code)
    resp_json = response.json()
    if resp_json.get("results"):
        results = resp_json["results"]
    else:
        results = []

    return results
Exemple #9
0
def create_kbase(server_name, url_suff, payload_info, kbase_responses={}):

    # Check if # of databases exceeds limit (5)
    if len(kbase_responses.items()) == 5:
        return {},

    full_addr = server_name + url_suff["create_kbase"]

    req = HTTPRequest(full_addr, "POST")

    for key in payload_info.keys():
        req.payload_append(key, payload_info[key])

    response = req.post()

    resp_id = response.json().get("id")
    kbase_responses['status_code'] = response.status_code
    if resp_id:
        kbase_responses[resp_id] = (response["dateCreated"],
                                    response["dateModified"],
                                    response["selfUri"])
    else:
        return kbase_responses

    return kbase_responses
Exemple #10
0
def upload_doc(server_name, url_suff, kbase_id, lang_code, payload, org_id, token, categories={}):
    full_addr = server_name + url_suff["upload_doc"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code)
    req = HTTPRequest(full_addr, "POST")
    req.payload_append("type", "faq")
    key = "faq"
    val = {"question": payload["question"],
           "answer": payload["answer"],
           "alternatives": []}
    req.payload_append(key, val)
    key = "categories"
    val = []
    for elem1, elem2 in categories.items():
        val.append({elem1: elem2})
    req.payload_append(key, val)
    req.payload_append("externalUrl", "")

    req.add_header("Content-Type", "application/json")
    req.add_header("organizationid", org_id)
    req.add_header("token", token)
    req.add_header("cache-control", "no-cache")

    response = req.post()
    print("RESPONSE CODE: ",response.status_code)
    print("RESPONSE JSON: ",response.json())
    return response.status_code
Exemple #11
0
 def sendNotify(self, method, params):
     # jsonrpc: A String specifying the version of the JSON-RPC protocol.
     #          MUST be exactly "2.0"
     #          If jsonrpc is missing, the server MAY handle the Request as
     #          JSON-RPC V1.0-Request.
     # version: String specifying the version of the JSON-RPC protocol.
     #          MUST be exactly "1.1"
     # NOTE: We send both, to indicate that we can handle both.
     #
     # id:      If omitted, the Request is a Notification
     #          NOTE: JSON-RPC 1.0 uses an id of Null for Notifications.
     # method:  A String containing the name of the procedure to be invoked.
     # params:  An Array or Object, that holds the actual parameter values
     #          for the invocation of the procedure. Can be omitted if
     #          empty.
     #          NOTE: JSON-RPC 1.0 only a non-empty Array is used
     # From the spec of 1.1:
     #     The Content-Type MUST be specified and # SHOULD read
     #     application/json.
     #     The Accept MUST be specified and SHOULD read application/json.
     #
     msg = {
         "jsonrpc": "2.0",
         "version": "1.1",
         "method": method,
         "params": params
     }
     msg_data = dumps(msg)
     if not HTTPRequest().asyncPost(self.url, msg_data, self, False,
                                    "text/json", self.headers):
         return -1
     return 1
Exemple #12
0
    def handle_request(self, data):

        request = HTTPRequest(data)

        operations = request.method.split(
        )  # We assume the operands will be space seperated

        n = len(operations)

        if (n - 1) % 2 != 0:
            return FORMAT_STRING

        try:
            ans = int(operations[0])
        except:
            return FORMAT_STRING

        i = 0
        try:
            while i < n - 1:
                if operations[i + 1] == "+":
                    ans += int(operations[i + 2])
                elif operations[i + 1] == "-":
                    ans -= int(operations[i + 2])
                elif operations[i + 1] == "*":
                    ans *= int(operations[i + 2])
                elif operations[i + 1] == "/":
                    ans /= int(operations[i + 2])
                else:
                    return FORMAT_STRING
                i += 2
        except:
            return FORMAT_STRING

        return str(ans).encode('utf8')
def view_kbase(server_name, url_suff, org_id, token, limit=1, kbase_id=None):

    full_addr = server_name + url_suff["view_kbase"]
    response_list = []
    print('kbase_id in view_kbase', kbase_id)
    if kbase_id:
        full_addr += '/' + kbase_id
        req = HTTPRequest(full_addr, "GET")
        req.add_header("Content-Type", "application/json")
        req.add_header("organizationid", org_id)
        req.add_header("token", token)
        req.add_header("cache-control", "no-cache")
        response = req.get()
        response_dict = response.json()
        if response_dict.status_code == 200:
            response_list.append(response_dict)
    else:
        full_addr += '?limit={0}'.format(limit)
        req = HTTPRequest(full_addr, "GET")
        req.add_header("Content-Type", "application/json")
        req.add_header("organizationid", org_id)
        req.add_header("token", token)
        req.add_header("cache-control", "no-cache")
        response = req.get()
        print("Response:", response)
        response_dict = response.json()
        if response.status_code == 200:

            response_list = response_dict["entities"]
            print("Resp List", response_list)

            # while response_dict.get("nextUri") != None:
            #     print("in loop")
            #     full_addr = server_name + url_suff["view_kbase"]
            #     full_addr += '?limit={0}'.format(limit)
            #     full_addr += response_dict.get("nextUri")
            #     req = HTTPRequest(full_addr, "GET")
            #     response = req.get()
            #     response_dict = response.json()
            #     if response.status_code == 200:
            #         response_list.append(response_dict)
            ret_list = []
            for elem in response_list:
                ret_list.append(elem['id'])
            return ret_list

    return response_list
Exemple #14
0
def delete_kbase(server_name, url_suff, kbase_id):
    full_addr = server_name + url_suff["delete_kbase"]
    full_addr += kbase_id
    req = HTTPRequest(full_addr, "DELETE")
    response = req.delete()
    response_result = response.json()
    response_result['status_code'] = response.status_code
    return response_result
Exemple #15
0
def delete_doc(server_name, url_suff, kbase_id, lang_code, doc_id):
    full_addr = server_name + url_suff["delete_doc"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 documentId=doc_id)
    req = HTTPRequest(full_addr, "DELETE")
    response = req.delete()
    return response.status_code
Exemple #16
0
 def test_importRequest(self):
     req = HTTPRequest("tests/testReq1", isTLS=True, verify=False)
     self.assertEqual(req.command, "GET")
     self.assertEqual(len(req.headers), 11)
     req = HTTPRequest("tests/testReqPost1", isTLS=True, verify=True)
     self.assertEqual(req.command, "POST")
     self.assertEqual(len(req.headers), 12)
     self.assertTrue("antoine.scemama" in str(req.postBody))
     con = Connection(isTLS=True,
                      verify=False,
                      proxies={
                          'http': 'http://127.0.0.1:8080',
                          'https': 'http://127.0.0.1:8080',
                      })
     req = HTTPRequest("tests/testReqPost1", connection=con)
     self.assertEqual(req.command, "POST")
     self.assertEqual(len(req.headers), 12)
     self.assertTrue("antoine.scemama" in str(req.postBody))
def delete_ctg(server_name, url_suff, kbase_id, lang_code, ctg_id):

    full_addr = server_name + url_suff["delete_ctg"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 categoryId=ctg_id)
    req = HTTPRequest(full_addr, "DELETE")
    response = req.delete()
    return response.status_code
Exemple #18
0
    def getURL(self, *args, **kwargs):
        """ see HTTPRequest for argument list """
        h = HTTPRequest(None, self.getOptions())
        try:
            rep = h.load(*args, **kwargs)
        finally:
            h.close()

        return rep
Exemple #19
0
def update_kbase(server_name, url_suff, payload_info, kbase_id):
    full_addr = server_name + url_suff["update_kbase"]
    full_addr += kbase_id
    req = HTTPRequest(full_addr, "PUT")
    for key in payload_info.keys():
        req.payload_append(key, payload_info[key])
    response = req.put()
    response_result = response.json()
    response_result['status_code'] = response.status_code
    return response_result
    def __sendRequest(self, method, params, handler):
        id = pygwt.getNextHashId()
        msg = {"id": id, "method": method, "params": params}
        msg_data = self.parser.encode(msg)

        request_info = JSONRequestInfo(id, method, handler)
        if not HTTPRequest().asyncPost(self.url, msg_data,
                                       JSONResponseTextHandler(request_info)):
            return -1
        return id
def update_ctg(server_name, url_suff, kbase_id, lang_code, ctg_id):

    full_addr = server_name + url_suff["update_ctg"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 categoryId=ctg_id)
    req = HTTPRequest(full_addr, "PUT")
    for key in payload_info_ctg.keys():
        req.payload_append(key, payload_info_ctg[key])
    response = req.put()
    return response.status_code
Exemple #22
0
def view_doc(server_name, url_suff, kbase_id, lang_code, doc_id):
    full_addr = server_name + url_suff["view_doc"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 documentId=doc_id)
    req = HTTPRequest(full_addr, "GET")
    response_list = []
    response = req.get()
    if response.status_code == 200:
        response_list.append(response.json())
    return response_list
    def sendRequest(self, method, params, handler):
        id = nextRequestID()
        msg = {"jsonrpc": "2.0", "id": id, "method": method, "params": params}
        msg_data = dumps(msg)

        request_info = JSONRequestInfo(id, method, handler)
        if not HTTPRequest().asyncPost(self.url, msg_data,
                                       JSONResponseTextHandler(request_info),
                                       False, self.content_type, self.headers):
            return -1
        return id
Exemple #24
0
 def load(self, base_url=None, domain=None, lang=None, onCompletion=None, onError=None):
     if base_url is None:
         base_url = self.base_url
     if domain is None:
         domain = self.domain
     url = base_url
     if domain is not None and lang is not None:
         url = "%s/%s_%s.json" % (url, domain, lang)
     self.new_catalog(base_url, domain, lang)
     self._onCompletion = onCompletion
     self._onError = onError
     HTTPRequest().asyncGet(url, self)
def delete_kbase(org_id, token, server_name, url_suff, kbase_id):
    print("IN DELETE!!!!")
    full_addr = server_name + url_suff["delete_kbase"]
    full_addr += kbase_id
    req = HTTPRequest(full_addr, "DELETE")
    req.add_header("Content-Type", "application/json")
    req.add_header("organizationid", org_id)
    req.add_header("token", token)
    req.add_header("cache-control", "no-cache")
    response = req.delete()
    print("Response: ", response, ", Response Code:", response.status_code)
    return response.status_code
Exemple #26
0
    def handle_request(self, data):
        # create an instance of HTTPRequest
        request = HTTPRequest(data)

        # Calling the Appropriate handler
        try:
            handler = getattr(self, "handle_" + request.method)
        except AttributeError:
            handler = self.HTTP_501_handler

        response = handler(request)

        return response
Exemple #27
0
def view_doc(server_name, url_suff, kbase_id, lang_code, doc_id, org_id, token):
    full_addr = server_name + url_suff["view_doc"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 documentId=doc_id)

    req = HTTPRequest(full_addr, "GET")
    #response_list = []
    req.add_header("Content-Type", "application/json")
    req.add_header("organizationid", org_id)
    req.add_header("token", token)
    req.add_header("cache-control", "no-cache")
    response = req.get()
    return response.json()
Exemple #28
0
def view_docs(server_name, url_suff, kbase_id, lang_code, limit=1):
    full_addr = server_name + url_suff["view_docs"]
    full_addr += '?limit={limit_num}'
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 limit_num=limit)
    req = HTTPRequest(full_addr, "GET")
    response = req.get()
    response_dict = response.json()
    response_list = [response_dict]
    while response_dict.get("nextUri", 'null') != 'null':
        full_addr = server_name + url_suff["view_docs"]
        full_addr += '?limit={limit_num}'
        full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                     languageCode=lang_code,
                                     limit_num=limit)
        full_addr += response["nextUri"]
        req = HTTPRequest(full_addr, "GET")
        response = req.get()
        response_dict = response.json()
        response_list.append(response_dict)

    return response_list
Exemple #29
0
def view_trained_model_list(server_name,
                            url_suff,
                            kbase_id,
                            lang_code,
                            model_limit=1):

    full_addr = server_name + url_suff["view_trained_model_list"]
    full_addr = full_addr.format(knowledgebaseId=kbase_id,
                                 languageCode=lang_code,
                                 limit=model_limit)

    req = HTTPRequest(full_addr, "GET")
    response = (req.get())

    req_list = response.json()
Exemple #30
0
 def checkHeader(self):
     if "\r\n\r\n" in self.header:
         # end of header found, lets check it
         self.logger.debug("--------------HEADER START---------------")
         self.logger.debug(self.header)
         self.logger.debug("---------------HEADER END----------------")
         request = HTTPRequest(self.header)
         if request.error_code == None:
             if request.command != "ACE":
                 return (405, "Method Not Allowed")
             if request.path != "/ace":
                 return (404, "Not Found")
         else:
             return (request.error_code, request.error_message)
         return True
     else:
         return False