Skip to content

Commit 5e2ffb0

Browse files
author
Jim Robinson
committed
Add region
1 parent 96b2d36 commit 5e2ffb0

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

croudtech_ecs_tools/cli.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@
44
from click.termui import prompt
55
import os
66

7-
ecs_client = boto3.client("ecs")
87
class EcsTools:
98
_services = {}
109
_tasks = {}
10+
11+
def __init__(self, region):
12+
self.region = region
13+
self.ecs_client = boto3.client("ecs", region=self.region)
14+
1115
@property
1216
def clusters(self):
1317
if not hasattr(self, "_clusters"):
14-
paginator = ecs_client.get_paginator("list_clusters")
18+
paginator = self.ecs_client.get_paginator("list_clusters")
1519
response_iterator = paginator.paginate(
1620
PaginationConfig={
1721
"PageSize": 10,
@@ -27,7 +31,7 @@ def clusters(self):
2731
def get_services(self, cluster):
2832
if cluster not in self._services:
2933
self._services[cluster] = []
30-
paginator = ecs_client.get_paginator("list_services")
34+
paginator = self.ecs_client.get_paginator("list_services")
3135

3236
response_iterator = paginator.paginate(
3337
cluster=cluster,
@@ -44,7 +48,7 @@ def get_tasks(self, cluster, service):
4448
task_key = cluster+service
4549
if task_key not in self._tasks:
4650
self._tasks[task_key] = []
47-
paginator = ecs_client.get_paginator("list_tasks")
51+
paginator = self.ecs_client.get_paginator("list_tasks")
4852
response_iterator = paginator.paginate(
4953
cluster=cluster,
5054
serviceName=service,
@@ -58,7 +62,7 @@ def get_tasks(self, cluster, service):
5862
return self._tasks[task_key]
5963

6064
def describe_task(self, cluster, task_arn):
61-
response = ecs_client.describe_tasks(
65+
response = self.ecs_client.describe_tasks(
6266
cluster=cluster,
6367
tasks=[
6468
task_arn,
@@ -68,7 +72,7 @@ def describe_task(self, cluster, task_arn):
6872
return task
6973

7074
def execute_command(self,cluster, container, task_arn, command="bash"):
71-
return ecs_client.execute_command(
75+
return self.ecs_client.execute_command(
7276
cluster=cluster,
7377
container=container["name"],
7478
command=command,
@@ -107,7 +111,6 @@ def get_cluster_options(self):
107111
return "\n".join(options)
108112

109113

110-
ecs_tools = EcsTools()
111114

112115

113116
@click.group()
@@ -117,8 +120,10 @@ def cli():
117120

118121

119122
@cli.command()
120-
# @click.option("--cluster", type=click.Choice(ecs_tools.clusters), required=True, prompt=True)
121-
def ecs_shell():
123+
@click.option("--region", required=True, default=os.getenv("AWS_DEFAULT_REGION", "eu-west-2"))
124+
def ecs_shell(region):
125+
ecs_tools = EcsTools(region)
126+
122127
"Shell into an ECS task container"
123128
click.secho(ecs_tools.get_cluster_options(), fg="cyan")
124129
cluster = ecs_tools.clusters[int(click.prompt("Please select a cluster"))]

0 commit comments

Comments
 (0)