def sign_request_v4(access_key, secret_key, method, host, canonical_uri, region, service='ecs', params=None, body=b''): if not canonical_uri.endswith('/'): canonical_uri += '/' t = datetime.datetime.utcnow() sdkdate = t.strftime('%Y%m%dT%H%M%SZ') datestamp = t.strftime('%Y%m%d') signing_key = _getSignatureKey(secret_key, datestamp, region, service) canonical_uri = _uri_encode(canonical_uri, quote_backslashes=False, unicode_output=True) canonical_querystring = _format_param_str( params, always_have_equal=True).lstrip('?') payload_hash = convert_to_unicode( sha256(convert_to_string(body)).hexdigest()) canonical_headers = {'host': host, 'x-sdk-date': sdkdate} signed_headers = 'host;x-sdk-date' canonical_headers_str = '' for k, v in sorted(canonical_headers.items()): canonical_headers_str += k + ":" + v + "\n" canonical_headers = canonical_headers_str signed_headers = ';'.join(sorted(signed_headers.split(';'))) canonical_request = method + '\n' + canonical_uri + '\n' + canonical_querystring + '\n' + canonical_headers + '\n' + signed_headers + '\n' + payload_hash algorithm = 'SDK-HMAC-SHA256' credential_scope = datestamp + '/' + region + '/' + service + '/' + 'sdk_request' string_to_sign = algorithm + '\n' + sdkdate + '\n' + credential_scope + '\n' + convert_to_unicode( sha256(convert_to_string(canonical_request)).hexdigest()) signature = convert_to_unicode( hmac.new(signing_key, convert_to_string(string_to_sign), sha256).hexdigest()) authorization_header = algorithm + ' ' + 'Credential=' + access_key + '/' + credential_scope + ', ' + 'SignedHeaders=' + signed_headers + ', ' + 'Signature=' + signature new_headers = { 'X-Sdk-Date': sdkdate, 'Authorization': authorization_header, 'Host': host } return new_headers
def main(): utils.check_login_user() # parse input option argv = [encode.convert_to_unicode(a) for a in sys.argv[1:]] args = get_parser().parse_args(argv) # read and check args kwargs = {} if args.name is not None: kwargs['name'] = args.name if args.metadata is not None: kwargs['metadata'] = args.metadata if args.description is not None: kwargs['description'] = args.description if args.file_name is not None: kwargs['file_name'] = args.file_name if args.fpga_image_id is not None: kwargs['fpga_image_id'] = args.fpga_image_id if args.image_id is not None: kwargs['image_id'] = args.image_id if args.page is not None: kwargs['page'] = args.page if args.size is not None: kwargs['size'] = args.size try: utils.check_param(**kwargs) except Exception as e: utils.exit('Error: %s' % encode.exception_to_unicode(e)) # read and check config file config.read_config_and_verify() access_key = os.getenv('OS_ACCESS_KEY') secret_key = os.getenv('OS_SECRET_KEY') bucket_name = os.getenv('OS_BUCKET_NAME') region_id = os.getenv('OS_REGION_ID') domain_id = os.getenv('OS_DOMAIN_ID') project_id = os.getenv('OS_PROJECT_ID') obs_endpoint = os.getenv('OS_OBS_ENDPOINT') vpc_endpoint = os.getenv('OS_VPC_ENDPOINT') fis_endpoint = os.getenv('OS_FIS_ENDPOINT') try: # configure intranet dns of ecs config.configure_intranet_dns_ecs(region_id) # check bucket utils._check_bucket_acl_location(bucket_name, access_key, secret_key, obs_endpoint, region_id, domain_id) # check fis rest.fpga_image_relation_list(access_key, secret_key, project_id, region_id, fis_endpoint) except Exception as e: utils.exit('Error: %s' % encode.exception_to_unicode(e)) if kwargs: print('fis argument(s) and config file are OK') else: print('fis config file is OK')
def getDictFromTree(tree): ret_dict = {} for child in tree.getchildren(): if child.getchildren(): content = getDictFromTree(child) elif child.text is not None: content = convert_to_unicode(child.text) else: content = None child_tag = convert_to_unicode(child.tag) if child_tag in ret_dict: if not isinstance(ret_dict[child_tag], list): ret_dict[child_tag] = [ret_dict[child_tag]] ret_dict[child_tag].append(content or "") else: ret_dict[child_tag] = content or "" return ret_dict
def _uri_encode(param, quote_backslashes=True, unicode_output=False): if quote_backslashes: safe_chars = "~" else: safe_chars = "~/" param = convert_to_string(param) param = quote(param, safe=safe_chars) if unicode_output: param = convert_to_unicode(param) else: param = convert_to_string(param) return param
def main(): parser = get_parser() if len(sys.argv) <= 1: parser.print_help() return argv = [encode.convert_to_unicode(a) for a in sys.argv[1:]] args = parser.parse_args(argv) if args.subcmd.startswith('fpga-image'): config.read_config_and_verify() elif args.subcmd == 'help': args.subcommands = subcommands args.parser = parser try: args.func(args) except Exception as e: utils.exit('Error: %s' % encode.exception_to_unicode(e))
def print_err(msg): print(encode.convert_to_unicode(msg), file=sys.stderr)
def __str__(self): return convert_to_unicode(self.message)