def run(self, terms, variables=None, **kwargs):
filters = kwargs.get('filters', None)
profile = kwargs.get('profile', None)
return_facts = kwargs.get('return', None)
region = kwargs.get('region', 'us-east-1')
if type(return_facts) is str:
return_facts = return_facts.split(',')
try:
connection = boto.vpc.connect_to_region(region_name=region, profile_name=profile)
except BotoServerError as e:
raise AnsibleError(e)
try:
all_subnets = connection.get_all_subnets(filters=filters)
except BotoServerError as e:
raise AnsibleError(e)
results = []
d={}
for subnet in all_subnets:
facts = ec2_vpc_subnet_facts.get_subnet_info(subnet)
if return_facts is None:
results.append(facts)
else:
for f in return_facts:
try:
return_fact = facts[f]
except KeyError:
return_fact = None
d[f]=return_fact
results.append(d.copy())
return(results)
评论列表
文章目录