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"
   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.
 
 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
 
 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"
 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