Artom Lifshitz a2d308991e Convert get_hypervisor_ip to use hostnames
Instead of using ID to lookup hypervisor IPs, use hostnames. IDs are
different in undercloud and overcloud (a compute node's Ironic node
UUID in the undercloud isn't the same as its hypervisor UUID in the
overcloud). In addition, Nova uses both integer IDs (before 2.53) and
UUIDs (2.53 and later) for hypervisors. Hostnames are common to both
undercloud and overcloud, and don't change depending on the
microversion.

Change-Id: I34445e0f566dd48271740c357f74f632152776ed
2018-07-16 13:18:42 -04:00

32 lines
1.1 KiB
Python

# Copyright 2017 Red Hat
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_log import log as logging
from tempest import config
CONF = config.CONF
LOG = logging.getLogger(__name__)
def get_hypervisor_ip(admin_servers_client, server_id):
server = admin_servers_client.show_server(server_id)
host = server['server']['OS-EXT-SRV-ATTR:host']
try:
return CONF.whitebox.hypervisors[host]
except KeyError:
LOG.error('Unable to find IP in conf. Server: %s, host: %s.',
(server_id, host))