def get_data(self, base_url, method, header=None, tenant_id=None, url_parameters=None, body=None): """ Get the result of current request. :param base_url: (string) :param method: (string) HTTP request method, GET/POST/PUT/DELETE :param header: (dict) request header :param version: (string) API version :param tenant_id: (string) OpenStack project id :param url_parameters: (dict) query parameters :param body: (dict) request body :return: (dict) """ extra_url = BaseMethods.url_para_to_url(**url_parameters) \ if url_parameters else '' if header is not None: self.header = header if body is not None: self.body = json.dumps(body) else: self.body = None self.method = method self.url = '/%s/' % self.version + (('%s/' % tenant_id) if tenant_id is not None else '') \ + base_url + extra_url # Execute http request self.request(self.method, url=self.url, headers=self.header, body=self.body) response = None data = None try: response = self.getresponse() except httplib.NotConnected, e: raise err.ServerAddressError(self.host_port)
def openstack_api_connection(base_url, method, header, port, version, tenant_id=None, url_parameters=None, body=None): ''' :param url: (string) :param method: (string) [POST | GET | PUT | DELETE ] :param header: (Dict) headers for request :param url_parameters: (Dict) :param body: (Dict) :return: (Dict) Data fetched from openstack api ''' extra_url = (BaseMethods.url_para_to_url( **url_parameters)) if url_parameters else '' conn = httplib.HTTPConnection('%s:%s' % (settings.OPENSTACK_CONTROLLER_IP, port)) req_header = header req_body = None if body is None else json.dumps(body) # TODO(pwwp): # use <finally> to handle success or error data try: conn.request(method, '/%s/' % version + (('%s/' % tenant_id) if tenant_id is not None else '') + base_url + extra_url, headers=req_header, body=req_body) response = conn.getresponse() if response.status > 299: error = { 'status': 'error', 'error_code': response.status, 'error_msg': response.reason, 'data': '' } return error elif response.status == 204: data = {'status': 'success', 'data': ''} return data else: data = {'status': 'success', 'data': json.loads(response.read())} return data except socket.error, e: return {'status': 'error', 'error_msg': e.strerror}
def get_data(self, base_url, method, header=None, tenant_id=None, url_parameters=None, body=None): """ Get the result of current request. :param base_url: (string) :param method: (string) HTTP request method, GET/POST/PUT/DELETE :param header: (dict) request header :param version: (string) API version :param tenant_id: (string) OpenStack project id :param url_parameters: (dict) query parameters :param body: (dict) request body :return: (dict) """ extra_url = BaseMethods.url_para_to_url(**url_parameters) \ if url_parameters else '' if header is not None: self.header = header if body is not None: self.body = json.dumps(body) else: self.body = None self.method = method self.url = '/%s/' % self.version + (('%s/' % tenant_id) if tenant_id is not None else '') \ + base_url + extra_url # Execute http request self.request(self.method, url=self.url, headers=self.header, body=self.body) response = None data = None try: response = self.getresponse() except httplib.NotConnected, e: raise err.ServerAddressError(self.host_port)
def openstack_api_connection(base_url, method, header, port, version, tenant_id=None, url_parameters=None, body=None): ''' :param url: (string) :param method: (string) [POST | GET | PUT | DELETE ] :param header: (Dict) headers for request :param url_parameters: (Dict) :param body: (Dict) :return: (Dict) Data fetched from openstack api ''' extra_url = (BaseMethods.url_para_to_url(**url_parameters)) if url_parameters else '' conn = httplib.HTTPConnection('%s:%s' % (settings.OPENSTACK_CONTROLLER_IP, port)) req_header = header req_body = None if body is None else json.dumps(body) # TODO(pwwp): # use <finally> to handle success or error data try: conn.request(method, '/%s/' % version + (('%s/' % tenant_id) if tenant_id is not None else '') + base_url + extra_url, headers=req_header, body=req_body) response = conn.getresponse() if response.status > 299: error = {'status': 'error', 'error_code': response.status, 'error_msg': response.reason, 'data': ''} return error elif response.status == 204: data = {'status': 'success', 'data': ''} return data else: data = {'status': 'success', 'data': json.loads(response.read())} return data except socket.error, e: return {'status': 'error', 'error_msg': e.strerror }