diff options
author | bob <bob.zh@huawei.com> | 2016-01-14 17:42:49 +0800 |
---|---|---|
committer | Tim Rozet <trozet@redhat.com> | 2016-01-16 13:54:33 +0000 |
commit | 2a937932642f3e8288d338c6fa4a2b6a7a5defc2 (patch) | |
tree | 282315deee2f3c6e4281c95cdbf7375fa7b46873 /lib/installer/onos | |
parent | 8ef0ef042523f16c169dbd63a3a5f24d10f836f3 (diff) |
add step to execute gw_mac_update.sh after apex deployed
Change-Id: I47c316e26ff8e597c781562645397335e8c5bd70
Signed-off-by: bob zhou <bob.zh@huawei.com>
Signed-off-by: Tim Rozet <trozet@redhat.com>
Diffstat (limited to 'lib/installer/onos')
-rw-r--r-- | lib/installer/onos/onos_gw_mac_update.sh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/installer/onos/onos_gw_mac_update.sh b/lib/installer/onos/onos_gw_mac_update.sh new file mode 100644 index 00000000..d003cc01 --- /dev/null +++ b/lib/installer/onos/onos_gw_mac_update.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# Update gateway mac to onos for l3 function + +# author: Bob zhou +# author: Tim Rozet + + +# Update gateway mac to onos for l3 function +# params: external CIDR, external gateway +function onos_update_gw_mac { + local CIDR + local GW_IP + + if [[ -z "$1" || -z "$2" ]]; then + return 1 + else + CIDR=$1 + GW_IP=$2 + fi + + if [ -z "$UNDERCLOUD" ]; then + #if not found then dnsmasq may be using leasefile-ro + instack_mac=$(virsh domiflist instack | grep default | \ + grep -Eo "[0-9a-f\]+:[0-9a-f\]+:[0-9a-f\]+:[0-9a-f\]+:[0-9a-f\]+:[0-9a-f\]+") + UNDERCLOUD=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'}) + fi + # get controller ip address + controller_ip=$(ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI +source stackrc +openstack server list | grep overcloud-controller-0 | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" +EOI +) + + if [ -z "$controller_ip" ]; then + echo "ERROR: Failed to find controller_ip for overcloud-controller-0" + return 1 + fi + + # get gateway mac + GW_MAC=$(arping ${GW_IP} -c 1 -I brbm2 | grep -Eo '([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})') + + if [ -z "$GW_MAC" ]; then + echo "ERROR: Failed to find gateway mac for ${GW_IP}" + return 1 + fi + + # update gateway mac to onos + ssh -T ${SSH_OPTIONS[@]} "stack@$UNDERCLOUD" <<EOI +ssh -T ${SSH_OPTIONS[@]} "heat-admin@${controller_ip}" <<EOF +echo "external gateway mac is ${GW_MAC}" +/opt/onos/bin/onos "externalgateway-update -m ${GW_MAC}" +EOF +EOI + +} |