222 lines
8.7 KiB
Diff
222 lines
8.7 KiB
Diff
|
From 9f2b9cc09f7e2df163ff95585374f860f3dc58eb Mon Sep 17 00:00:00 2001
|
||
|
From: Tomas Krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Tue, 16 Apr 2019 18:40:29 +0200
|
||
|
Subject: [PATCH 1/6] Fix for VM having multiple network interfaces
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 22 +++++++++++++++++++++-
|
||
|
1 file changed, 21 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index 090956434..a91c2dd11 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -219,8 +219,28 @@ ec2ip_drop() {
|
||
|
}
|
||
|
|
||
|
ec2ip_get_and_configure() {
|
||
|
+ cmd="ip -br link show dev $OCF_RESKEY_interface | tr -s ' ' | cut -d' ' -f3"
|
||
|
+ ocf_log debug "executing command: $cmd"
|
||
|
+ MAC_ADDR="$(eval $cmd)"
|
||
|
+ rc=$?
|
||
|
+ if [ $rc != 0 ]; then
|
||
|
+ ocf_log warn "command failed, rc: $rc"
|
||
|
+ return $OCF_ERR_GENERIC
|
||
|
+ fi
|
||
|
+ ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
+
|
||
|
+ cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 describe-instances --instance-ids $EC2_INSTANCE_ID --query 'Reservations[*].Instances[*].NetworkInterfaces[*].[NetworkInterfaceId,MacAddress]' | grep ${MAC_ADDR} | cut -f1"
|
||
|
+ ocf_log debug "executing command: $cmd"
|
||
|
+ EC2_NETWORK_INTERFACE_ID="$(eval $cmd)"
|
||
|
+ rc=$?
|
||
|
+ if [ $rc != 0 ]; then
|
||
|
+ ocf_log warn "command failed, rc: $rc"
|
||
|
+ return $OCF_ERR_GENERIC
|
||
|
+ fi
|
||
|
+ ocf_log debug "network interface id associated MAC address ${MAC_ADDR}: ${EC2_NETWORK_INTERFACE_ID}"
|
||
|
+
|
||
|
for rtb in $(echo $OCF_RESKEY_routing_table | sed -e 's/,/ /g'); do
|
||
|
- cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 replace-route --route-table-id $rtb --destination-cidr-block ${OCF_RESKEY_ip}/32 --instance-id $EC2_INSTANCE_ID"
|
||
|
+ cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 replace-route --route-table-id $rtb --destination-cidr-block ${OCF_RESKEY_ip}/32 --network-interface-id $EC2_NETWORK_INTERFACE_ID"
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
$cmd
|
||
|
rc=$?
|
||
|
|
||
|
From a871a463134ebb2456b5f37a343bf9034f5f4074 Mon Sep 17 00:00:00 2001
|
||
|
From: krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Tue, 16 Apr 2019 18:49:32 +0200
|
||
|
Subject: [PATCH 2/6] Fixing indentation
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index a91c2dd11..a46d10d30 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -227,7 +227,7 @@ ec2ip_get_and_configure() {
|
||
|
ocf_log warn "command failed, rc: $rc"
|
||
|
return $OCF_ERR_GENERIC
|
||
|
fi
|
||
|
- ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
+ ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
|
||
|
cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 describe-instances --instance-ids $EC2_INSTANCE_ID --query 'Reservations[*].Instances[*].NetworkInterfaces[*].[NetworkInterfaceId,MacAddress]' | grep ${MAC_ADDR} | cut -f1"
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
@@ -237,7 +237,7 @@ ec2ip_get_and_configure() {
|
||
|
ocf_log warn "command failed, rc: $rc"
|
||
|
return $OCF_ERR_GENERIC
|
||
|
fi
|
||
|
- ocf_log debug "network interface id associated MAC address ${MAC_ADDR}: ${EC2_NETWORK_INTERFACE_ID}"
|
||
|
+ ocf_log debug "network interface id associated MAC address ${MAC_ADDR}: ${EC2_NETWORK_INTERFACE_ID}"
|
||
|
|
||
|
for rtb in $(echo $OCF_RESKEY_routing_table | sed -e 's/,/ /g'); do
|
||
|
cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 replace-route --route-table-id $rtb --destination-cidr-block ${OCF_RESKEY_ip}/32 --network-interface-id $EC2_NETWORK_INTERFACE_ID"
|
||
|
|
||
|
From 068680427dff620a948ae25f090bc154b02f17b9 Mon Sep 17 00:00:00 2001
|
||
|
From: krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Wed, 17 Apr 2019 14:22:31 +0200
|
||
|
Subject: [PATCH 3/6] Requested fix to avoid using AWS API
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index a46d10d30..2910552f2 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -229,7 +229,7 @@ ec2ip_get_and_configure() {
|
||
|
fi
|
||
|
ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
|
||
|
- cmd="$OCF_RESKEY_awscli --profile $OCF_RESKEY_profile --output text ec2 describe-instances --instance-ids $EC2_INSTANCE_ID --query 'Reservations[*].Instances[*].NetworkInterfaces[*].[NetworkInterfaceId,MacAddress]' | grep ${MAC_ADDR} | cut -f1"
|
||
|
+ cmd="curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC_ADDR}/interface-id"
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
EC2_NETWORK_INTERFACE_ID="$(eval $cmd)"
|
||
|
rc=$?
|
||
|
|
||
|
From 207a2ba66ba7196180d27674aa204980fcd25de2 Mon Sep 17 00:00:00 2001
|
||
|
From: krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Fri, 19 Apr 2019 11:14:21 +0200
|
||
|
Subject: [PATCH 4/6] More robust approach of getting MAC address
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 29 +++++++++++++++++++++--------
|
||
|
1 file changed, 21 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index 2910552f2..3a848b7e3 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -219,15 +219,28 @@ ec2ip_drop() {
|
||
|
}
|
||
|
|
||
|
ec2ip_get_and_configure() {
|
||
|
- cmd="ip -br link show dev $OCF_RESKEY_interface | tr -s ' ' | cut -d' ' -f3"
|
||
|
- ocf_log debug "executing command: $cmd"
|
||
|
- MAC_ADDR="$(eval $cmd)"
|
||
|
- rc=$?
|
||
|
- if [ $rc != 0 ]; then
|
||
|
- ocf_log warn "command failed, rc: $rc"
|
||
|
- return $OCF_ERR_GENERIC
|
||
|
+ MAC_FILE="/sys/class/net/${OCF_RESKEY_interface}/address"
|
||
|
+ if [ -f $MAC_FILE ]; then
|
||
|
+ cmd="cat ${MAC_FILE}"
|
||
|
+ ocf_log debug "executing command: $cmd"
|
||
|
+ MAC_ADDR="$(eval $cmd)"
|
||
|
+ rc=$?
|
||
|
+ if [ $rc != 0 ]; then
|
||
|
+ ocf_log warn "command failed, rc: $rc"
|
||
|
+ return $OCF_ERR_GENERIC
|
||
|
+ fi
|
||
|
+ ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
+ else
|
||
|
+ cmd="ip -br link show dev ${OCF_RESKEY_interface} | tr -s ' ' | cut -d' ' -f3"
|
||
|
+ ocf_log debug "executing command: $cmd"
|
||
|
+ MAC_ADDR="$(eval $cmd)"
|
||
|
+ rc=$?
|
||
|
+ if [ $rc != 0 ]; then
|
||
|
+ ocf_log warn "command failed, rc: $rc"
|
||
|
+ return $OCF_ERR_GENERIC
|
||
|
+ fi
|
||
|
+ ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
fi
|
||
|
- ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
|
||
|
cmd="curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC_ADDR}/interface-id"
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
|
||
|
From cdcc12a9c1431125b0d5298176e5242bfc9fbe29 Mon Sep 17 00:00:00 2001
|
||
|
From: krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Fri, 19 Apr 2019 11:20:09 +0200
|
||
|
Subject: [PATCH 5/6] Moving shared part outside if
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 25 +++++++++----------------
|
||
|
1 file changed, 9 insertions(+), 16 deletions(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index 3a848b7e3..bfe23e5bf 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -222,26 +222,19 @@ ec2ip_get_and_configure() {
|
||
|
MAC_FILE="/sys/class/net/${OCF_RESKEY_interface}/address"
|
||
|
if [ -f $MAC_FILE ]; then
|
||
|
cmd="cat ${MAC_FILE}"
|
||
|
- ocf_log debug "executing command: $cmd"
|
||
|
- MAC_ADDR="$(eval $cmd)"
|
||
|
- rc=$?
|
||
|
- if [ $rc != 0 ]; then
|
||
|
- ocf_log warn "command failed, rc: $rc"
|
||
|
- return $OCF_ERR_GENERIC
|
||
|
- fi
|
||
|
- ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
else
|
||
|
cmd="ip -br link show dev ${OCF_RESKEY_interface} | tr -s ' ' | cut -d' ' -f3"
|
||
|
- ocf_log debug "executing command: $cmd"
|
||
|
- MAC_ADDR="$(eval $cmd)"
|
||
|
- rc=$?
|
||
|
- if [ $rc != 0 ]; then
|
||
|
- ocf_log warn "command failed, rc: $rc"
|
||
|
- return $OCF_ERR_GENERIC
|
||
|
- fi
|
||
|
- ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
fi
|
||
|
|
||
|
+ ocf_log debug "executing command: $cmd"
|
||
|
+ MAC_ADDR="$(eval $cmd)"
|
||
|
+ rc=$?
|
||
|
+ if [ $rc != 0 ]; then
|
||
|
+ ocf_log warn "command failed, rc: $rc"
|
||
|
+ return $OCF_ERR_GENERIC
|
||
|
+ fi
|
||
|
+ ocf_log debug "MAC address associated with interface ${OCF_RESKEY_interface}: ${MAC_ADDR}"
|
||
|
+
|
||
|
cmd="curl -s http://169.254.169.254/latest/meta-data/network/interfaces/macs/${MAC_ADDR}/interface-id"
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
EC2_NETWORK_INTERFACE_ID="$(eval $cmd)"
|
||
|
|
||
|
From c3fc114fc64f6feb015c5342923fd2afc367ae28 Mon Sep 17 00:00:00 2001
|
||
|
From: krojzl <tomas_krojzl@cz.ibm.com>
|
||
|
Date: Fri, 19 Apr 2019 11:22:55 +0200
|
||
|
Subject: [PATCH 6/6] Linting adjustment
|
||
|
|
||
|
---
|
||
|
heartbeat/aws-vpc-move-ip | 1 -
|
||
|
1 file changed, 1 deletion(-)
|
||
|
|
||
|
diff --git a/heartbeat/aws-vpc-move-ip b/heartbeat/aws-vpc-move-ip
|
||
|
index bfe23e5bf..2757c27d0 100755
|
||
|
--- a/heartbeat/aws-vpc-move-ip
|
||
|
+++ b/heartbeat/aws-vpc-move-ip
|
||
|
@@ -225,7 +225,6 @@ ec2ip_get_and_configure() {
|
||
|
else
|
||
|
cmd="ip -br link show dev ${OCF_RESKEY_interface} | tr -s ' ' | cut -d' ' -f3"
|
||
|
fi
|
||
|
-
|
||
|
ocf_log debug "executing command: $cmd"
|
||
|
MAC_ADDR="$(eval $cmd)"
|
||
|
rc=$?
|