From bc90becf8cfbe672926c813670a418f125f72b7b Mon Sep 17 00:00:00 2001 From: Ashish Singh Date: Tue, 2 Aug 2016 13:11:35 +0530 Subject: Fix for the endpoint URL for kingbird 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 --- testcases/OpenStack/tempest/run_tempest.py | 59 ++++-------------------------- 1 file changed, 7 insertions(+), 52 deletions(-) diff --git a/testcases/OpenStack/tempest/run_tempest.py b/testcases/OpenStack/tempest/run_tempest.py index 3ee10b782..92a13f346 100755 --- a/testcases/OpenStack/tempest/run_tempest.py +++ b/testcases/OpenStack/tempest/run_tempest.py @@ -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: -- cgit 1.2.3-korg