-if [[ "$INSTALLER_IP" == "none" ]] ; then
- instack_mac=$(sudo virsh domiflist instack | awk '/default/{print $5}')
- INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk '{print $1}')
-fi
-
-if [[ "$COMPUTE_IP" == "none" ]] ; then
- COMPUTE_IP=$(sudo ssh $ssh_opts $INSTALLER_IP \
- "source stackrc; \
- nova show $COMPUTE_HOST \
- | awk '/ ctlplane network /{print \$5}'")
-fi
+get_compute_host_info() {
+ # get computer host info which VM boot in
+ COMPUTE_HOST=$(openstack $as_doctor_user server show $VM_NAME |
+ grep "OS-EXT-SRV-ATTR:host" | awk '{ print $4 }')
+ compute_host_in_undercloud=${COMPUTE_HOST%%.*}
+ if [[ -z "$COMPUTE_HOST" ]] ; then
+ echo "ERROR: failed to get compute hostname"
+ exit 1
+ fi
+
+ if [[ "$INSTALLER_TYPE" == "apex" ]] ; then
+ COMPUTE_USER=${COMPUTE_USER:-heat-admin}
+ if [[ "$INSTALLER_IP" == "none" ]] ; then
+ instack_mac=$(sudo virsh domiflist instack | awk '/default/{print $5}')
+ INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk '{print $1}')
+ fi
+ COMPUTE_IP=$(sudo ssh $ssh_opts $INSTALLER_IP \
+ "source stackrc; \
+ nova show $compute_host_in_undercloud \
+ | awk '/ ctlplane network /{print \$5}'")
+ elif [[ "$INSTALLER_TYPE" == "fuel" ]] ; then
+ COMPUTE_USER=${COMPUTE_USER:-root}
+ if [[ "$INSTALLER_IP" == "none" ]] ; then
+ instack_mac=$(sudo virsh domiflist fuel-opnfv | awk '/pxebr/{print $5}')
+ INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk '{print $1}')
+ fi
+ node_id=$(echo $compute_host_in_undercloud | cut -d "-" -f 2)
+ COMPUTE_IP=$(sshpass -p r00tme ssh 2>/dev/null $ssh_options root@${INSTALLER_IP} \
+ "fuel node|awk -F '|' -v id=$node_id '{if (\$1 == id) print \$5}' |xargs")
+ elif [[ "$INSTALLER_TYPE" == "local" ]] ; then
+ COMPUTE_USER=${COMPUTE_USER:-$(whoami)}
+ COMPUTE_IP=$(getent hosts "$COMPUTE_HOST" | awk '{ print $1 }')
+ fi
+
+ if [[ -z "$COMPUTE_IP" ]]; then
+ echo "ERROR: Could not resolve $COMPUTE_HOST. Either manually set COMPUTE_IP or enable DNS resolution."
+ exit 1
+ fi
+ echo "COMPUTE_HOST=$COMPUTE_HOST"
+ echo "COMPUTE_IP=$COMPUTE_IP"