Better exception handling
[testsuite/pythonsdk-tests.git] / src / onaptests / scenario / clearwater_ims.py
1 #!/usr/bin/env python
2 """vIMS VM test case."""
3 import logging
4 import time
5
6 from xtesting.core import testcase
7 from onapsdk.configuration import settings
8
9 import onaptests.utils.exceptions as onap_test_exceptions
10 from onaptests.steps.instantiate.vf_module_ala_carte import YamlTemplateVfModuleAlaCarteInstantiateStep
11
12 class ClearwaterIms(testcase.TestCase):
13     """Onboard then instantiate a clearwater vIMS with ONAP."""
14
15     __logger = logging.getLogger(__name__)
16
17     def __init__(self, **kwargs):
18         """Init Clearwater IMS."""
19         # import clearwater_ims_nomulticloud_settings needed
20         if "case_name" not in kwargs:
21             kwargs["case_name"] = 'clearwater_ims'
22         super(ClearwaterIms, self).__init__(**kwargs)
23         self.__logger.debug("vIMS init started")
24         self.test = YamlTemplateVfModuleAlaCarteInstantiateStep(
25                 cleanup=settings.CLEANUP_FLAG)
26         self.start_time = None
27         self.stop_time = None
28         self.result = 0
29
30     def run(self):
31         """Run vIMS test."""
32         self.start_time = time.time()
33         self.__logger.debug("start time")
34         try:
35             self.test.execute()
36             self.__logger.info("VNF clearwater IMS successfully created")
37             # The cleanup is part of the test, not only a teardown action
38             if settings.CLEANUP_FLAG:
39                 self.__logger.info("VNF clearwater IMS cleanup called")
40                 time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
41                 self.test.cleanup()
42                 self.result = 100
43             else:
44                 self.__logger.info("No cleanup requested. Test completed.")
45                 self.result = 100
46             self.stop_time = time.time()
47         except onap_test_exceptions.OnapTestException as exc:
48             self.result = 0
49             self.__logger.error(exc.error_message)
50         finally:
51             self.stop_time = time.time()
52
53     def clean(self):
54         """Clean Additional resources if needed."""
55         try:
56             self.test.reports_collection.generate_report()
57         except:
58             self.__logger.error("Impossible to generate reporting")