Fix Bug 2270: Feature (Start, Stop, Rebuild) The update type shows as completed before VM status is changed in OpenStack of that VM
Change-Id: I5e88c3cabfadffe7faed2996f31d45ab6cb9f617
Signed-off-by: Rahul Kumar <rahul.k4@tataelxsi.co.in>
diff --git a/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py b/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py
index 54d0e88..221fc24 100644
--- a/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py
+++ b/RO-VIM-openstack/osm_rovim_openstack/vimconn_openstack.py
@@ -3376,6 +3376,12 @@
if "start" in action_dict:
if action_dict["start"] == "rebuild":
server.rebuild()
+ vm_state = self.__wait_for_vm(vm_id, "ACTIVE")
+ if not vm_state:
+ raise nvExceptions.BadRequest(
+ 409,
+ message="Cannot 'REBUILD' vm_state is in ERROR",
+ )
else:
if server.status == "PAUSED":
server.unpause()
@@ -3383,6 +3389,12 @@
server.resume()
elif server.status == "SHUTOFF":
server.start()
+ vm_state = self.__wait_for_vm(vm_id, "ACTIVE")
+ if not vm_state:
+ raise nvExceptions.BadRequest(
+ 409,
+ message="Cannot 'START' vm_state is in ERROR",
+ )
else:
self.logger.debug(
"ERROR : Instance is not in SHUTOFF/PAUSE/SUSPEND state"
@@ -3399,6 +3411,12 @@
self.logger.debug("server status %s", server.status)
if server.status == "ACTIVE":
server.stop()
+ vm_state = self.__wait_for_vm(vm_id, "SHUTOFF")
+ if not vm_state:
+ raise nvExceptions.BadRequest(
+ 409,
+ message="Cannot 'STOP' vm_state is in ERROR",
+ )
else:
self.logger.debug("ERROR: VM is not in Active state")
raise vimconn.VimConnException(