Revert "Revert "Create basic_cnf test leveraging onapsdk""
[testsuite/pythonsdk-tests.git] / src / onaptests / steps / cloud / connect_service_subscription_to_cloud_region.py
1 from onapsdk.aai.business import Customer, ServiceSubscription
2 from onapsdk.aai.cloud_infrastructure import CloudRegion, Tenant
3 from onapsdk.configuration import settings
4
5 from ..base import BaseStep
6 from .customer_service_subscription_create import CustomerServiceSubscriptionCreateStep
7 from .link_cloud_to_complex import LinkCloudRegionToComplexStep
8 from .register_cloud import RegisterCloudRegionStep
9 from .k8s_connectivity_info_create import K8SConnectivityInfoStep
10
11
12 class ConnectServiceSubToCloudRegionStep(BaseStep):
13     """Connect service subscription to cloud region step."""
14
15     def __init__(self, cleanup=False):
16         """Initialize step.
17
18         Substeps:
19             - LinkCloudRegionToComplexStep,
20             - RegisterCloudRegionStep,
21             - CustomerServiceSubscriptionCreateStep.
22
23         """
24         super().__init__(cleanup=cleanup)
25         if settings.CLOUD_REGION_TYPE == settings.K8S_REGION_TYPE:
26             self.add_step(K8SConnectivityInfoStep(cleanup=cleanup))
27         self.add_step(RegisterCloudRegionStep(cleanup=cleanup))
28         self.add_step(LinkCloudRegionToComplexStep(cleanup=cleanup))
29         self.add_step(CustomerServiceSubscriptionCreateStep(cleanup=cleanup))
30
31     @BaseStep.store_state
32     def execute(self):
33         """Connect service subsription to cloud region and tenant.
34
35         Use settings values:
36          - GLOBAL_CUSTOMER_ID,
37          - SERVICE_NAME,
38          - CLOUD_REGION_CLOUD_OWNER,
39          - CLOUD_REGION_ID.
40
41         """
42         super().execute()
43         customer: Customer = Customer.get_by_global_customer_id(
44             settings.GLOBAL_CUSTOMER_ID)
45         service_subscription: ServiceSubscription = customer.get_service_subscription_by_service_type(
46             settings.SERVICE_NAME)
47         cloud_region: CloudRegion = CloudRegion.get_by_id(
48             cloud_owner=settings.CLOUD_REGION_CLOUD_OWNER,
49             cloud_region_id=settings.CLOUD_REGION_ID,
50         )
51
52         # retrieve tenant
53         # for which we are sure that an availability zone has been created
54         tenant: Tenant = cloud_region.get_tenant(settings.TENANT_ID)
55
56         service_subscription.link_to_cloud_region_and_tenant(cloud_region=cloud_region, tenant=tenant)