def populate_ecs_service_params(self, session, cf_params, cluster, elb_name, env, region, listener_port):
elb_client = session.client('elbv2', region_name=region)
balancer_arn, vpc_id = ApplyECS.get_load_balancer(elb_client, elb_name, cluster, env)
listener_arn = ApplyECS.get_elb_listener(elb_client, balancer_arn, port=listener_port)
cf_params['vpcid'] = vpc_id
cf_params['listenerarn'] = listener_arn
response = elb_client.describe_rules(ListenerArn=listener_arn)
rules = response['Rules']
existing_priorities = set([rule['Priority'] for rule in rules])
if len(existing_priorities) >= 75:
logging.error("Listener %s already has %d rules, cannot add more services" % (listener_arn, len(existing_priorities)))
raise Exception("Listener %s already has %d rules, cannot add more services" % (listener_arn, len(existing_priorities)))
for i in range(10, 21):
if str(i) not in existing_priorities:
cf_params['priority'] = str(i)
break
评论列表
文章目录