in source/tag.py [0:0]
def main():
client = boto3.client('ecs', region_name = "us-east-2")
#List all clusters
clusters = client.list_clusters()
for cluster_arn in clusters['clusterArns']:
clusters_info = client.describe_clusters(
clusters = [cluster_arn]
)
print(cluster_arn)
# cluster_name= clusters_info['clusters'][0].get('clusterName')
# #clusters_info.
try:
#Get Services in a cluster
services = client.list_services(
cluster=cluster_arn,
launchType='EC2'
)
#
for service_arn in services['serviceArns']:
service_info = client.describe_services(
cluster=cluster_arn,
services=[service_arn],
)
service_name= service_info['services'][0].get('serviceName')
#List Tasks in the service
tasks = client.list_tasks(
cluster=cluster_arn,
serviceName=service_name,
launchType='EC2'
)
#Check Task Tags
for task_arn in tasks['taskArns']:
task_tags = client.list_tags_for_resource(
resourceArn=task_arn
)
#import pdb; pdb.set_trace()
if [x['key'] for x in task_tags['tags'] if 'aws:ecs:serviceName' in x['key']] or [x['key'] for x in task_tags['tags'] if 'Name' in x['key']] :
print(f"{task_arn} is tagged")
else:
#Tag Task if not already tagged with Name
response = client.tag_resource(
resourceArn=task_arn,
tags=[
{
'key': 'Name',
'value': service_name
},
]
)
print(f"{task_arn} now tagged with Name:{service_name}")
except ClientError as e:
print(e)
pass