From 81ccce865981064abf042ecf2593d9e1bc813ddb Mon Sep 17 00:00:00 2001 From: HE Chong Date: Fri, 13 Aug 2021 23:00:11 +0800 Subject: [PATCH] negative case where username doesn't exist now report exception as expected --- salt/common/tools/sbin/so-fleet-user-update | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/salt/common/tools/sbin/so-fleet-user-update b/salt/common/tools/sbin/so-fleet-user-update index 7d266ff2f..e6a142d1d 100755 --- a/salt/common/tools/sbin/so-fleet-user-update +++ b/salt/common/tools/sbin/so-fleet-user-update @@ -34,6 +34,16 @@ MYSQL_PASS=$(lookup_pillar_secret mysql) FLEET_IP=$(lookup_pillar fleet_ip) FLEET_USER=$USER +# test existence of user +MYSQL_OUTPUT=$(docker exec so-mysql mysql -u root --password=$MYSQL_PASS fleet -e \ + "SELECT count(1) FROM users WHERE username='$FLEET_USER'" 2>/dev/null | tail -1) +if [[ $? -ne 0 ]] || [[ $MYSQL_OUTPUT -ne 1 ]] ; then + echo "Test for username [${FLEET_USER}] failed" + echo " expect 1 hit in users database, return $MYSQL_OUTPUT hit(s)." + echo "Unable to update Fleet user password." + exit 2 +fi + # Read password for new user from stdin test -t 0 if [[ $? == 0 ]]; then @@ -52,6 +62,7 @@ if [[ $? -ne 0 ]]; then exit 2 fi + MYSQL_OUTPUT=$(docker exec so-mysql mysql -u root --password=$MYSQL_PASS fleet -e \ "UPDATE users SET password='$FLEET_HASH', salt='' where username='$FLEET_USER'" 2>&1)