Esempio n. 1
0
File: vpc.py Progetto: hatlonely/ops
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()
Esempio n. 2
0
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()
Esempio n. 3
0
File: bc2.py Progetto: hatlonely/ops
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()
Esempio n. 4
0
File: ecs.py Progetto: hatlonely/ops
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()
Esempio n. 5
0
File: imm.py Progetto: hatlonely/ops
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)))
Esempio n. 6
0
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()
Esempio n. 7
0
File: oss.py Progetto: hatlonely/ops
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()
Esempio n. 8
0
File: pop.py Progetto: hatlonely/ops
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)))
Esempio n. 9
0
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()
Esempio n. 10
0
File: ots.py Progetto: hatlonely/ops
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()
Esempio n. 11
0
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()
Esempio n. 12
0
File: slb.py Progetto: hatlonely/ops
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()