def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, width=200), description="""example: python3 vpc.py -i ak -s sk -r cn-shanghai -a CreateVpc --cidr-block "10.0.0.0/8" --vpc-name imm-dev-hl-vpc-bc python3 vpc.py -i ak -s sk -r cn-shanghai -a DescribeVpcs --vpc-name imm-dev-hl-vpc-shanghai-ecs """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("--vpc-id", help="vpc id") parser.add_argument("--vpc-name", help="vpc name") parser.add_argument("--cidr-block", help="cidr block") parser.add_argument("--vswitch-name", help="vswitch name") parser.add_argument("--description", default="create by vpc.py", help="description") parser.add_argument("-a", "--action", help="action", choices=[ "CreateVpc", "DescribeVpcs", "DescribeVSwitches" ]) args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file(args.credential) config = open_api_models.Config( access_key_id=args.access_key_id, access_key_secret=args.access_key_secret, region_id=args.region_id, ) if args.action == "CreateVpc": print(json.dumps(create_vpc(config, args.region_id, args.vpc_name, args.cidr_block, args.description))) elif args.action == "DescribeVpcs": print(json.dumps(describe_vpcs(config, args.region_id, args.vpc_id, args.vpc_name))) elif args.action == "DescribeVSwitches": print(json.dumps(describe_vswitches(config, args.region_id, args.vpc_id, args.vpc_name, args.vswitch_name))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 kms.py -i ak -s sk -r cn-shanghai -a ListKeys python3 kms.py -i ak -s sk -r cn-shanghai -a Encrypt --content $(cat test.json | base64) -k xxx | jq -r .CiphertextBlob | tail -1 > test.blob python3 kms.py -i ak -s sk -r cn-shanghai -a Decrypt --content $(cat test.blob) | jq -r .Plaintext | tail -1 | base64 -d """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-k", "--key-id", help="key id") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument( "-a", "--action", help="action", choices=["Encrypt", "Decrypt", "ListKeys", "GenerateDataKey"]) parser.add_argument("--content", help="content") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) client = AcsClient(args.access_key_id, args.access_key_secret, args.region_id) if args.action == "Encrypt": print(json.dumps(encrypt(client, args.key_id, args.content))) elif args.action == "Decrypt": print(json.dumps(decrypt(client, args.content))) elif args.action == "ListKeys": print(json.dumps(list_keys(client))) elif args.action == "GenerateDataKey": print(json.dumps(generate_data_key(client, args.key_id))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, width=200), description="""example: python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a GetProject python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a ListClusters python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a GetCluster --cluster-id cls-0udghyr5mICEYOcbkXtTuqDPF6B python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a GetCluster --cluster-name IMM_DEV_BC2_CONVERT_WPS_default_20201208 python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a DelCluster --cluster-id cls-0udghyr5mICEYOcbkXtTuqDPF6B python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a CreateCluster --cluster-desc "$(cat ${TMP}/create_cluster.json) python3 bc2.py -c ~/.aksk/imm-dev -r cn-shanghai -u 1335926999564873 -p imm-dev -a UpdateCluster --cluster-id cls-0udghyr5mICEYOcbkXtTuqDPF6B --image-id registry-vpc.cn-shanghai.aliyuncs.com/imm-dev/transcode:0.1 --vm-count 20 --change true """) parser.add_argument("-u", "--uid", help="user owner id") parser.add_argument("-p", "--project", help="project") parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-a", "--action", help="action", choices=[ "ListClusters", "GetCluster", "DelCluster", "CreateCluster", "CreateProject", "GetProject", "UpdateCluster" ]) parser.add_argument("--cluster-id", help="cluster id") parser.add_argument("--cluster-name", help="cluster name") parser.add_argument("--cluster-desc", help="cluster desc") parser.add_argument("--version", help="version") parser.add_argument("--vm-count", help="vm count") parser.add_argument("--image-id", help="image id") parser.add_argument("--change", help="change") parser.add_argument("--instance-type", default="ecs.sn2.medium", help="instance type") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file(args.credential) client = bcsc.Client(open_api_models.Config( access_key_id=args.access_key_id, access_key_secret=args.access_key_secret, endpoint="{}.{}.batchcompute.aliyuncs.com".format(args.uid, args.region_id), region_id=args.region_id, protocol="http", type="access_key" )) if args.action == "ListClusters": print(json.dumps(list_clusters(client, args.project))) elif args.action == "GetCluster": print(json.dumps(get_cluster(client, args.project, args.cluster_id, args.cluster_name))) elif args.action == "DelCluster": print(json.dumps(del_cluster(client, args.project, args.cluster_id, args.cluster_name))) elif args.action == "CreateCluster": print(json.dumps(create_cluster(client, args.project, args.cluster_desc))) elif args.action == "CreateProject": print(json.dumps(create_project(client, args.project))) elif args.action == "GetProject": print(json.dumps(get_project(client, args.project))) elif args.action == "UpdateCluster": print(json.dumps(update_cluster(client, args.project, args.cluster_id, args.image_id, args.vm_count, args.change))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, width=200), description="""example: python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribeRegions python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribePrice --instance-type ecs.sn1ne.2xlarge python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribeInstances --instance-name hl | jq ".[].InstanceType" | sort | uniq -c python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribeInstances --public-ip 47.116.74.14 | jq ".[].InstanceType" | sort | uniq -c python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribeInstances --instance-name hl | jq -r '.[] | "\(.InstanceType) \(.CpuOptions.CoreCount) \(.CpuOptions.ThreadsPerCore) \(.Memory)M"' python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a DescribeSecurityGroups --vpc-name imm-dev-hl-vpc-shanghai-ecs --security-group-name imm-dev-hl-security-group python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a AddAccessControlToSecurityGroup --vpc-name imm-dev-hl-vpc-shanghai-ecs --security-group-name imm-dev-hl-security-group --ip "$(wget -qO - icanhazip.com)" python3 ecs.py -c ~/.aksk/imm-dev -r cn-shanghai -a AddAccessControlToSecurityGroup --instance-name imm-dev-hl-ecs --security-group-name imm-dev-hl-security-group --ip "$(wget -qO - icanhazip.com)" """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-a", "--action", help="action", choices=[ "DescribeRegions", "DescribeInstances", "DescribePrice", "DescribeSecurityGroups", "AddAccessControlToSecurityGroup" ]) parser.add_argument("--instance-name", help="instance name") parser.add_argument("--instance-type", help="instance type") parser.add_argument("--instance-id", help="instance id") parser.add_argument("--vpc-id", help="vpc id") parser.add_argument("--vpc-name", help="vpc name") parser.add_argument("--security-group-name", help="security group name") parser.add_argument("--ip", help="ip") parser.add_argument("--port-range", default="-1/-1", help="ip") parser.add_argument("--ip-protocol", default="all", help="ip protocol") parser.add_argument("--public-ip", help="public ip") parser.add_argument("--private-ip", help="private ip") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file(args.credential) config = open_api_models.Config( access_key_id=args.access_key_id, access_key_secret=args.access_key_secret, region_id=args.region_id, ) if args.action == "DescribeRegions": print(json.dumps(describe_regions(config))) elif args.action == "DescribeInstances": print(json.dumps(describe_instances(config, args.region_id, args.instance_id, args.instance_name, args.vpc_id, args.vpc_name, args.public_ip, args.private_ip))) elif args.action == "DescribePrice": print(json.dumps(describe_price(config, args.region_id, args.instance_type))) elif args.action == "DescribeSecurityGroups": print(json.dumps(describe_security_groups(config, args.region_id, args.security_group_name, args.vpc_id, args.vpc_name))) elif args.action == "AddAccessControlToSecurityGroup": print(json.dumps(add_access_control_to_security_group( config, args.region_id, args.security_group_name, args.instance_id, args.instance_name, args.vpc_id, args.vpc_name, args.ip, args.ip_protocol, args.port_range ))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, width=200), description="""example: python3 imm.py -c ~/.aksk/imm-test -i ak -s sk -r cn-shanghai --request '{ "Action": "GetOfficePreviewURL", "Project": "hl-shanghai-doc-project", "SrcUri": "oss://imm-test-hl-shanghai/1.docx" }' python3 imm.py -c ~/.aksk/imm-test -i ak -s sk -r cn-shanghai --request '{ "Action": "GetOfficeEditURL", "Project": "hl-shanghai-doc-project", "SrcUri": "oss://imm-test-hl-shanghai/2.docx", "SrcType": "", "TgtUri": "oss://imm-test-hl-shanghai/2.docx/edit", "UserName": "******", "UserID": "1234", "NotifyTopicName": "imm-test-hl-mns-topic-shanghai", "NotifyEndpoint": "http://1023210024677934.mns.cn-shanghai-internal.aliyuncs.com/", "FileID": "1234" }' """) parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-e", "--endpoint", help="endpoint") parser.add_argument("-r", "--region-id", help="region") parser.add_argument("--role", help="role") parser.add_argument("--owner-id", help="user id") parser.add_argument("--request", help="request") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file(args.credential) if not args.endpoint and args.region_id: args.endpoint = "https://imm.{}.aliyuncs.com".format(args.region_id) security_token = '' if args.owner_id and args.role: res = assume_role("https://sts.aliyuncs.com", args.access_key_id, args.access_key_secret, args.owner_id, args.role) args.access_key_id = res["Credentials"]["AccessKeyId"] args.access_key_secret = res["Credentials"]["AccessKeySecret"] security_token = res["Credentials"]["SecurityToken"] request = json.loads(args.request) if request["Action"] == "PreviewV1": del(request["Action"]) preview("https://preview.imm.aliyuncs.com/index.html", request, args.access_key_id, args.access_key_secret, security_token) else: print(json.dumps(do(args.endpoint, request, args.access_key_id, args.access_key_secret, security_token)))
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 bss.py -i ak -s sk -r cn-shanghai -a QueryBillOverview --billing-cycle 2020-06 python3 bss.py -i ak -s sk -r cn-shanghai -a QueryInstanceBill --billing-cycle 2020-06 python3 bss.py -i ak -s sk -r cn-shanghai -a QueryInstanceBill --billing-date 2020-07-10 python3 bss.py -i ak -s sk -r cn-shanghai -a QueryInstanceBill --billing-date 2020-09-15 | jq '.[] | select(.ProductCode=="imm")' """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-a", "--action", help="action", choices=[ "QueryBillOverview", "QueryInstanceBill", "DescribeInstanceBill" ]) parser.add_argument("-c", "--credential", help="credential file") parser.add_argument( "--billing-cycle", default=(datetime.datetime.now() - datetime.timedelta(days=40)).strftime("%Y-%m"), help="billing cycle") parser.add_argument("--billing-date", help="billing date") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) client = AcsClient(args.access_key_id, args.access_key_secret, args.region_id) if args.billing_date: args.billing_cycle = args.billing_date[:7] if args.action == "QueryBillOverview": print( json.dumps( query_bill_overview(client, args.billing_cycle, args.billing_date))) elif args.action == "DescribeInstanceBill": print( json.dumps( describe_instance_bill(client, args.billing_cycle, args.billing_date))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 oss.py -i ak -s sk -r cn-shanghai -a PutSymlink --bucket imm-test-hl-shanghai --object 1.docx --symlink 1.link.pdf python3 oss.py -i ak -s sk -r cn-shanghai -a GetObject --bucket imm-test-hl-shanghai --object 1.docx --filename 1.docx python3 oss.py -i ak -s sk -r cn-shanghai -a PutObject --bucket imm-test-hl-shanghai --object 1.docx --filename 1.docx """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-a", "--action", help="action", choices=["PutSymlink", "PutObject", "GetObject"]) parser.add_argument("--bucket", help="bucket") parser.add_argument("--object", help="object") parser.add_argument("--symlink", help="symlink") parser.add_argument("--filename", help="filename") parser.add_argument("--override", type=bool, help="override") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) auth = oss2.Auth(args.access_key_id, args.access_key_secret) bucket = oss2.Bucket(auth, "http://oss-{}.aliyuncs.com".format(args.region_id), args.bucket) print(args.filename, args.object) if args.action == "PutSymlink": print(json.dumps(put_symlink(bucket, args.object, args.symlink))) elif args.action == "PutObject": print( json.dumps( put_object(bucket, args.object, args.filename, args.override))) elif args.action == "GetObject": print( json.dumps( get_object(bucket, args.object, args.filename, args.override))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse.RawTextHelpFormatter(prog, width=200), description="""example: python3 pop.py -c ~/.aksk/ccp-admin -i ak -s sk -e https://slb-share.cn-zhangjiakou.aliyuncs.com --request '{ "Action": "InnerQueryLoadbalancerByInstanceId", "RegionId": "cn-zhangjiakou", "LoadBalancerId": "lb-8vb3wrwhxvr00i27rxjh4", "Version": "2014-05-15" }' | jq -r .Data | jq . python3 pop.py -c ~/.aksk/imm-test -i ak -s sk -e https://imm.cn-shanghai.aliyuncs.com --request '{ "Action": "GetOfficeEditURL", "Project": "hl-shanghai-doc-project", "SrcUri": "oss://imm-test-hl-shanghai/1.docx", "SrcType": "", "TgtUri": "oss://imm-test-hl-shanghai/1.docx/edit", "UserName": "******", "UserID": "1234", "NotifyTopicName": "imm-test-hl-mns-topic-shanghai", "NotifyEndpoint": "http://1023210024677934.mns.cn-shanghai-internal.aliyuncs.com/", "FileID": "1234", "Version": "2017-09-06" }' """) parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-e", "--endpoint", required=True, help="endpoint") parser.add_argument("--role", help="role") parser.add_argument("--owner-id", help="user id") parser.add_argument("--request", help="request") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file(args.credential) security_token = '' if args.owner_id and args.role: res = assume_role("https://sts.aliyuncs.com", args.access_key_id, args.access_key_secret, args.owner_id, args.role) args.access_key_id = res["Credentials"]["AccessKeyId"] args.access_key_secret = res["Credentials"]["AccessKeySecret"] security_token = res["Credentials"]["SecurityToken"] request = json.loads(args.request) print(json.dumps(do(args.endpoint, request, args.access_key_id, args.access_key_secret, security_token)))
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 rds.py -i ak -s sk -r cn-shanghai -a DescribeDBInstances python3 rds.py -i ak -s sk -r cn-shanghai -a DescribeDBInstanceAttribute --instance-id rm-uf6x9546140uj8rnv python3 rds.py -i ak -s sk -r cn-shanghai -a DescribeDBInstanceAttribute --instance-name weboffice-regression-rds """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument( "-a", "--action", help="action", choices=["DescribeDBInstances", "DescribeDBInstanceAttribute"]) parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("--instance-id", help="instance id") parser.add_argument("--instance-name", help="instance name") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) config = open_api_models.Config( access_key_id=args.access_key_id, access_key_secret=args.access_key_secret, region_id=args.region_id, ) if args.action == "DescribeDBInstances": print(json.dumps(describe_db_instances(config, args.region_id))) elif args.action == "DescribeDBInstanceAttribute": print( json.dumps( describe_db_instance_attribute(config, args.region_id, args.instance_id, args.instance_name))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -a CreateTable -t yaconfig --meta '[ ["Block", "STRING"], ["Section", "STRING"] ]' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -a DescribeTable -t yaconfig python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -a ListTable python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t ImmTasks -a GetTask --owner 1023210024677934 --project imm-test-hl-doc-proj-shanghai --task formatconvert-00402572-d8e9-4750-ab88-ac3f388f63d1 python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a GetRange > IMMConfig.json python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a GetRow --primary-keys '{"Block": "WebOfficeBilling", "Section": "SLS"}' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a PutRow --rows '{"PrimaryKeys": {"Block": "WebOfficeBilling", "Section": "SLS"}, "Columns": {"Enable": true}}' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a PutRow --primary-keys '{"Block": "WebOfficeBilling", "Section": "SLS"}' --column '{"Enable": false}' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a UpdateRow --primary-keys '{"Block": "WebOfficeBilling", "Section": "SLS"}' --column '{"Enable": false}' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a GetCanaryDeploy --primary-keys '{"Block": "Base", "Section": "Common"}' --column CanaryDeploy python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-regressi -t IMMConfig -a PutCanaryDeploy \\ --primary-keys '{"Block": "Base", "Section": "Common"}' --column CanaryDeploy --deploy '{ "ObjectType": "user", "ObjectId": "default", "Provider": "WPS", "Function": "CONVERT", "LatestVersion": { "SyncAppName": "IMM_DEV_APP_CONVERT_WPS_default_20200520_regression", "SyncClusterName": "IMM_DEV_CLUSTER_CONVERT_WPS_default_20200520_regression_sync", "AsyncAppName": "IMM_DEV_APP_CONVERT_WPS_default_20200923_regression", "AsyncClusterName": "IMM_DEV_CLUSTER_CONVERT_WPS_default_20200923_regression" }, "CanaryDeployVersion": { "SyncAppName": "IMM_DEV_APP_CONVERT_WPS_default_20200520_regression", "SyncClusterName": "IMM_DEV_CLUSTER_CONVERT_WPS_default_20200520_regression_sync", "AsyncAppName": "IMM_DEV_APP_CONVERT_WPS_default_20200923_regression", "AsyncClusterName": "IMM_DEV_CLUSTER_CONVERT_WPS_default_20200923_regression" }, "Percent": 100 }' python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a DelCanaryDeploy \\ --primary-keys '{"Block": "Base", "Section": "Common"}' --column CanaryDeploy --deploy '{ "ObjectType": "user", "ObjectId": "default", "Provider": "WPS", "Function": "CONVERT" }' cat IMMConfig.json | python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d imm-dev-hl -t IMMConfig -a PutRow python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d configcenter -t config_imm_dev_hl -a GetConfigCenter python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d configcenter -t config_imm_dev_hl -a PutConfigCenter --config "$(cat 1.json)" python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d configcenter -t config_imm_dev_hl -a PutConfigCenter --config "$(cat 1.json)" --cmkey "xxx" --encrypt python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d configcenter -t config_imm_dev_hl -a GetConfigCenterByKey --key WebOffice_OSS_AK python3 ots.py -c ~/.aksk/imm-dev -r cn-shanghai -d configcenter -t config_imm_dev_hl -a PutConfigCenterByKey --key WebOffice_OSS_AK --value xxx --cmkey "xxx" --encrypt """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-e", "--endpoint", help="endpoint") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-d", "--instance", help="instance") parser.add_argument("-t", "--table", help="table") parser.add_argument("--rows", help="row json format") parser.add_argument("--primary-keys", help="primary keys json format") parser.add_argument("--columns", help="columns json format") parser.add_argument("--meta", help="table meta") parser.add_argument("--change", nargs="?", const=True, default=False, type=str2bool, help="change data") parser.add_argument("--column", help="column name") parser.add_argument("--deploy", help="canary deploy json format") parser.add_argument("--owner", type=str, help="owner id") parser.add_argument("--project", help="project") parser.add_argument("--task", help="task id") parser.add_argument("--key", help="configcenter key") parser.add_argument("--value", help="configcenter value") parser.add_argument("--cmkey", help="configcenter cmkey") parser.add_argument("--config", help="configcenter config") parser.add_argument("--encrypt", nargs="?", const=True, default=False, type=str2bool, help="configcenter config") parser.add_argument("-a", "--action", help="action", choices=[ "ListTable", "GetRange", "PutRow", "UpdateRow", "GetRow", "CreateTable", "DescribeTable", "GetCanaryDeploy", "PutCanaryDeploy", "DelCanaryDeploy", "GetTask", "GetConfigCenter", "PutConfigCenter", "GetConfigCenterByKey", "PutConfigCenterByKey" ]) args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) if not args.endpoint: args.endpoint = "https://{}.{}.ots.aliyuncs.com".format( args.instance, args.region_id) client = tablestore.OTSClient(args.endpoint, args.access_key_id, args.access_key_secret, args.instance) kms_cli = AcsClient(args.access_key_id, args.access_key_secret, args.region_id) if args.action == "ListTable": print(json.dumps(list_table(client))) elif args.action == "GetRange": for row in get_range(client, args.table): print(json.dumps(row)) elif args.action == "GetRow": row = get_row(client, args.table, json.loads(args.primary_keys)) if row is not None: print(json.dumps(row)) elif args.action == "UpdateRow": if args.rows: if args.rows[0] == "@": rows = json.load((open(args.rows[1:]))) else: rows = json.loads(args.rows) if isinstance(rows, list): for row in rows: print( json.dumps( update_row(client, args.table, row, args.change))) else: print( json.dumps( update_row(client, args.table, rows, args.change))) elif args.primary_keys and args.columns: print( json.dumps( update_row( client, args.table, { "PrimaryKeys": json.loads(args.primary_keys), "Columns": json.loads(args.columns) }, args.change))) else: for row in sys.stdin: print( json.dumps(update_row(client, args.table, json.loads(row)))) elif args.action == "PutRow": if args.rows: if args.rows[0] == "@": rows = json.load((open(args.rows[1:]))) else: rows = json.loads(args.rows) if isinstance(rows, list): for row in rows: print( json.dumps( put_row(client, args.table, row, args.change))) else: print( json.dumps(put_row(client, args.table, rows, args.change))) elif args.primary_keys and args.columns: print( json.dumps( put_row( client, args.table, { "PrimaryKeys": json.loads(args.primary_keys), "Columns": json.loads(args.columns) }, args.change))) else: for row in sys.stdin: print(json.dumps(put_row(client, args.table, json.loads(row)))) elif args.action == "GetCanaryDeploy": print( json.dumps( get_canary_deploy(client, args.table, json.loads(args.primary_keys), args.column))) elif args.action == "PutCanaryDeploy": print( json.dumps( put_canary_deploy(client, args.table, json.loads(args.primary_keys), args.column, json.loads(args.deploy), args.change))) elif args.action == "DelCanaryDeploy": print( json.dumps( del_canary_deploy(client, args.table, json.loads(args.primary_keys), args.column, json.loads(args.deploy), args.change))) elif args.action == "GetTask": print( json.dumps( get_task(client, args.table, args.owner, args.project, args.task))) elif args.action == "CreateTable": print( json.dumps(create_table(client, args.table, json.loads(args.meta)))) elif args.action == "DescribeTable": print(json.dumps(describe_table(client, args.table))) elif args.action == "GetConfigCenter": print(json.dumps(get_configcenter(client, kms_cli, args.table))) elif args.action == "PutConfigCenter": print( json.dumps( put_configcenter(client, args.table, json.loads(args.config), args.change, kms_cli, args.cmkey, args.encrypt))) elif args.action == "GetConfigCenterByKey": print( json.dumps( get_configcenter_key(client, kms_cli, args.table, args.key))) elif args.action == "PutConfigCenterByKey": print( json.dumps( put_configcenter_key(client, args.table, args.key, args.value, args.change, kms_cli, args.cmkey, args.encrypt))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a ListClusters | jq ".[] | \\"\\(.Id) \\(.Name)\\"" python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a GetCluster --cluster-id cluster-id | jq ".Groups.workers | \\"\\(.ActualVMCount) \\(.InstanceType)\\"" python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a GetCluster --cluster-name IMM_DEV_CLUSTER_CONVERT_WPS_default_20200408_hl | jq . python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a ListClusterInstances --cluster-id cluster-id --group-id group-id python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a GetApp --app-name IMM_DEV_APP_CONVERT_WPS_default_20200520_regression python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a CreateAppWPS --app-name IMM_DEV_APP_CONVERT_WPS_default_20200920_hl python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a CreateClusterWPS \\ --cluster-name IMM_DEV_CLUSTER_CONVERT_WPS_default_20200920_hl \\ --vpc-id=vpc-id \\ --mount-entry-source=oss://imm-dev-cn-shanghai/zyb/pkgs/CONVERT/WPS/ \\ --version=20200520 \\ --vm-count=1 python3 bc.py -c ~/.aksk/imm-dev -r cn-shanghai -a CreateJobWPS \\ --app-name IMM_DEV_APP_CONVERT_WPS_default_20200520_hl \\ --cluster-name IMM_DEV_CLUSTER_CONVERT_WPS_default_20200520_hl \\ --parameters "{ \\"TgtType\\": \\"vector\\", \\"TgtUri\\": \\"oss://imm-dev-hl-shanghai/1.docx/imm/vector\\", \\"SrcUri\\": \\"oss://imm-dev-hl-shanghai/1.docx\\", \\"StartPage\\": 1, \\"EndPage\\": 200, \\"MaxSheetRow\\": 1000, \\"MaxSheetCol\\": 100 }" """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("-a", "--action", help="action", choices=[ "ListClusters", "GetCluster", "ListClusterInstances", "GetApp", "CreateApp", "CreateAppWPS", "CreateCluster", "CreateClusterWPS", "CreateJobWPS" ]) parser.add_argument("--cluster-id", help="cluster id") parser.add_argument("--group-id", help="group id") parser.add_argument("--app-name", help="app name") parser.add_argument("--app-desc", help="app desc") parser.add_argument("--cluster-name", help="cluster name") parser.add_argument("--cluster-desc", help="cluster desc") parser.add_argument("--vpc-id", help="vpc id") parser.add_argument("--mount-entry-source", help="mount entry source") parser.add_argument("--version", help="version") parser.add_argument("--vm-count", help="vm count") parser.add_argument("--parameters", help="parameters") parser.add_argument("--instance-type", default="ecs.sn2.medium", help="instance type") args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) client = Client("batchcompute.{}.aliyuncs.com".format(args.region_id), args.access_key_id, args.access_key_secret) if args.action == "ListClusters": print(json.dumps(list_clusters(client))) elif args.action == "GetCluster": print( json.dumps(get_cluster(client, args.cluster_id, args.cluster_name))) elif args.action == "ListClusterInstances": print( json.dumps( list_cluster_instances(client, args.cluster_id, args.group_id))) elif args.action == "GetApp": print(json.dumps(get_app(client, args.app_name))) elif args.action == "CreateApp": print(json.dumps(create_app(client, args.app_desc))) elif args.action == "CreateCluster": print(json.dumps(create_cluster(client, args.cluster_desc))) elif args.action == "CreateAppWPS": print(json.dumps(create_app_wps(client, args.app_name))) elif args.action == "CreateClusterWPS": print( json.dumps( (create_cluster_wps(client, args.cluster_name, args.vpc_id, args.mount_entry_source, args.version, args.vm_count, args.instance_type)))) elif args.action == "CreateJobWPS": print( json.dumps( create_job_wps(client, args.app_name, args.cluster_name, args.parameters))) else: parser.print_help()
def main(): parser = argparse.ArgumentParser(formatter_class=lambda prog: argparse. RawTextHelpFormatter(prog, width=200), description="""example: python3 slb.py -i ak -s sk -r cn-shanghai -a DescribeLoadBalancers python3 slb.py -i ak -s sk -r cn-shanghai -a DescribeAccessControlLists python3 slb.py -i ak -s sk -r cn-shanghai -a DescribeAccessControlListAttribute --acl-name weboffice python3 slb.py -i ak -s sk -r cn-shanghai -a DescribeAccessControlListAttribute --acl-id acl-uf6oj1uhti7tf2wd3qdtg python3 slb.py -i ak -s sk -r cn-shanghai -a AddAccessControlListEntry --acl-name weboffice --ip "$(wget -qO - icanhazip.com)" python3 slb.py -i ak -s sk -r cn-shanghai -a AddAccessControlListEntry --acl-name weboffice --ip "$(dig +short myip.opendns.com @resolver1.opendns.com)" """) parser.add_argument("-i", "--access-key-id", help="access key id") parser.add_argument("-s", "--access-key-secret", help="access key secret") parser.add_argument("-c", "--credential", help="credential file") parser.add_argument("-r", "--region-id", help="region id") parser.add_argument("--load-balancer-name", help="load balancer name") parser.add_argument("--load-balancer-id", help="load balancer id") parser.add_argument("--ip", help="ip") parser.add_argument("--acl-id", help="acl id") parser.add_argument("--acl-name", help="acl name") parser.add_argument("--listener-port", help="listener port") parser.add_argument("--backend-port", help="backend port") parser.add_argument( "-a", "--action", help="action", choices=[ "DescribeLoadBalancerAttribute", "DescribeLoadBalancers", "DescribeAccessControlLists", "DescribeAccessControlListAttribute", "AddAccessControlListEntry", "CreateLoadBalancerTCPListener" ]) args = parser.parse_args() if args.credential: args.access_key_id, args.access_key_secret = aksk.load_from_file( args.credential) config = open_api_models.Config( access_key_id=args.access_key_id, access_key_secret=args.access_key_secret, region_id=args.region_id, ) if args.action == "DescribeLoadBalancers": print( json.dumps( describe_load_balancers(config, args.region_id, args.load_balancer_id, args.load_balancer_name))) elif args.action == "DescribeLoadBalancerAttribute": print( json.dumps( describe_load_balancer_attribute(config, args.region_id, args.load_balancer_id, args.load_balancer_name))) elif args.action == "DescribeAccessControlLists": print(json.dumps(describe_access_control_lists(config, args.region_id))) elif args.action == "DescribeAccessControlListAttribute": print( json.dumps( describe_access_control_list_attribute(config, args.region_id, args.acl_id, args.acl_name))) elif args.action == "AddAccessControlListEntry": print( json.dumps( add_access_control_list_entry(config, args.region_id, args.acl_id, args.acl_name, args.ip))) elif args.action == "CreateLoadBalancerTCPListener": print( json.dumps( create_load_balancer_tcplistener(config, args.acl_id, args.listener_port, args.backend_port))) else: parser.print_help()