Skip to content

Commit ba98e61

Browse files
committed
fix(Server):refactored get server by unique name
1 parent 4332cd4 commit ba98e61

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

simple_vm_client/openstack_connector/openstack_connector.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,17 +1091,15 @@ def set_server_metadata(self, openstack_id: str, metadata) -> None:
10911091
)
10921092

10931093
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)
11051103
if server.vm_state == VmStates.ACTIVE.value:
11061104
ssh_port, udp_port = self._calculate_vm_ports(server=server)
11071105

@@ -1117,11 +1115,16 @@ def get_server_by_unique_name(self, unique_name: str) -> Server:
11171115
server.flavor = self.get_flavor(
11181116
name_or_id=server.flavor["id"], ignore_error=True
11191117
)
1120-
11211118
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:
11231126
raise DefaultException(
1124-
message=f"Error when getting server {unique_name}! - {e}"
1127+
message=f"Error when getting server {unique_name}! - multiple entries"
11251128
)
11261129

11271130
def get_server(self, openstack_id: str) -> Server:

0 commit comments

Comments
 (0)