Bug 2316: Fix for Unable to do vertical scaling when VM is in Shutdown state
[osm/RO.git] / RO-VIM-openstack / osm_rovim_openstack / vimconn_openstack.py
index f225be4..2017d56 100644 (file)
@@ -645,9 +645,10 @@ class vimconnector(vimconn.VimConnector):
             # TODO parse input and translate to VIM format (openmano_schemas.new_vminstance_response_schema)
             server_dict = server.to_dict()
             try:
-                server_dict["flavor"]["id"] = self.nova.flavors.find(
-                    name=server_dict["flavor"]["original_name"]
-                ).id
+                if server_dict["flavor"].get("original_name"):
+                    server_dict["flavor"]["id"] = self.nova.flavors.find(
+                        name=server_dict["flavor"]["original_name"]
+                    ).id
             except nClient.exceptions.NotFound as e:
                 self.logger.warning(str(e.message))
             return server_dict
@@ -3901,7 +3902,9 @@ class vimconnector(vimconn.VimConnector):
                     self.nova.servers.resize(server=vm_id, flavor=new_flavor_id)
                     vm_state = self.__wait_for_vm(vm_id, "VERIFY_RESIZE")
                     if vm_state:
-                        instance_resized_status = self.confirm_resize(vm_id)
+                        instance_resized_status = self.confirm_resize(
+                            vm_id, instance_status
+                        )
                         return instance_resized_status
                     else:
                         raise nvExceptions.BadRequest(
@@ -3922,7 +3925,7 @@ class vimconnector(vimconn.VimConnector):
         ) as e:
             self._format_exception(e)
 
-    def confirm_resize(self, vm_id):
+    def confirm_resize(self, vm_id, instance_state):
         """
         Confirm the resize of an instance
         param:
@@ -3931,7 +3934,7 @@ class vimconnector(vimconn.VimConnector):
         self._reload_connection()
         self.nova.servers.confirm_resize(server=vm_id)
         if self.get_vdu_state(vm_id)[0] == "VERIFY_RESIZE":
-            self.__wait_for_vm(vm_id, "ACTIVE")
+            self.__wait_for_vm(vm_id, instance_state)
         instance_status = self.get_vdu_state(vm_id)[0]
         return instance_status
 
@@ -3942,9 +3945,10 @@ class vimconnector(vimconn.VimConnector):
             all_servers = self.nova.servers.list(detailed=True)
             try:
                 for server in all_servers:
-                    server.flavor["id"] = self.nova.flavors.find(
-                        name=server.flavor["original_name"]
-                    ).id
+                    if server.flavor.get("original_name"):
+                        server.flavor["id"] = self.nova.flavors.find(
+                            name=server.flavor["original_name"]
+                        ).id
             except nClient.exceptions.NotFound as e:
                 self.logger.warning(str(e.message))
             all_ports = self.neutron.list_ports()