Use wait_for_finish method to raise an exception if orchestration requests took more than 10 minutes
Issue-ID: TEST-316
Signed-off-by: Michal Jagiello <michal.jagiello@t-mobile.pl>
Change-Id: I0d82d91b0f7104caf32e5905d5950047d7551a7b
 K8S_CONFIG = None  # None means it will use default config (~/.kube/config)
 K8S_NAMESPACE = "onap"  # Kubernetes namespace
 #SOCK_HTTP = "socks5h://127.0.0.1:8091"
+
+ORCHESTRATION_REQUEST_TIMEOUT = 60.0 * 10  # Ten minutes in seconds
 
             vid_project,
             service_instance_name=settings.SERVICE_INSTANCE_NAME
         )
-        while not service_instantiation.finished:
-            time.sleep(10)
+        try:
+            service_instantiation.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+        except TimeoutError:
+            self._logger.error("Service instantiation %s timed out", self.service_instance_name)
+            raise onap_test_exceptions.ServiceInstantiateException
+        if service_instantiation.failed:
+            self._logger.error("Service instantiation %s failed", self.service_instance_name)
+            raise onap_test_exceptions.ServiceInstantiateException
 
 
 class YamlTemplateServiceAlaCarteInstantiateStep(YamlTemplateBaseStep):
             vid_project,
             service_instance_name=self.service_instance_name
         )
-        while not service_instantiation.finished:
-            time.sleep(10)
+        try:
+            service_instantiation.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+        except TimeoutError:
+            self._logger.error("Service instantiation %s timed out", self.service_instance_name)
+            raise onap_test_exceptions.ServiceCleanupException
         if service_instantiation.failed:
+            self._logger.error("Service instantiation %s failed", self.service_instance_name)
             raise onap_test_exceptions.ServiceInstantiateException
         else:
             service_subscription: ServiceSubscription = customer.get_service_subscription_by_service_type(self.service_name)
 
         """
         service_deletion = self._service_instance.delete()
-        nb_try = 0
-        nb_try_max = 30
-        while not service_deletion.finished and nb_try < nb_try_max:
-            self._logger.info("Wait for Service deletion")
-            nb_try += 1
-            time.sleep(15)
+        try:
+            service_deletion.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+        except TimeoutError:
+            self._logger.error("Service deletion %s timed out", self._service_instance_name)
+            raise onap_test_exceptions.ServiceCleanupException
         if service_deletion.finished:
             self._logger.info("Service %s deleted", self._service_instance_name)
         else:
 
             tenant=tenant,
             service_instance_name=self.service_instance_name
         )
-        service_instantiation.wait_for_finish(timeout=settings.INSTANTIATION_TIMEOUT)
+        try:
+            service_instantiation.wait_for_finish(timeout=settings.ORCHESTRATION_REQUEST_TIMEOUT)
+        except TimeoutError:
+            self._logger.error("Service instantiation %s timed out", self.service_instance_name)
+            raise onap_test_exceptions.ServiceInstantiateException
         if service_instantiation.failed:
+            self._logger.error("Service instantiation %s failed", self.service_instance_name)
             raise onap_test_exceptions.ServiceInstantiateException
         else:
             service_subscription: ServiceSubscription = customer.get_service_subscription_by_service_type(self.service_name)
 
         """
         service_deletion = self._service_instance.delete()
-        service_deletion.wait_for_finish(timeout=600)
+        try:
+            service_deletion.wait_for_finish(timeout=settings.ORCHESTRATION_REQUEST_TIMEOUT)
+        except TimeoutError:
+            self._logger.error("Service deletion %s timed out", self._service_instance_name)
+            raise onap_test_exceptions.ServiceCleanupException
         if service_deletion.finished:
             self._logger.info("Service %s deleted", self._service_instance_name)
         else:
 
-import time
 from typing import Iterable
 from uuid import uuid4
 from yaml import load
                     tenant,
                     self._service_instance_name,
                     vnf_parameters=self.get_vnf_parameters(vnf_instance.vnf.name))
-            while not vf_module_instantiation.finished:
-                time.sleep(10)
-            if vf_module_instantiation.failed:
-                raise onap_test_exceptions.VfModuleInstantiateException
+                try:
+                    vf_module_instantiation.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                    if vf_module_instantiation.failed:
+                        self._logger.error("VfModule instantiation %s failed", vf_module.name)
+                        raise onap_test_exceptions.VfModuleInstantiateException
+                except TimeoutError:
+                    self._logger.error("VfModule instantiation %s timed out", vf_module.name)
+                    raise onap_test_exceptions.VfModuleInstantiateException
 
     @YamlTemplateBaseStep.store_state(cleanup=True)
     def cleanup(self) -> None:
                 self._logger.info("Delete VF Module %s",
                                   vf_module.name)
                 vf_module_deletion = vf_module.delete()
-                nb_try = 0
-                nb_try_max = 30
-
-                while not vf_module_deletion.finished and nb_try < nb_try_max:
-                    self._logger.info("Wait for vf module deletion")
-                    nb_try += 1
-                    time.sleep(20)
-                if vf_module_deletion.finished:
+
+                try:
+                    vf_module_deletion.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                    if vf_module_deletion.failed:
+                        self._logger.error("VfModule deletion %s failed", vf_module.name)
+                        raise onap_test_exceptions.VfModuleCleanupException
                     self._logger.info("VfModule %s deleted", vf_module.name)
-                else:
-                    self._logger.error("VfModule deletion %s failed", vf_module.name)
+                except TimeoutError:
+                    self._logger.error("VfModule deletion %s timed out", vf_module.name)
                     raise onap_test_exceptions.VfModuleCleanupException
         super().cleanup()
 
-import time
 import re
 from typing import Iterable
 from uuid import uuid4
                 platform,
                 network_instance_name=f"{self.service_instance_name}_net_{idx}",
                 subnets=self.get_subnets(network.name))
-            while not net_instantiation.finished:
-                time.sleep(10)
-            if net_instantiation.failed:
+            try:
+                net_instantiation.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                if net_instantiation.failed:
+                    self._logger.error("VL instantiation %s failed", net_instantiation.name)
+                    raise onap_test_exceptions.NetworkInstantiateException
+            except TimeoutError:
+                self._logger.error("VL instantiation %s timed out", net_instantiation.name)
                 raise onap_test_exceptions.NetworkInstantiateException
 
     @YamlTemplateBaseStep.store_state(cleanup=True)
                 self._logger.info("Start network deletion %s",net_instance.name)
                 net_deletion = net_instance.delete()
                 try:
-                    net_deletion.wait_for_finish()
+                    net_deletion.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                    if net_deletion.failed:
+                        self._logger.error("VL deletion %s failed", net_instance.name)
+                        raise onap_test_exceptions.NetworkCleanupException
                 except TimeoutError:
+                    self._logger.error("VL deletion %s timed out", net_instance.name)
                     raise onap_test_exceptions.NetworkCleanupException
             super().cleanup()
 
-import time
 from uuid import uuid4
 from yaml import load
 
                 cloud_region,
                 tenant,
                 f"{self.service_instance_name}_vnf_{idx}")
-            while not vnf_instantiation.finished:
-                time.sleep(10)
-            if vnf_instantiation.failed:
+            try:
+                vnf_instantiation.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                if vnf_instantiation.failed:
+                    self._logger.error("VNF instantiation %s failed", vnf.name)
+                    raise onap_test_exceptions.VnfInstantiateException
+            except TimeoutError:
+                self._logger.error("VNF instantiation %s timed out", vnf.name)
                 raise onap_test_exceptions.VnfInstantiateException
 
     @YamlTemplateBaseStep.store_state(cleanup=True)
         """
         for vnf_instance in self._service_instance.vnf_instances:
             vnf_deletion = vnf_instance.delete()
-            nb_try = 0
-            nb_try_max = 30
-
-            while not vnf_deletion.finished and nb_try < nb_try_max:
-                self._logger.info("Wait for vnf deletion")
-                nb_try += 1
-                time.sleep(15)
-            if vnf_deletion.finished:
-                self._logger.info("VNF %s deleted", vnf_instance.name)
-            else:
-                self._logger.error("VNF deletion %s failed", vnf_instance.name)
+
+            try:
+                vnf_deletion.wait_for_finish(settings.ORCHESTRATION_REQUEST_TIMEOUT)
+                if vnf_deletion.failed:
+                    self._logger.error("VNF deletion %s failed", vnf_instance.name)
+                    raise onap_test_exceptions.VnfCleanupException
+            except TimeoutError:
+                self._logger.error("VNF deletion %s timed out", vnf_instance.name)
                 raise onap_test_exceptions.VnfCleanupException
         super().cleanup()