Exemplo n.º 1
0
Arquivo: ecs.py Projeto: hatlonely/ops
def describe_instances(config: open_api_models.Config, region_id, instance_id, instance_name, vpc_id, vpc_name, public_ip, private_ip):
    req = ecs_20140526_models.DescribeInstancesRequest()
    req.region_id = region_id
    if instance_name:
        req.instance_name = "*" + instance_name + "*"
    if instance_id:
        req.instance_ids = json.dumps(instance_id.split(","))
    if vpc_id:
        req.vpc_id = vpc_id
    if not vpc_id and vpc_name:
        res = vpc.describe_vpcs(config, region_id, vpc_id, vpc_name)
        req.vpc_id = res[0]["VpcId"]
    if public_ip:
        req.public_ip_addresses = json.dumps([public_ip])
    if private_ip:
        req.private_ip_addresses = json.dumps([private_ip])

    instances = []
    count = 0
    while True:
        res = Ecs20140526Client(config).describe_instances(req)
        res = res.to_map()["body"]
        for instance in res["Instances"]["Instance"]:
            instances.append(instance)
        if len(instances) >= res["TotalCount"] or count >= 100:
            break
        count += 1
        req.page_number = res["PageNumber"] + 1
    return instances
Exemplo n.º 2
0
Arquivo: ecs.py Projeto: hatlonely/ops
def join_security_group(config: open_api_models.Config, region_id, instance_id, security_group_id):
    req = ecs_20140526_models.JoinSecurityGroupRequest()
    req.region_id = region_id
    req.instance_id = instance_id
    req.security_group_id = security_group_id
    res = Ecs20140526Client(config).join_security_group(req)
    return res.to_map()["body"]
Exemplo n.º 3
0
 def create_client(self) -> Ecs20140526Client:
     config = open_api_models.Config(
         # 您的AccessKey ID,
         access_key_id=self.access_key_id,
         # 您的AccessKey Secret,
         access_key_secret=self.access_key_secret)
     # 访问的域名
     config.region_id = self.region
     return Ecs20140526Client(config)
Exemplo n.º 4
0
Arquivo: ecs.py Projeto: hatlonely/ops
def create_security_group(config: open_api_models.Config, region_id, security_group_name, vpc_id, vpc_name):
    req = ecs_20140526_models.CreateSecurityGroupRequest()
    req.region_id = region_id
    if vpc_id:
        req.vpc_id = vpc_id
    if not vpc_id and vpc_name:
        res = vpc.describe_vpcs(config, region_id, vpc_id, vpc_name)
        req.vpc_id = res[0]["VpcId"]
    req.security_group_name = security_group_name
    req.description = "create by ecs.py"
    res = Ecs20140526Client(config).create_security_group(req)
    return res.to_map()["body"]
Exemplo n.º 5
0
Arquivo: ecs.py Projeto: hatlonely/ops
def modify_security_group_rule(config: open_api_models.Config, region_id, security_group_id, security_group_name, vpc_id, vpc_name, cidr_ip, ip_protocol="all", port_range="-1/-1"):
    req = ecs_20140526_models.ModifySecurityGroupRuleRequest()
    req.region_id = region_id
    req.ip_protocol = ip_protocol
    req.port_range = port_range
    req.source_cidr_ip = cidr_ip
    if security_group_id:
        req.security_group_id = security_group_id
    if security_group_name:
        res = describe_security_groups(config, region_id, security_group_name, vpc_id, vpc_name)
        req.security_group_id = res[0]["SecurityGroupId"]
    res = Ecs20140526Client(config).modify_security_group_rule(req)
    return res.to_map()["body"]
Exemplo n.º 6
0
Arquivo: ecs.py Projeto: hatlonely/ops
def authorize_security_group(config: open_api_models.Config, region_id, security_group_id, security_group_name, vpc_id, vpc_name, cidr_ip, ip_protocol="all", port_range="-1/-1"):
    req = ecs_20140526_models.AuthorizeSecurityGroupRequest()
    req.region_id = region_id
    req.ip_protocol = ip_protocol
    req.port_range = port_range
    req.source_cidr_ip = cidr_ip
    if security_group_id:
        req.security_group_id = security_group_id
    if security_group_name:
        res = describe_security_groups(config, region_id, security_group_name, vpc_id, vpc_name)
        req.security_group_id = res[0]["SecurityGroupId"]
    req.description = "create by ecs.py"
    res = Ecs20140526Client(config).authorize_security_group(req)
    return res.to_map()["body"]
Exemplo n.º 7
0
 def __init__(self,
              access_key_id=None,
              secret_access_key=None,
              region=None,
              output_path=None):
     config = open_api_models.Config(access_key_id=access_key_id,
                                     access_key_secret=secret_access_key)
     config.endpoint = "cs.%s.aliyuncs.com" % region
     self._eks = CS20151215Client(config)
     config.endpoint = "ecs.%s.aliyuncs.com" % region
     self._ecs = Ecs20140526Client(config)
     config.endpoint = "vpc.aliyuncs.com"
     self._vpc = Vpc20160428Client(config)
     self._region = region
     self._output_path = output_path
Exemplo n.º 8
0
 def create_client(
     access_key_id: str,
     access_key_secret: str,
 ) -> Ecs20140526Client:
     """
     使用AK&SK初始化账号Client
     @param access_key_id:
     @param access_key_secret:
     @return: Client
     @throws Exception
     """
     config = open_api_models.Config(
         # 您的AccessKey ID,
         access_key_id='xxxxx',
         # 您的AccessKey Secret,
         access_key_secret='xxxxx')
     # 访问的域名
     config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com'
     return Ecs20140526Client(config)
Exemplo n.º 9
0
Arquivo: ecs.py Projeto: hatlonely/ops
def describe_security_groups(config: open_api_models.Config, region_id, security_group_name, vpc_id, vpc_name):
    req = ecs_20140526_models.DescribeSecurityGroupsRequest()
    req.region_id = region_id
    req.vpc_id = vpc_id
    if not vpc_id and vpc_name:
        res = vpc.describe_vpcs(config, region_id, vpc_id, vpc_name)
        req.vpc_id = res[0]["VpcId"]

    security_groups = []
    count = 0
    while True:
        res = Ecs20140526Client(config).describe_security_groups(req)
        res = res.to_map()["body"]
        for security_group in res["SecurityGroups"]["SecurityGroup"]:
            security_groups.append(security_group)
        if len(security_groups) >= res["TotalCount"] or count >= 100:
            break
        count += 1
        req.page_number = res["PageNumber"] + 1
    if not security_group_name:
        return security_groups
    pattern = re.compile(".*" + security_group_name + ".*")
    return [x for x in security_groups if pattern.match(x["SecurityGroupName"])]
Exemplo n.º 10
0
Arquivo: ecs.py Projeto: hatlonely/ops
def describe_price(config: open_api_models.Config, region_id, instance_type):
    req = ecs_20140526_models.DescribePriceRequest()
    req.instance_type = instance_type
    req.region_id = region_id
    res = Ecs20140526Client(config).describe_price(req)
    return res.to_map()["body"]["PriceInfo"]
Exemplo n.º 11
0
Arquivo: ecs.py Projeto: hatlonely/ops
def describe_regions(config: open_api_models.Config):
    req = ecs_20140526_models.DescribeInstancesRequest()
    res = Ecs20140526Client(config).describe_regions(req)
    return res.to_map()["body"]["Regions"]["Region"]