in infrastructure-provisioning/src/general/lib/aws/meta_lib.py [0:0]
def provide_index(resource_type, tag_name, tag_value=''):
try:
ids = []
if resource_type == 'EMR':
if tag_value:
list = get_emr_list(tag_value, 'Value', True)
else:
list = get_emr_list(tag_name, 'Key', True)
emr = boto3.client('emr')
for i in list:
response = emr.describe_cluster(ClusterId=i)
time.sleep(5)
number = response.get('Cluster').get('Name').split('-')[-1]
if number not in ids:
ids.append(int(number))
elif resource_type == 'EC2':
if tag_value:
list = get_ec2_list(tag_name, tag_value)
else:
list = get_ec2_list(tag_name)
for i in list:
for tag in i.tags:
if tag['Key'] == 'Name':
ids.append(int(tag['Value'].split('-')[-1]))
else:
print("Incorrect resource type!")
index = 1
while True:
if index not in ids:
break
else:
index += 1
return index
except Exception as err:
logging.error("Error with providing index: " + str(err) + "\n Traceback: " + traceback.print_exc(
file=sys.stdout))
append_result(str({"error": "Error with providing index",
"error_message": str(err) + "\n Traceback: " + traceback.print_exc(file=sys.stdout)}))
traceback.print_exc(file=sys.stdout)