@@ -1091,17 +1091,15 @@ def set_server_metadata(self, openstack_id: str, metadata) -> None:
1091
1091
)
1092
1092
1093
1093
def get_server_by_unique_name (self , unique_name : str ) -> Server :
1094
- try :
1095
- logger .info (f"Get Server by unique_name: { unique_name } " )
1096
- server : Server = self .openstack_connection .get_server (
1097
- name_or_id = unique_name
1098
- )
1099
- if server is None :
1100
- logger .exception (f"Instance { unique_name } not found" )
1101
- raise ServerNotFoundException (
1102
- message = f"Instance { unique_name } not found" ,
1103
- name_or_id = unique_name ,
1104
- )
1094
+ logger .info (f"Get Server by unique_name: { unique_name } " )
1095
+
1096
+ filters = {"name" : unique_name }
1097
+
1098
+ servers = list (self .openstack_connection .list_servers (filters = filters ))
1099
+ logger .info (f"Found { len (servers )} with name { unique_name } " )
1100
+ if len (servers ) == 1 :
1101
+ server = list (servers )[0 ]
1102
+ logger .info (server )
1105
1103
if server .vm_state == VmStates .ACTIVE .value :
1106
1104
ssh_port , udp_port = self ._calculate_vm_ports (server = server )
1107
1105
@@ -1117,11 +1115,16 @@ def get_server_by_unique_name(self, unique_name: str) -> Server:
1117
1115
server .flavor = self .get_flavor (
1118
1116
name_or_id = server .flavor ["id" ], ignore_error = True
1119
1117
)
1120
-
1121
1118
return server
1122
- except OpenStackCloudException as e :
1119
+ elif len (servers ) == 0 :
1120
+ logger .exception (f"Instance { unique_name } not found" )
1121
+ raise ServerNotFoundException (
1122
+ message = f"Instance { unique_name } not found" ,
1123
+ name_or_id = unique_name ,
1124
+ )
1125
+ else :
1123
1126
raise DefaultException (
1124
- message = f"Error when getting server { unique_name } ! - { e } "
1127
+ message = f"Error when getting server { unique_name } ! - multiple entries "
1125
1128
)
1126
1129
1127
1130
def get_server (self , openstack_id : str ) -> Server :
0 commit comments