示例#1
0
 def POST(self, env):
     """Handle posts dealing with metadata alteration"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     version, acc, con, obj = split_path(req.path, 1, 4, True)
     if not con:
         try:
             info = get_account_info(env, self.app)
             if info:
                 stor_policy = info['storage_policy']
                 headers['storage_policy'] = stor_policy
         except:
             pass
     else:
         try:
             info = get_container_info(env, self.app)
             if info:
                 stor_policy = info['storage_policy']
                 headers['storage_policy'] = stor_policy
         except:
             pass
     conn.request('POST', req.path, headers=headers)
     resp = conn.getresponse()
     #confirm response then pass along the request
     return self.app
示例#2
0
 def GET(self, req):
     """Handle the query request."""
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     conn.request('GET', req.path, headers=headers)
     resp = conn.getresponse()
     return Response(request=req, body=resp.read(), content_type=resp.getheader('Content-Type'))
示例#3
0
 def POST(self, env):
     """Handle posts dealing with metadata alteration"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     version, acc, con, obj = split_path(req.path, 1, 4, True)
     if not con:
         try:
             info = get_account_info(env, self.app)
             if info:
                 stor_policy = info['storage_policy']
                 headers['storage_policy'] = stor_policy
         except:
             pass
     else:
         try:
             info = get_container_info(env, self.app)
             if info:
                 stor_policy = info['storage_policy']
                 headers['storage_policy'] = stor_policy
         except:
             pass
     conn.request('POST', req.path, headers=headers)
     resp = conn.getresponse()
     #confirm response then pass along the request
     return self.app
示例#4
0
 def COPY(self, env):
     """Eliminate metadata for deleted objects"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     conn.request('COPY', req.path, headers=headers)
     resp = conn.getresponse()
     #confirm response then pass along the request
     return self.app
示例#5
0
 def COPY(self, env):
     """Eliminate metadata for deleted objects"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     conn.request('COPY', req.path, headers=headers)
     resp = conn.getresponse()
     #confirm response then pass along the request
     return self.app
示例#6
0
 def GET(self, req):
     """Handle the query request."""
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     conn.request('GET', req.path, headers=headers)
     resp = conn.getresponse()
     return Response(request=req,
                     body=resp.read(),
                     content_type=resp.getheader('Content-Type'))
示例#7
0
文件: http.py 项目: carriercomm/oiopy
def http_connect(host, method, path, headers=None):
    conn = HTTPConnection(host)
    conn.path = path
    conn.putrequest(method, path)
    if headers:
        for header, value in headers.items():
            if isinstance(value, (list, tuple)):
                for k in value:
                    conn.putheader(header, str(k))
            else:
                conn.putheader(header, str(value))
    conn.endheaders()
    return conn
示例#8
0
 def sendData(self, metaList, data_type, server_ip, server_port):
     ip = server_ip
     port = server_port
     updatedData = json.dumps(metaList)
     headers = {'user-agent': data_type}
     with ConnectionTimeout(self.conn_timeout):
         try:
             conn = HTTPConnection('%s:%s' % (ip, port))
             conn.request('PUT', '/', headers=headers, body=updatedData)
             resp = conn.getresponse()
             return resp
         except (Exception, Timeout):
             return HTTP_INTERNAL_SERVER_ERROR
示例#9
0
文件: utils.py 项目: xyuanlu/swift
 def sendData(self, metaList, data_type, server_ip, server_port):
     ip = server_ip
     port = server_port
     updatedData = json.dumps(metaList)
     headers = {'user-agent': data_type}
     with ConnectionTimeout(self.conn_timeout):
         try:
             conn = HTTPConnection('%s:%s' % (ip, port))
             conn.request('PUT', '/', headers=headers, body=updatedData)
             resp = conn.getresponse()
             return resp
         except (Exception, Timeout):
             return HTTP_INTERNAL_SERVER_ERROR
示例#10
0
 def PUT(self, env):
     """Handle PUT requests related to metadata"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     try:
         info = get_container_info(env, self.app)
         if info:
             stor_policy = info['storage_policy']
             headers['storage_policy'] = stor_policy
     except:
         pass
     conn.request('PUT', req.path, headers=headers)
     resp = conn.getresponse()
     return self.app
示例#11
0
 def PUT(self, env):
     """Handle PUT requests related to metadata"""
     req = Request(env)
     conn = HTTPConnection('%s:%s' % (self.mds_ip, self.mds_port))
     headers = req.params
     try:
         info = get_container_info(env, self.app)
         if info:
             stor_policy = info['storage_policy']
             headers['storage_policy'] = stor_policy
     except:
         pass
     conn.request('PUT', req.path, headers=headers)
     resp = conn.getresponse()
     return self.app
def http_connection(url):
    '''
	test http_connection
	'''
    parsed = urlparse(url)
    conn = HTTPConnection(parsed.netloc)
    return parsed, conn
示例#13
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     logging.debug(("HTTP PERF: %(time).5f seconds to %(method)s "
                     "%(host)s:%(port)s %(path)s)"),
        {'time': time.time() - self._connected_time, 'method': self._method,
         'host': self.host, 'port': self.port, 'path': self._path})
     return response
示例#14
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     logging.debug(_("HTTP PERF: %(time).5f seconds to %(method)s "
                     "%(host)s:%(port)s %(path)s)"),
        {'time': time.time() - self._connected_time, 'method': self._method,
         'host': self.host, 'port': self.port, 'path': self._path})
     return response
示例#15
0
文件: http.py 项目: fvennetier/oiopy
def http_connect(host, method, path, headers=None):
    conn = HTTPConnection(host)
    conn.path = path
    conn.putrequest(method, path)
    if headers:
        for header, value in headers.iteritems():
            conn.putheader(header, str(value))
    conn.endheaders()
    return conn
示例#16
0
    def connect(self):
        #self._connected_time = time.time()
        #return HTTPConnection.connect(self)
	#with open("/home/ubuntu/spawn.txt", "a") as tran_file:
    	#    tran_file.write("At Connect = "+str(datetime.now())+"\n")
	self._connected_time = time.time()
        ret = HTTPConnection.connect(self)
        #self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
	#self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
	#self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
        return ret
示例#17
0
    def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
        '''Send a request to the server.

        :param method: specifies an HTTP request method, e.g. 'GET'.
        :param url: specifies the object being requested, e.g. '/index.html'.
        :param skip_host: if True does not add automatically a 'Host:' header
        :param skip_accept_encoding: if True does not add automatically an
           'Accept-Encoding:' header
        '''
        self._method = method
        self._path = url
        return HTTPConnection.putrequest(self, method, url, skip_host,
                                         skip_accept_encoding)
示例#18
0
def http_connection(url, proxy=None):
    """
    Make an HTTPConnection or HTTPSConnection

    :param url: url to connect to
    :param proxy: proxy to connect through, if any; None by default; str of the
                  format 'http://127.0.0.1:8888' to set one
    :returns: tuple of (parsed url, connection object)
    :raises ClientException: Unable to handle protocol scheme
    """
    parsed = urlparse(url)
    proxy_parsed = urlparse(proxy) if proxy else None
    if parsed.scheme == 'http':
        conn = HTTPConnection((proxy_parsed if proxy else parsed).netloc)
    elif parsed.scheme == 'https':
        conn = HTTPSConnection((proxy_parsed if proxy else parsed).netloc)
    else:
        raise ClientException('Cannot handle protocol scheme %s for url %s' %
                              (parsed.scheme, repr(url)))
    if proxy:
        conn._set_tunnel(parsed.hostname, parsed.port)
    return parsed, conn
示例#19
0
    def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
        '''Send a request to the server.

        :param method: specifies an HTTP request method, e.g. 'GET'.
        :param url: specifies the object being requested, e.g. '/index.html'.
        :param skip_host: if True does not add automatically a 'Host:' header
        :param skip_accept_encoding: if True does not add automatically an
           'Accept-Encoding:' header
        '''
        self._method = method
        self._path = url
        return HTTPConnection.putrequest(self, method, url, skip_host,
                                         skip_accept_encoding)
示例#20
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     LOG.debug(
         "HTTP PERF: %(time).5f seconds to %(method)s " "%(host)s:%(port)s %(path)s)",
         {
             "time": time.time() - self._connected_time,
             "method": self._method,
             "host": self.host,
             "port": self.port,
             "path": self._path,
         },
     )
     return response
示例#21
0
    def send_to_peer(self, peer, sync_to_peer, key):
        peer = peer.lower()
        ssl = False
        if peer.startswith('https://'):
            ssl = True
            peer = peer[8:]
        if peer.startswith('http://'):
            peer = peer[7:]
        try:
            with Timeout(self.conn_timeout):
                if ssl:
                    #print 'HTTPS %s ' % peer
                    conn = HTTPSConnection(peer)
                else:
                    #print 'HTTP %s ' % peer
                    conn = HTTPConnection(peer)
            conn.putrequest(self.req.method, self.req.path_qs)
            conn.putheader('X-Orig-Cluster', self.my_cluster)
            conn.putheader('X-Account-Meta-Orig-Cluster', self.my_cluster)
            conn.putheader('X-Container-Meta-Orig-Cluster', self.my_cluster)
            if key:
                sync_to = sync_to_peer + self.env['PATH_INFO']
                conn.putheader('X-Container-Sync-To', sync_to)
            for header, value in self.req.headers.iteritems():
                if header != 'X-Container-Sync-To':
                    conn.putheader(header, value)
            conn.endheaders(message_body=None)
            with Timeout(self.req_timeout):
                resp = conn.getresponse()
                status = resp.status
                return (status, resp.getheaders(), resp.read())
        except (Exception, Timeout) as e:
            # Print error log
            print >> sys.stderr, peer + ': Exception, Timeout error: %s' % e

        print '<<<<<<<< HTTP_SERVICE_UNAVAILABLE'
示例#22
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     
     return response
示例#23
0
 def connect(self):
     self._connected_time = time.time()
     return HTTPConnection.connect(self)
示例#24
0
 def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
     self._method = method
     self._path = url
     return HTTPConnection.putrequest(self, method, url, skip_host,
                                      skip_accept_encoding)
示例#25
0
    def close(self):
	#pass
	HTTPConnection.close(self)
示例#26
0
 def putheader(self, header, value):
     if not isinstance(header, bytes):
         header = header.encode('latin-1')
     HTTPConnection.putheader(self, header, value)
示例#27
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     logging.debug('HTTP %s %s:%s %s',
                   self._method, self.host, self.port, self._path)
     return response
示例#28
0
 def connect(self):
     self._connected_time = time.time()
     ret = HTTPConnection.connect(self)
     self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
     return ret
示例#29
0
 def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
     self._method = method  # save method for getexpect method
     return BaseHTTPConnection.putrequest(self, method, url, skip_host,
                                          skip_accept_encoding)
示例#30
0
 def connect(self):
     r = HTTPConnection.connect(self)
     self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
     return r
示例#31
0
 def connect(self):
     self._connected_time = time.time()
     ret = HTTPConnection.connect(self)
     self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
     return ret
示例#32
0
 def connect(self):
     self._connected_time = time.time()
     return HTTPConnection.connect(self)
示例#33
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     logging.debug('HTTP %s %s:%s %s', self._method, self.host, self.port,
                   self._path)
     return response
示例#34
0
 def putheader(self, header, value):
     if header.lower() == 'x-cf-trans-id':
         self._txn_id = value
     return HTTPConnection.putheader(self, header, value)
示例#35
0
 def getresponse(self):
     response = HTTPConnection.getresponse(self)
     logging.debug("HTTP PERF: %.5f seconds to %s %s:%s %s (%s)" %
             (time.time() - self._connected_time, self._method, self.host,
              self.port, self._path, self._txn_id))
     return response
示例#36
0
 def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
     self._method = method
     self._path = url
     return HTTPConnection.putrequest(self, method, url, skip_host,
                                      skip_accept_encoding)
示例#37
0
 def connect(self):
     r = HTTPConnection.connect(self)
     self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
     return r