def rundeck_list_resources():
'''
Return a list of S3 and EC2 Resources from all available profiles
'''
resp_obj = {}
awsconfig = aws_config.AwsConfig()
profiles = awsconfig.get_profiles()
# Populate s3 buckets.
for profile in profiles:
session = boto3.Session(profile_name=profile)
s3client = session.client('s3')
try:
s3info = s3client.list_buckets()
except botocore.exceptions.ClientError:
s3info['Buckets'] = []
for bucket in s3info['Buckets']:
bucket_text = "s3: (%s) %s" % (profile, bucket['Name'])
resp_obj[bucket_text] = bucket['Name']
# Populate ec2 instances.
for profile in profiles:
session = boto3.Session(profile_name=profile)
ec2client = session.client('ec2', region_name="us-east-1")
try:
ec2info = ec2client.describe_instances()
except botocore.exceptions.ClientError:
ec2info['Instances'] = []
for reservation in ec2info['Reservations']:
for instance in reservation['Instances']:
instance_text = "ec2: (%s) %s" % \
(profile, instance['InstanceId'])
resp_obj[instance_text] = instance['InstanceId']
return jsonify(resp_obj)
评论列表
文章目录