Revert "Revert "Create basic_cnf test leveraging onapsdk""
[testsuite/pythonsdk-tests.git] / src / onaptests / scenario / basic_cnf.py
1 #!/usr/bin/env python
2 """Basic CNF test case."""
3 import logging
4 import time
5
6 from xtesting.core import testcase
7 from onapsdk.configuration import settings
8 import onaptests.utils.exceptions as onap_test_exceptions
9 from onaptests.steps.instantiate.vf_module_ala_carte import YamlTemplateVfModuleAlaCarteInstantiateStep
10
11 class BasicCnf(testcase.TestCase):
12     """Onboard then instantiate a simple CNF with ONAP."""
13
14     __logger = logging.getLogger(__name__)
15
16     def __init__(self, **kwargs):
17         """Init BasicCnf."""
18         if "case_name" not in kwargs:
19             kwargs["case_name"] = 'basic_cnf'
20         super(BasicCnf, self).__init__(**kwargs)
21         self.__logger.debug("BasicCnf init started")
22         self.test = YamlTemplateVfModuleAlaCarteInstantiateStep(
23                 cleanup=settings.CLEANUP_FLAG)
24         self.start_time = None
25         self.stop_time = None
26         self.result = 0
27
28     def run(self):
29         """Run onap_tests with basic_cnf VM."""
30         self.start_time = time.time()
31         self.__logger.debug("start time")
32         try:
33             self.test.execute()
34             self.__logger.info("basic_cnf successfully created")
35             # The cleanup is part of the test, not only a teardown action
36             if settings.CLEANUP_FLAG:
37                 self.__logger.info("basic_cnf cleanup called")
38                 time.sleep(settings.CLEANUP_ACTIVITY_TIMER)
39                 self.test.cleanup()
40                 self.result = 100
41             else:
42                 self.__logger.info("No cleanup requested. Test completed.")
43                 self.result = 100
44         except onap_test_exceptions.TestConfigurationException:
45             self.result = 0
46             self.__logger.error("Basic CNF configuration error")
47         except onap_test_exceptions.ServiceInstantiateException:
48             self.result = 0
49             self.__logger.error("Basic CNF service instantiation error")
50         except onap_test_exceptions.ServiceCleanupException:
51             self.result = 0
52             self.__logger.error("Basic CNF service instance cleanup error")
53         except onap_test_exceptions.VnfInstantiateException:
54             self.result = 0
55             self.__logger.error("Basic CNF Vnf instantiation error")
56         except onap_test_exceptions.VnfCleanupException:
57             self.result = 0
58             self.__logger.error("Basic CNF Vnf instance cleanup error")
59         except onap_test_exceptions.ProfileInformationException:
60             self.__logger.error("Missing k8s profile information")
61             self.result = 0
62         except onap_test_exceptions.ProfileCleanupException:
63             self.__logger.error("K8s profile deletion failed")
64             self.result = 0
65         except onap_test_exceptions.VfModuleInstantiateException:
66             self.result = 0
67             self.__logger.error("Basic CNF Module instantiation error")
68         except onap_test_exceptions.VfModuleCleanupException:
69             self.__logger.error("Basic CNF Module cleanup failed.")
70             self.result = 0
71         finally:
72             self.stop_time = time.time()
73
74     def clean(self):
75         """Clean Additional resources if needed."""
76         self.__logger.info("Generate Test report")
77         self.test.reports_collection.generate_report()