Fix for the endpoint URL for kingbird
authorAshish Singh <ashishsingh2k8@gmail.com>
Tue, 2 Aug 2016 07:41:35 +0000 (13:11 +0530)
committerAshish Singh <ashishsingh2k8@gmail.com>
Tue, 2 Aug 2016 07:48:19 +0000 (13:18 +0530)
Currently, there is internal IP address which is getting populated
in tempest.conf. Since the tempest are run inside functest docker container
we need to use public IP address for accessing Kingbird services.

Now, there will not be any installer specific endpoints as we had earlier.
All should communicate with public endpoints.

Change-Id: Id22e7e4d9ece9a0000a1186113627b82d6ba400a
Signed-off-by: ashish singh <ashishsingh2k8@gmail.com>
testcases/OpenStack/tempest/run_tempest.py

index 3ee10b7..92a13f3 100755 (executable)
@@ -214,8 +214,8 @@ def configure_tempest(deployment_dir):
 
 
 def configure_tempest_feature(deployment_dir, mode):
-    """
-    Add/update needed parameters into tempest.conf file generated by Rally
+    """Add/update needed parameters into tempest.conf file generated by Rally
+
     """
 
     logger.debug("Finding tempest.conf file...")
@@ -231,56 +231,11 @@ def configure_tempest_feature(deployment_dir, mode):
     if mode == 'feature_multisite':
         config.set('service_available', 'kingbird', 'true')
         cmd = "openstack endpoint show kingbird | grep publicurl |\
-               awk '{print $4}' | awk -F '/' '{print $4}'"
-        kingbird_api_version = os.popen(cmd).read()
-        if os.environ.get("INSTALLER_TYPE") == 'fuel':
-            # For MOS based setup, the service is accessible
-            # via bind host
-            kingbird_conf_path = "/etc/kingbird/kingbird.conf"
-            installer_type = os.getenv('INSTALLER_TYPE', 'Unknown')
-            installer_ip = os.getenv('INSTALLER_IP', 'Unknown')
-            installer_username = ft_utils.get_parameter_from_yaml(
-                "multisite." + installer_type +
-                "_environment.installer_username")
-            installer_password = ft_utils.get_parameter_from_yaml(
-                "multisite." + installer_type +
-                "_environment.installer_password")
-
-            ssh_options = "-o UserKnownHostsFile=/dev/null -o \
-                StrictHostKeyChecking=no"
-
-            # Get the controller IP from the fuel node
-            cmd = 'sshpass -p %s ssh 2>/dev/null %s %s@%s \
-                    \'fuel node --env 1| grep controller | grep "True\|  1" \
-                    | awk -F\| "{print \$5}"\'' % (installer_password,
-                                                   ssh_options,
-                                                   installer_username,
-                                                   installer_ip)
-            multisite_controller_ip = \
-                "".join(os.popen(cmd).read().split())
-
-            # Login to controller and get bind host details
-            cmd = 'sshpass -p %s ssh 2>/dev/null  %s %s@%s "ssh %s \\" \
-                grep -e "^bind_" %s  \\""' % (installer_password,
-                                              ssh_options,
-                                              installer_username,
-                                              installer_ip,
-                                              multisite_controller_ip,
-                                              kingbird_conf_path)
-            bind_details = os.popen(cmd).read()
-            bind_details = "".join(bind_details.split())
-            # Extract port number from the bind details
-            bind_port = re.findall(r"\D(\d{4})", bind_details)[0]
-            # Extract ip address from the bind details
-            bind_host = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}",
-                                   bind_details)[0]
-            kingbird_endpoint_url = "http://" + bind_host + ":" + bind_port + \
-                                    "/"
-        else:
-            cmd = "openstack endpoint show kingbird | grep publicurl |\
-                   awk '{print $4}' | awk -F '/' '{print $3}'"
-            kingbird_endpoint_url = os.popen(cmd).read()
-
+               awk '{print $4}'"
+        kingbird_endpoint_details = "".join(os.popen(cmd).read().split())
+        kingbird_endpoint_url = kingbird_endpoint_details.rsplit('/', 1)[0] + \
+            '/'
+        kingbird_api_version = kingbird_endpoint_details.rsplit('/', 1)[1]
         try:
             config.add_section("kingbird")
         except Exception: