Example #1
0
    def request(self, method, url, headers=None, body=None):
        """A simple HTTP request interface."""
        self.http_obj = http.ClosingHttp()
        if headers is None:
            headers = {}

        # Authorize the request
        req_url, req_headers, req_body = self.auth_provider.auth_request(
            method=method,
            url=url,
            headers=headers,
            body=body,
            filters=self.filters)
        self._log_request(method, req_url, headers, body)
        # use original body
        resp, resp_body = self.http_obj.request(req_url,
                                                method,
                                                headers=req_headers,
                                                body=req_body)
        self._log_response(resp, resp_body)

        if resp.status == 401 or resp.status == 403:
            raise exceptions.Unauthorized()

        return resp, resp_body
Example #2
0
    def request(self,
                method,
                url,
                extra_headers=False,
                headers=None,
                body=None):
        """A simple HTTP request interface."""
        self.http_obj = http.ClosingHttp()
        if headers is None:
            headers = {}
        elif extra_headers:
            try:
                headers.update(self.get_headers())
            except (ValueError, TypeError):
                headers = {}

        # Authorize the request
        req_url, req_headers, req_body = self.auth_provider.auth_request(
            method=method,
            url=url,
            headers=headers,
            body=body,
            filters=self.filters)
        # use original body
        resp, resp_body = self.http_obj.request(req_url,
                                                method,
                                                headers=req_headers,
                                                body=req_body)
        self._log_request(method, req_url, resp)

        if resp.status == 401 or resp.status == 403:
            raise exceptions.Unauthorized()

        return resp, resp_body
Example #3
0
 def request(self, method, url, headers=None, body=None, wait=None):
     """Overriding the existing HTTP request in super class RestClient."""
     dscv = CONF.identity.disable_ssl_certificate_validation
     self.http_obj = http.ClosingHttp(
         disable_ssl_certificate_validation=dscv)
     return super(PolicyClientXML, self).request(method,
                                                 url,
                                                 headers=headers,
                                                 body=body)
Example #4
0
 def request(self, method, url, headers=None, body=None, wait=None):
     """Overriding the existing HTTP request in super class RestClient."""
     dscv = self.config.identity.disable_ssl_certificate_validation
     self.http_obj = http.ClosingHttp(
         disable_ssl_certificate_validation=dscv)
     self._set_auth()
     self.base_url = self.base_url.replace(
         urlparse(self.base_url).path, "/v3")
     return super(PolicyClientXML, self).request(method,
                                                 url,
                                                 headers=headers,
                                                 body=body)
Example #5
0
 def request(self, method, url, extra_headers=False, headers=None,
             body=None, wait=None):
     """Overriding the existing HTTP request in super class RestClient."""
     if extra_headers:
         try:
             headers.update(self.get_headers())
         except (ValueError, TypeError):
             headers = self.get_headers()
     dscv = CONF.identity.disable_ssl_certificate_validation
     self.http_obj = http.ClosingHttp(
         disable_ssl_certificate_validation=dscv)
     return super(RegionClientXML, self).request(method, url,
                                                 extra_headers,
                                                 headers=headers,
                                                 body=body)
Example #6
0
 def test_swift_acl_anonymous_download(self):
     """This test will cover below steps:
     1. Create container
     2. Upload object to the new container
     3. Change the ACL of the container
     4. Check if the object can be download by anonymous user
     5. Delete the object and container
     """
     container_name = self.create_container()
     obj_name, _ = self.upload_object_to_container(container_name)
     obj_url = '%s/%s/%s' % (self.object_client.base_url, container_name,
                             obj_name)
     http_client = http.ClosingHttp()
     resp, _ = http_client.request(obj_url, 'GET')
     self.assertEqual(resp.status, 401)
     self.change_container_acl(container_name, '.r:*')
     resp, _ = http_client.request(obj_url, 'GET')
     self.assertEqual(resp.status, 200)
Example #7
0
    def __init__(self, auth_provider):
        self.auth_provider = auth_provider

        self.endpoint_url = None
        self.service = None
        # The version of the API this client implements
        self.api_version = None
        self._skip_path = False
        self.build_interval = CONF.compute.build_interval
        self.build_timeout = CONF.compute.build_timeout
        self.general_header_lc = set(
            ('cache-control', 'connection', 'date', 'pragma', 'trailer',
             'transfer-encoding', 'via', 'warning'))
        self.response_header_lc = set(
            ('accept-ranges', 'age', 'etag', 'location', 'proxy-authenticate',
             'retry-after', 'server', 'vary', 'www-authenticate'))
        dscv = CONF.identity.disable_ssl_certificate_validation
        self.http_obj = http.ClosingHttp(
            disable_ssl_certificate_validation=dscv)
Example #8
0
    def request(self, method, url, headers=None, body=None):
        """A simple HTTP request interface."""
        dscv = self.config.identity.disable_ssl_certificate_validation
        self.http_obj = http.ClosingHttp(
            disable_ssl_certificate_validation=dscv)
        if headers is None:
            headers = {}
        self._log_request(method, url, headers, body)
        resp, resp_body = self.http_obj.request(url,
                                                method,
                                                headers=headers,
                                                body=body)
        self._log_response(resp, resp_body)

        if resp.status in (401, 403):
            resp_body = json.loads(resp_body)
            raise exceptions.Unauthorized(resp_body['error']['message'])

        return resp, resp_body
Example #9
0
    def request(self, method, url, headers=None, body=None):
        """A simple HTTP request interface."""
        dscv = self.config.identity.disable_ssl_certificate_validation
        self.http_obj = http.ClosingHttp(
            disable_ssl_certificate_validation=dscv)
        if headers is None:
            headers = {}
        if self.base_url is None:
            self._set_auth()

        req_url = "%s/%s" % (self.base_url, url)
        self._log_request(method, req_url, headers, body)
        resp, resp_body = self.http_obj.request(req_url,
                                                method,
                                                headers=headers,
                                                body=body)
        self._log_response(resp, resp_body)
        if resp.status == 401 or resp.status == 403:
            raise exceptions.Unauthorized()

        return resp, resp_body
Example #10
0
    def request(self, method, url, headers=None, body=None):
        """A simple HTTP request interface."""
        self.http_obj = http.ClosingHttp()
        if headers is None:
            headers = {}
        if self.base_url is None:
            self._set_auth()

        req_url = "%s/%s" % (self.base_url, url)

        self._log_request(method, req_url, headers, body)
        resp, resp_body = self.http_obj.request(req_url,
                                                method,
                                                headers=headers,
                                                body=body)
        self._log_response(resp, resp_body)

        if resp.status == 401 or resp.status == 403:
            raise exceptions.Unauthorized()

        return resp, resp_body
    def __init__(self, config, user, password, auth_url, tenant_name=None,
                 auth_version='v2'):
        self.config = config
        self.user = user
        self.password = password
        self.auth_url = auth_url
        self.tenant_name = tenant_name
        self.auth_version = auth_version

        self.service = CONF.magnetodb.service_type
        self.token = None
        self.base_url = None
        self.region = {}
        for cfgname in dir(self.config):
            # Find all config.FOO.catalog_type and assume FOO is a service.
            cfg = getattr(self.config, cfgname)
            catalog_type = getattr(cfg, 'catalog_type', None)
            if not catalog_type:
                continue
            service_region = getattr(cfg, 'region', None)
            if not service_region:
                service_region = self.config.identity.region
            self.region[catalog_type] = service_region
        self.endpoint_url = 'publicURL'
        self.headers = {'Content-Type': 'application/%s' % self.TYPE,
                        'Accept': 'application/%s' % self.TYPE}
        self.build_interval = config.compute.build_interval
        self.build_timeout = config.compute.build_timeout
        self.general_header_lc = set(('cache-control', 'connection',
                                      'date', 'pragma', 'trailer',
                                      'transfer-encoding', 'via',
                                      'warning'))
        self.response_header_lc = set(('accept-ranges', 'age', 'etag',
                                       'location', 'proxy-authenticate',
                                       'retry-after', 'server',
                                       'vary', 'www-authenticate'))
        dscv = self.config.identity.disable_ssl_certificate_validation
        self.http_obj = http.ClosingHttp(
            disable_ssl_certificate_validation=dscv)
Example #12
0
    def request(self, method, url, headers=None, body=None):
        """A simple HTTP request interface."""
        dscv = CONF.identity.disable_ssl_certificate_validation
        self.http_obj = http.ClosingHttp(
            disable_ssl_certificate_validation=dscv)
        if headers is None:
            headers = {}

        # Authorize the request
        req_url, req_headers, req_body = self.auth_provider.auth_request(
            method=method, url=url, headers=headers, body=body,
            filters=self.filters
        )
        # Use original method
        self._log_request(method, req_url, headers, body)
        resp, resp_body = self.http_obj.request(req_url, method,
                                                headers=req_headers,
                                                body=req_body)
        self._log_response(resp, resp_body)
        if resp.status == 401 or resp.status == 403:
            raise exceptions.Unauthorized()

        return resp, resp_body