Esempio n. 1
0
def subMgmtReq(fN, req):
    xml = req.generateXML()
    HEADERS['Content-Length'] = str(len(xml))
    conn = Http()
    conn.add_certificate(config.KEY, config.CERT, '')
    responseHeaders, responseBody = conn.request(config.LAYER7_URL+'/subscription', 'POST', body=xml, headers=HEADERS)
    print 'Response XML: '+responseBody+'\n'
Esempio n. 2
0
def _http():
    """Shortcut for httplib2.Http with module-specific options."""
    ret = Http(**_HTTPLIB2_OPTIONS)
    for username, password in _HTTPLIB2_CREDENTIALS:
        ret.add_credentials(username, password)
    for key, cert, domain in _HTTPLIB2_CERTIFICATES:
        ret.add_certificate(key, cert, domain)
    return ret
Esempio n. 3
0
def _http():
    """Shortcut for httplib2.Http with module-specific options."""
    ret = Http(**_HTTPLIB2_OPTIONS)
    for username, password in _HTTPLIB2_CREDENTIALS:
        ret.add_credentials(username, password)
    for key, cert, domain in _HTTPLIB2_CERTIFICATES:
        ret.add_certificate(key, cert, credentials)
    return ret
Esempio n. 4
0
def publish(fN, content_blocks, message=None):
    req = InboxMessage(content_blocks)
    if message:
        req.message = message
    xml = req.generateXML()
    HEADERS["Content-Length"] = str(len(xml))
    conn = Http()
    conn.add_certificate(config.KEY, config.CERT, "")
    responseHeaders, responseBody = conn.request(config.LAYER7_URL + "/inbox/" + fN, "POST", body=xml, headers=HEADERS)
    print "Response XML: " + responseBody + "\n"
Esempio n. 5
0
def feedInformationRequest():
    os.system('cls' if os.name=='nt' else 'clear')
    print '\n------------------------'
    print 'Feed Information Request'
    print '------------------------\n'
    root_attr = {'message_id': str(uuid1())}
    root = ET.Element('Feed_Information_Request', root_attr)
    xml = ET.tostring(root)
    HEADERS['Content-Length'] = str(len(xml))
    conn = Http()
    conn.add_certificate(config.KEY, config.CERT, '')
    responseHeaders, responseBody = conn.request(config.LAYER7_URL+'/feedinfo', 'POST', body=xml, headers=HEADERS)
    print 'Response XML: '+responseBody+'\n'
    raw_input('Press any key to return to main menu.')
Esempio n. 6
0
def poll(fN, bT, eT, cB, subID):
    root_attr = {'message_id': str(uuid1()), 'feed_name': fN, 'subscription_id': subID}
    root = ET.Element('Poll_Request', root_attr)
    if bT: 
        beginTime = ET.SubElement(root, 'Exclusive_Begin_Timestamp')
        beginTime.text = bT
    if eT: 
        endTime = ET.SubElement(root, 'Inclusive_End_Timestamp')
        endTime.text = eT
    if cB:
        contentBinding = ET.SubElement(root, 'Content_Binding')
        contentBinding.text = cB
    print 'Request XML: '+ET.tostring(root)+'\n'
    xml = ET.tostring(root)
    HEADERS['Content-Length'] = str(len(xml))
    conn = Http()
    conn.add_certificate(config.KEY, config.CERT, '')
    responseHeaders, responseBody = conn.request(config.LAYER7_URL+'/poll', 'POST', body=xml, headers=HEADERS)
    print 'Response XML: '+responseBody+'\n'
Esempio n. 7
0
class HTTPClient(object):
    """ For sending a message to a HTTP server using POST or GET """
    def __init__(self, path, keyfile=None, certfile=None, log=None,
                 cookiejar=None, ca_certs="",
                 disable_ssl_certificate_validation=True):
        self.path = path
        if cookiejar is not None:
            self.cj = True
            self.server = httplib2cookie.CookiefulHttp(cookiejar,
                ca_certs=ca_certs,
                disable_ssl_certificate_validation=disable_ssl_certificate_validation)
        else:
            self.cj = False
            self.server = Http(ca_certs=ca_certs,
                disable_ssl_certificate_validation=disable_ssl_certificate_validation)
        self.log = log
        self.response = None

        if keyfile:
            self.server.add_certificate(keyfile, certfile, "")

    def post(self, data, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        if self.cj:
            (response, content) = self.server.crequest(path, method="POST",
                                                        body=data,
                                                        headers=headers)
        else:
            (response, content) = self.server.request(path, method="POST",
                                                        body=data,
                                                        headers=headers)

        if response.status == 200 or response.status == 201:
            return content
#        elif response.status == 302: # redirect
#            return self.post(data, headers, response["location"])
        else:
            self.response = response
            self.error_description = content
            return False

    def get(self, headers=None, path=None):
        if path is None:
            path = self.path

        if headers is None:
            headers = {"content-type": "text/html"}

        (response, content) = self.server.crequest(path, method="GET",
                                                     headers=headers)
        if response.status == 200 or response.status == 201:
            return content
#        elif response.status == 302: # redirect
#            return self.get(headers, response["location"])
        else:
            self.response = response
            self.error_description = content
            return None

    def put(self, data, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        (response, content) = self.server.crequest(path, method="PUT",
                                                    body=data,
                                                    headers=headers)
        if response.status == 200 or response.status == 201:
            return content
        else:
            self.response = response
            self.error_description = content
            return False

    def delete(self, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        (response, content) = self.server.crequest(path, method="DELETE",
                                                    headers=headers)
        if response.status == 200 or response.status == 201:
            return content
        else:
            self.response = response
            self.error_description = content
            return False


    def add_credentials(self, name, passwd):
        self.server.add_credentials(name, passwd)

    def clear_credentials(self):
        self.server.clear_credentials()
Esempio n. 8
0
class HTTPClient(object):
    """ For sending a message to a HTTP server using POST or GET """
    def __init__(self, path, keyfile=None, certfile=None, cookiejar=None,
                 ca_certs="", disable_ssl_certificate_validation=True):
        self.path = path
        if cookiejar is not None:
            self.cj = True
            self.server = httplib2cookie.CookiefulHttp(cookiejar,
                ca_certs=ca_certs,
                disable_ssl_certificate_validation=disable_ssl_certificate_validation)
        else:
            self.cj = False
            self.server = Http(ca_certs=ca_certs,
                disable_ssl_certificate_validation=disable_ssl_certificate_validation)

        self.response = None

        if keyfile:
            self.server.add_certificate(keyfile, certfile, "")

    def post(self, data, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        if self.cj:
            (response, content) = self.server.crequest(path, method="POST",
                                                        body=data,
                                                        headers=headers)
        else:
            (response, content) = self.server.request(path, method="POST",
                                                        body=data,
                                                        headers=headers)

        if response.status == 200 or response.status == 201:
            return content
#        elif response.status == 302: # redirect
#            return self.post(data, headers, response["location"])
        else:
            self.response = response
            self.error_description = content
            return False

    def get(self, headers=None, path=None):
        if path is None:
            path = self.path

        if headers is None:
            headers = {"content-type": "text/html"}

        (response, content) = self.server.crequest(path, method="GET",
                                                     headers=headers)
        if response.status == 200 or response.status == 201:
            return content
#        elif response.status == 302: # redirect
#            return self.get(headers, response["location"])
        else:
            self.response = response
            self.error_description = content
            return None

    def put(self, data, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        (response, content) = self.server.crequest(path, method="PUT",
                                                    body=data,
                                                    headers=headers)
        if response.status == 200 or response.status == 201:
            return content
        else:
            self.response = response
            self.error_description = content
            return False

    def delete(self, headers=None, path=None):
        if headers is None:
            headers = {}
        if path is None:
            path = self.path

        (response, content) = self.server.crequest(path, method="DELETE",
                                                    headers=headers)
        if response.status == 200 or response.status == 201:
            return content
        else:
            self.response = response
            self.error_description = content
            return False


    def add_credentials(self, name, passwd):
        self.server.add_credentials(name, passwd)

    def clear_credentials(self):
        self.server.clear_credentials()