コード例 #1
0
ファイル: aws.py プロジェクト: oremj/mozawsdeploy
def wait_for_healthy_instances(lb_name, new_instance_ids, timeout):
    elb_conn = ec2.get_elb_connection()
    ec2_conn = ec2.get_connection()

    elb_conn.register_instances(lb_name, new_instance_ids)

    start_time = time.time()
    while True:
        if timeout < (time.time() - start_time):
            elb_conn.deregister_instances(lb_name, new_instance_ids)
            ec2_conn.create_tags(new_instance_ids, {'Status': 'FAILED'})
            raise Exception('Timeout exceeded.')

        instance_health = elb_conn.describe_instance_health(lb_name,
                                                            new_instance_ids)

        if all(i.state == 'InService' for i in instance_health):
            registered = elb_conn.describe_instance_health(lb_name)
            old_inst_ids = [i.instance_id for i in registered
                            if i.instance_id not in new_instance_ids]

            elb_conn.deregister_instances(lb_name, old_inst_ids)
            ec2_conn.create_tags(old_inst_ids, {'Status': 'OLD'})
            return

        time.sleep(10)
コード例 #2
0
ファイル: aws.py プロジェクト: oremj/mozawsdeploy
def print_security_groups():
    def print_rules(sgs, rules, direction):
        for rule in rules:
            if rule.to_port == rule.from_port:
                port = rule.from_port
            else:
                port = "%s-%s" % (rule.from_port,
                                  rule.to_port)

            if port is None:
                port = 'ALL'

            protocol = rule.ip_protocol
            if protocol == '-1':
                protocol = 'ALL'

            for grant in rule.grants:
                if grant.cidr_ip:
                    grant = grant.cidr_ip
                else:
                    grant = next(i for i in sgs
                                 if i.id == grant.group_id).name

                print "\t:%s/%s %s %s" % (port,
                                          protocol,
                                          direction,
                                          grant)

    c = ec2.get_connection()
    sgs = c.get_all_security_groups()
    sgs = [i for i in sgs if i.vpc_id == config.vpc_id]
    sgs.sort(key=lambda x: x.name)
    for sg in sgs:
        print "%s:" % sg.name
        print_rules(sgs, sg.rules, '<-')
        print_rules(sgs, sg.rules_egress, '->')
        print