@@ -55,13 +55,14 @@ def delete(self, runner: Runner):
55
55
raise e
56
56
return super ().delete (runner )
57
57
58
- def _get_instance_name (self , instance : InstanceTypeDef ) -> str :
59
- """Get the instance name."""
60
- name = ""
58
+ def _get_tag_value (
59
+ self , instance : InstanceTypeDef , key : str , default : str = ""
60
+ ) -> str :
61
+ """Get the tag value."""
61
62
for tag in instance .get ("Tags" , []):
62
- if tag .get ("Key" ) == "Name" :
63
- name = tag .get ("Value" , "" )
64
- return name
63
+ if tag .get ("Key" ) == key :
64
+ return tag .get ("Value" , default )
65
+ return default
65
66
66
67
def list (self ) -> List [Runner ]:
67
68
"""List runners."""
@@ -81,7 +82,7 @@ def list(self) -> List[Runner]:
81
82
for reservation in reservations :
82
83
for instance in reservation .get ("Instances" , []):
83
84
instance_id = instance .get ("InstanceId" , "" )
84
- name = self ._get_instance_name (instance )
85
+ name = self ._get_tag_value (instance , "Name" , instance_id )
85
86
try :
86
87
runner = Runner .find (
87
88
Runner .instance_id == instance_id ,
@@ -91,8 +92,10 @@ def list(self) -> List[Runner]:
91
92
name = name ,
92
93
instance_id = instance_id ,
93
94
runner_group_name = self .runner_group ,
94
- busy = False ,
95
+ busy = bool (self ._get_tag_value (instance , "busy" )),
96
+ status = self ._get_tag_value (instance , "status" , "online" ),
95
97
created_at = instance .get ("LaunchTime" ),
98
+ started_at = instance .get ("LaunchTime" ),
96
99
)
97
100
runners .append (runner )
98
101
return runners
0 commit comments