Skip to content

Commit d8f012d

Browse files
author
Matthew Fisher
committed
Merge pull request #3791 from bacongobbler/fixup-etcd-set-default
fix(*): check for key already exists errors only
2 parents 445e50d + 7b4ed1a commit d8f012d

5 files changed

Lines changed: 24 additions & 18 deletions

File tree

builder/rootfs/bin/boot

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ sleep $(($ETCD_TTL+1))
3030

3131
function etcd_safe_mkdir {
3232
set +e
33-
etcdctl --no-sync -C $ETCD mkdir $1 >/dev/null 2>&1
34-
if [[ $? -ne 0 && $? -ne 4 ]]; then
35-
echo "etcd_safe_mkdir: an etcd error occurred. aborting..."
33+
ERROR="$(etcdctl --no-sync -C $ETCD mkdir $1 2>&1 >/dev/null)"
34+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
35+
echo "etcd_safe_mkdir: an etcd error occurred ($ERROR)"
36+
echo "aborting..."
3637
exit 1
3738
fi
3839
set -e

controller/bin/boot

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,21 @@ sleep $(($ETCD_TTL+1))
2626

2727
function etcd_set_default {
2828
set +e
29-
etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 >/dev/null 2>&1
30-
if [[ $? -ne 0 && $? -ne 4 ]]; then
31-
echo "etcd_set_default: an etcd error occurred. aborting..."
29+
ERROR="$(etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 2>&1 >/dev/null)"
30+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
31+
echo "etcd_set_default: an etcd error occurred ($ERROR)"
32+
echo "aborting..."
3233
exit 1
3334
fi
3435
set -e
3536
}
3637

3738
function etcd_safe_mkdir {
3839
set +e
39-
etcdctl --no-sync -C $ETCD mkdir $1 >/dev/null 2>&1
40-
if [[ $? -ne 0 && $? -ne 4 ]]; then
41-
echo "etcd_safe_mkdir: an etcd error occurred. aborting..."
40+
ERROR="$(etcdctl --no-sync -C $ETCD mkdir $1 2>&1 >/dev/null)"
41+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
42+
echo "etcd_safe_mkdir: an etcd error occurred ($ERROR)"
43+
echo "aborting..."
4244
exit 1
4345
fi
4446
set -e

database/bin/boot

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ sleep $(($ETCD_TTL+1))
2828

2929
function etcd_set_default {
3030
set +e
31-
etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 >/dev/null 2>&1
32-
if [[ $? -ne 0 && $? -ne 4 ]]; then
33-
echo "etcd_set_default: an etcd error occurred. aborting..."
31+
ERROR="$(etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 2>&1 >/dev/null)"
32+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
33+
echo "etcd_set_default: an etcd error occurred ($ERROR)"
34+
echo "aborting..."
3435
exit 1
3536
fi
3637
set -e

registry/bin/boot

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,10 @@ sleep $(($ETCD_TTL+1))
3232

3333
function etcd_set_default {
3434
set +e
35-
etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 >/dev/null 2>&1
36-
if [[ $? -ne 0 && $? -ne 4 ]]; then
37-
echo "etcd_set_default: an etcd error occurred. aborting..."
35+
ERROR="$(etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 2>&1 >/dev/null)"
36+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
37+
echo "etcd_set_default: an etcd error occurred ($ERROR)"
38+
echo "aborting..."
3839
exit 1
3940
fi
4041
set -e

store/monitor/bin/boot

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ HOSTNAME=`hostname`
1010

1111
function etcd_set_default {
1212
set +e
13-
etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 >/dev/null 2>&1
14-
if [[ $? -ne 0 && $? -ne 4 ]]; then
15-
echo "etcd_set_default: an etcd error occurred. aborting..."
13+
ERROR="$(etcdctl --no-sync -C $ETCD mk $ETCD_PATH/$1 $2 2>&1 >/dev/null)"
14+
if [[ $? -ne 0 && $(echo $ERROR | grep -ive "key already exists") ]]; then
15+
echo "etcd_set_default: an etcd error occurred ($ERROR)"
16+
echo "aborting..."
1617
exit 1
1718
fi
1819
set -e

0 commit comments

Comments
 (0)