diff options
author | Ashish Singh <ashishsingh2k8@gmail.com> | 2016-08-08 21:11:18 +0530 |
---|---|---|
committer | Ashish Singh <ashishsingh2k8@gmail.com> | 2016-08-08 21:15:05 +0530 |
commit | c76559f29123e2953fee845d8239247e79401214 (patch) | |
tree | 9ba501a4314b35445242603ed37349b0f94feece /testcases | |
parent | dd17bec6a59bb756ce665b678355160c74d013a8 (diff) |
Use Kingbird Bind host URL for Tempest
Earlier, there was external URL for accessing KB services
in tempest.conf which is not accessible from functest docker.
Use bind host URL for KB service to access from the docker.
Change-Id: I147ffc2cd9883a6913080f9e1ab245807e0ca707
Signed-off-by: ashish singh <ashishsingh2k8@gmail.com>
Diffstat (limited to 'testcases')
-rwxr-xr-x | testcases/OpenStack/tempest/run_tempest.py | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/testcases/OpenStack/tempest/run_tempest.py b/testcases/OpenStack/tempest/run_tempest.py index d29b3f3b..845c5883 100755 --- a/testcases/OpenStack/tempest/run_tempest.py +++ b/testcases/OpenStack/tempest/run_tempest.py @@ -238,11 +238,55 @@ 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}'" - 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] + 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() try: config.add_section("kingbird") except Exception: |