diff options
author | 2020-09-24 11:03:54 +0200 | |
---|---|---|
committer | 2020-09-24 12:37:57 +0200 | |
commit | c07e351a18ab99bccb96ffd97da623a8bb7b8e6d (patch) | |
tree | 4000553cdc03f9d331651a3a97e9416d878ddfe0 /src/onaptests/steps/cloud/register_cloud.py | |
parent | d53b9bcaf16fc22554bd8b18e293d310a6056859 (diff) |
Avoid to add vim info with ESR if the vim is already provisionned
- Optimization of the cloud configuration
- CloudRegionCreateStep was called twice
- Change the name of RegisterCloudRegionToMulticloud to RegisterCloudRegion
to be more generic
- Having the cloud creation in RegisterCloudRegionStep avoid adding the ESR
each time an instantiation is launched so the CloudRegionCreateStep is now
inserted in RegisterCloudRegionStep
- USE_MULTICLOUD was no longer checked
- The adding of availability zone and tenant is also moved to RegisterCloudRegionStep
Pylint issue corrected
Minor errors (init without added step)
Issue-ID: TEST-264
Signed-off-by: Thierry Hardy <thierry.hardy@orange.com>
Change-Id: Ibfd5506412fd7472144165c19bfe9e4dc53d6e08
Signed-off-by: Thierry Hardy <thierry.hardy@orange.com>
Diffstat (limited to 'src/onaptests/steps/cloud/register_cloud.py')
-rw-r--r-- | src/onaptests/steps/cloud/register_cloud.py | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/onaptests/steps/cloud/register_cloud.py b/src/onaptests/steps/cloud/register_cloud.py new file mode 100644 index 0000000..c6871b8 --- /dev/null +++ b/src/onaptests/steps/cloud/register_cloud.py @@ -0,0 +1,85 @@ +import time +from uuid import uuid4 + +from onapsdk.aai.cloud_infrastructure import CloudRegion +from onapsdk.configuration import settings + +from ..base import BaseStep + + +class RegisterCloudRegionStep(BaseStep): + """Cloud region registration step.""" + + def execute(self): + """Register cloud region + + Use settings values: + - CLOUD_REGION_CLOUD_OWNER, + - CLOUD_REGION_ID, + - CLOUD_DOMAIN, + - VIM_USERNAME, + - VIM_PASSWORD, + - VIM_SERVICE_URL, + - TENANT_NAME. + """ + super().execute() + self._logger.info("*Check if cloud region exists *") + try: + cloud_region: CloudRegion = CloudRegion.get_by_id( + cloud_owner=settings.CLOUD_REGION_CLOUD_OWNER, + cloud_region_id=settings.CLOUD_REGION_ID, + ) + except ValueError: + self._logger.info("*Create the cloud region *") + cloud_region: CloudRegion = CloudRegion.create( + cloud_owner=settings.CLOUD_REGION_CLOUD_OWNER, + cloud_region_id=settings.CLOUD_REGION_ID, + orchestration_disabled=False, + in_maint=False, + cloud_type=settings.CLOUD_REGION_TYPE, + cloud_region_version=settings.CLOUD_REGION_VERSION + ) + cloud_region.add_esr_system_info( + esr_system_info_id=str(uuid4()), + user_name=settings.VIM_USERNAME, + password=settings.VIM_PASSWORD, + system_type="VIM", + service_url=settings.VIM_SERVICE_URL, + ssl_insecure=False, + system_status="active", + cloud_domain=settings.CLOUD_DOMAIN, + default_tenant=settings.TENANT_NAME + ) + if settings.USE_MULTICLOUD: + self._logger.info("*Multicloud registration *") + cloud_region.register_to_multicloud() + time.sleep(20) + nb_try = 0 + nb_try_max = 3 + while nb_try < nb_try_max: + if not cloud_region.tenants: + time.sleep(20) + else: + break + nb_try += 1 + + # Retrieve the tenant, created by multicloud registration + # if it does not exist, create it + try: + cloud_region.get_tenant(settings.TENANT_ID) + except ValueError: + self._logger.warning("Impossible to retrieve the Specificed Tenant") + self._logger.debug("If no multicloud selected, add the tenant") + cloud_region.add_tenant( + tenant_id=settings.TENANT_ID, + tenant_name=settings.TENANT_NAME) + + # be sure that an availability zone has been created + # if not, create it + try: + cloud_region.get_availability_zone_by_name( + settings.AVAILABILITY_ZONE_NAME) + except ValueError: + cloud_region.add_availability_zone( + settings.AVAILABILITY_ZONE_NAME, + settings.AVAILABILITY_ZONE_TYPE) |