def __call__(self, r: requests.PreparedRequest) -> requests.PreparedRequest: if self.access_key is None: fatal_plugin_error(f"ERROR: Missing {AWS_ACCESS_KEY} in environment") if self.secret_key is None: fatal_plugin_error(f"ERROR: Missing {AWS_SECRET_KEY} in environment") try: host = ( r.headers.get("Host").decode("utf-8") if "Host" in r.headers else urlparse(r.url).netloc ) if self.region is None or self.service is None: p = parse( r"(?P<region>[^\.]+)\.(?P<service>.+)\.api\.nifcloud\.com", host ) self.region = p["region"] self.service = p["service"] except Exception as error: fatal_plugin_error(f"ERROR: {error}") raise auth = AWSRequestsAuth( aws_access_key=self.access_key, aws_secret_access_key=self.secret_key, aws_host=host, aws_region=self.region, aws_service=self.service, ) return auth.__call__(r)
def __call__(self, r): try: # Host used in signature *MUST* always match with Host HTTP header. host = r.headers.get('Host') if not host: _, _, host, _, _, _, _ = parse_url(r.url) r.headers['Host'] = host if self.domain is not None: aws_params = self._parse_url(self.domain) else: aws_params = self._parse_url(host) except ValueError: print("ERROR: Could not parse neccessary information from URL.") raise except Exception as error: print("Error parsing URL: %s" % error) raise if isinstance(r.body, io.RawIOBase): r.body = r.body.readall() elif isinstance(r.body, (io.BufferedIOBase, io.TextIOBase)): r.body = r.body.read() aws_request = AWSRequestsAuth( aws_access_key=self.aws_access_key, aws_secret_access_key=self.aws_secret_access_key, aws_host=host, aws_region=aws_params['region'], aws_service=aws_params['service'], aws_token=self.aws_token) return aws_request.__call__(r)
def __call__(self, r): try: # Host used in signature *MUST* always match with Host HTTP header. host = r.headers.get('Host') if not host: _, _, host, _, _, _, _ = parse_url(r.url) r.headers['Host'] = host if self.domain is not None: aws_params = self._parse_url(self.domain) else: aws_params = self._parse_url(host) except ValueError: aws_params = {"region": "us-west-2", "service": "svs"} except Exception as error: aws_params = {"region": "us-west-2", "service": "svs"} aws_request = AWSRequestsAuth( aws_access_key=self.aws_access_key, aws_secret_access_key=self.aws_secret_access_key, aws_host=host, aws_region=aws_params['region'], aws_service=aws_params['service'], aws_token=self.aws_token) return aws_request.__call__(r)