From 38955e53b5a7c74b61a3eb046847ccec494401ed Mon Sep 17 00:00:00 2001 From: sguazt <marco.guazzone@gmail.com> Date: Tue, 5 Jan 2021 11:26:25 +0100 Subject: [PATCH] Chameleon: use InstanceStatus instead of strings in node status map --- .../modules/chameleon_openstacksdk/manager.py | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/easycloud/modules/chameleon_openstacksdk/manager.py b/easycloud/modules/chameleon_openstacksdk/manager.py index 1d4225b..093f003 100644 --- a/easycloud/modules/chameleon_openstacksdk/manager.py +++ b/easycloud/modules/chameleon_openstacksdk/manager.py @@ -24,24 +24,24 @@ class OpenStackInstance(Instance): """ _NODE_STATUS_MAP = { - 'BUILD': 'pending', - 'REBUILD': 'pending', - 'ACTIVE': 'running', - 'SUSPENDED': 'suspended', - 'SHUTOFF': 'stopped', - 'DELETED': 'terminated', - 'QUEUE_RESIZE': 'pending', - 'PREP_RESIZE': 'pending', - 'VERIFY_RESIZE': 'running', - 'PASSWORD': 'pending', - 'RESCUE': 'pending', - 'REBOOT': 'rebooting', - 'HARD_REBOOT': 'rebooting', - 'SHARE_IP': 'pending', - 'SHARE_IP_NO_CONFIG': 'pending', - 'DELETE_IP': 'pending', - 'ERROR': 'error', - 'UNKNOWN': 'unknown' + 'BUILD': InstanceStatus.PENDING, + 'REBUILD': InstanceStatus.PENDING, + 'ACTIVE': InstanceStatus.RUNNING, + 'SUSPENDED': InstanceStatus.SUSPENDED, + 'SHUTOFF': InstanceStatus.STOPPED, + 'DELETED': InstanceStatus.TERMINATED, + 'QUEUE_RESIZE': InstanceStatus.PENDING, + 'PREP_RESIZE': InstanceStatus.PENDING, + 'VERIFY_RESIZE': InstanceStatus.RUNNING, + 'PASSWORD': InstanceStatus.PENDING, + 'RESCUE': InstanceStatus.PENDING, + 'REBOOT': InstanceStatus.REBOOTING, + 'HARD_REBOOT': InstanceStatus.REBOOTING, + 'SHARE_IP': InstanceStatus.PENDING, + 'SHARE_IP_NO_CONFIG': InstanceStatus.PENDING, + 'DELETE_IP': InstanceStatus.PENDING, + 'ERROR': InstanceStatus.ERROR, + 'UNKNOWN': InstanceStatus.UNKNOWN } def __init__(self, os_conn, os_instance): @@ -91,9 +91,11 @@ class OpenStackInstance(Instance): def start(self): self._os_conn.compute.start_server(self._os_inst) + #TODO: call "self._os_conn.compute.wait_for_server(self._os_inst, status='ACTIVE', wait = timeout)" to perform a synchronous version of this method (note, if timeout is None you should invoke this method without the "wait" parameter, catching the "ResourceTimeout" exception and, in case such an exception is thrown, calling again the "wait_for_server()" method) def stop(self): self._os_conn.compute.stop_server(self._os_inst) + #TODO: call "self._os_conn.compute.wait_for_server(self._os_inst, status='ACTIVE', wait = timeout)" to perform a synchronous version of this method (note, if timeout is None you should invoke this method without the "wait" parameter, catching the "ResourceTimeout" exception and, in case such an exception is thrown, calling again the "wait_for_server()" method) class ChameleonCloud(MetaManager): -- GitLab