Use clouds.yaml rather than duplicating the openstack data in the conf 70/112270/5
authormrichomme <morgan.richomme@orange.com>
Tue, 8 Sep 2020 09:43:20 +0000 (11:43 +0200)
committermrichomme <morgan.richomme@orange.com>
Wed, 9 Sep 2020 08:03:38 +0000 (10:03 +0200)
Issue-ID: TEST-261

Signed-off-by: mrichomme <morgan.richomme@orange.com>
Change-Id: I624fca14a30dde9e704a9b982b55cbb8028b37fd
Signed-off-by: mrichomme <morgan.richomme@orange.com>
README.md
requirements.txt
src/onaptests/configuration/ubuntu16_multicloud_yaml_settings.py
src/onaptests/configuration/ubuntu16_nomulticloud_noyaml_settings.py

index 9987a40..4515944 100644 (file)
--- a/README.md
+++ b/README.md
@@ -39,6 +39,15 @@ See ubuntu16test as example
   including the dynamic forwarding port for ssh tunnel in
   src/onaptests/configuration/settings.py
 
+- Set OpenStack configuration: there are 2 ways to provide the cloud information
+  If you got the clouds.yaml, you need to reference your cloud with the env
+  variable OS_TEST_CLOUD
+  ```shell
+  export OS_TEST_CLOUD="cloud-name-referenced-in-the-cloud-configuration"
+  ```
+  If you do not have access to the cloud config, you must precise all the
+  parameters manually
+
 - Export the setting file in a environment variable
   ```shell
   export ONAP_PYTHON_SDK_SETTINGS="onaptests.configuration.ubuntu16_multicloud_yaml_settings"
@@ -57,7 +66,7 @@ environment and configuration.
   that the templates files for your service are defined, start to run
   the different steps:
   ```shell
-  python run.py
+  python run_basicvm_nomulticloud.py
   ```
 
 - By default, all the logs are stored in the file pythonsdk.debug.log.
index 6782ed2..40637d1 100644 (file)
@@ -1 +1,2 @@
--e git+https://gitlab.com/Orange-OpenSource/lfn/onap/python-onapsdk.git@develop#egg=onapsdk
\ No newline at end of file
+openstacksdk
+-e git+https://gitlab.com/Orange-OpenSource/lfn/onap/python-onapsdk.git@develop#egg=onapsdk
index 4b97866..33d0886 100644 (file)
@@ -1,8 +1,6 @@
-# pylint: disable=unused-import
-from .settings import *
+from .settings import * # pylint: disable=W0614
 
 """ Specific ubuntu16 with multicloud and yaml config scenario."""
-# pylint: disable=bad-whitespace
 
 USE_MULTICLOUD = True
 
index 52d5922..b3076f6 100644 (file)
@@ -1,9 +1,11 @@
 import os
 import openstack
 
-# pylint: disable=unused-import
-from .settings import *
+from .settings import * # pylint: disable=W0614
 
+""" Specific ubuntu16 without multicloud and without yaml config scenario."""
+
+# pylint: disable=bad-whitespace
 # The ONAP part
 USE_MULTICLOUD = False
 
@@ -13,10 +15,8 @@ SERVICE_NAME = "basicvm-ubuntu-service"
 VF_NAME = "basicvm_ubuntu_vf"
 
 CLOUD_REGION_CLOUD_OWNER = "basicvm-cloud-owner"
-CLOUD_REGION_ID = "RegionOne"
 CLOUD_REGION_TYPE = "openstack"
 CLOUD_REGION_VERSION = "openstack"
-CLOUD_DOMAIN = "Default"
 
 AVAILABILITY_ZONE_NAME = "basicvm-availability-zone"
 AVAILABILITY_ZONE_TYPE = "nova"
@@ -35,22 +35,29 @@ SERVICE_INSTANCE_NAME = "basicvm_ubuntu16_service_instance"
 VSP_FILE_PATH = "templates/heat_files/ubuntu16/ubuntu16.zip"
 
 # The cloud Part
-# TODO use the openstack client and assume a cloud.yaml is Provided
-# to avoid data duplication
-CLOUD_REGION_ID = "RegionOne"
-
-TEST_CLOUD = os.getenv('OS_TEST_CLOUD', 'onap-cloud-config')
+# Assuming a cloud.yaml is available, use the openstack client
+# to retrieve cloud info and avoid data duplication
+TEST_CLOUD = os.getenv('OS_TEST_CLOUD')
 try:
-    cloud = openstack.connect(cloud=TEST_CLOUD)
-    VIM_USERNAME = cloud.config.auth['username']
-    VIM_PASSWORD = cloud.config.auth['password']
-    VIM_SERVICE_URL = cloud.config.auth['auth_url']
-    # need a keystone authent to retrieve project info
-    TENANT_ID = "" # Fill me
-    TENANT_NAME = "" # Fill me
-except ValueError:
+    if TEST_CLOUD is not None:
+        cloud = openstack.connect(cloud=TEST_CLOUD)
+        VIM_USERNAME = cloud.config.auth['username']
+        VIM_PASSWORD = cloud.config.auth['password']
+        VIM_SERVICE_URL = cloud.config.auth['auth_url']
+        TENANT_ID = cloud.config.auth['project_id']
+        TENANT_NAME = cloud.config.auth['project_name']
+        CLOUD_REGION_ID = cloud.config.region_name
+        CLOUD_DOMAIN = cloud.config.auth['project_domain_name']
+    else:
+        raise KeyError
+except KeyError:
+    # If you do not use the cloud.yaml as imput for your openstack
+    # put the input data here
+    # Note if 1 parameter is missing in the clouds.yaml, we fallback here
     TENANT_ID = "" # Fill me
     TENANT_NAME = "" # Fill me
     VIM_USERNAME = ""  # Fill me
     VIM_PASSWORD = ""  # Fill me
     VIM_SERVICE_URL = ""  # Fill me
+    CLOUD_REGION_ID = "RegionOne" # Update me if needed
+    CLOUD_DOMAIN = "Default" # Update me if needed