From: Sage Weil Date: Fri, 22 Oct 2021 20:13:53 +0000 (-0500) Subject: qa/workunits/mon/auth_key_rotation.sh: exercise pending key / rotation X-Git-Tag: v18.0.0~39^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=39da18b31b47db10ee1deae3372699035e8197b1;p=ceph.git qa/workunits/mon/auth_key_rotation.sh: exercise pending key / rotation Signed-off-by: Sage Weil --- diff --git a/qa/suites/rados/singleton/all/mon-auth-caps.yaml b/qa/suites/rados/singleton/all/mon-auth-caps.yaml index f7c45d43fd42..a56d164a50a4 100644 --- a/qa/suites/rados/singleton/all/mon-auth-caps.yaml +++ b/qa/suites/rados/singleton/all/mon-auth-caps.yaml @@ -17,3 +17,4 @@ tasks: clients: all: - mon/auth_caps.sh + - mon/auth_key_rotation.sh diff --git a/qa/workunits/mon/auth_key_rotation.sh b/qa/workunits/mon/auth_key_rotation.sh new file mode 100755 index 000000000000..1a53bab6d8aa --- /dev/null +++ b/qa/workunits/mon/auth_key_rotation.sh @@ -0,0 +1,58 @@ +#!/usr/bin/bash -ex + +function expect_false() +{ + set -x + if "$@"; then return 1; else return 0; fi +} + + +ceph auth export +ceph auth rm client.rot + +ceph auth get-or-create client.rot mon 'allow rwx' +ceph auth export client.rot | grep key +ceph auth export client.rot | expect_false grep pending.key + +ceph auth get-or-create-pending client.rot +ceph auth export client.rot | grep key +ceph auth export client.rot | grep pending.key + +ceph auth clear-pending client.rot +ceph auth export client.rot | expect_false grep pending.key + +ceph auth get-or-create-pending client.rot +ceph auth export client.rot | grep key +ceph auth export client.rot | grep pending.key +K=$(ceph auth export client.rot | grep 'key = ' | head -n 1 | awk '{print $3}') +PK=$(ceph auth export client.rot | grep pending.key | awk '{print $4}') +echo "K is $K" +echo "PK is $PK" +ceph -n client.rot --key $K -s + +ceph auth commit-pending client.rot +ceph auth export client.rot | expect_false grep pending.key +ceph auth export client.rot | grep key | grep $PK + +ceph auth get-or-create-pending client.rot +ceph auth export client.rot | grep key +ceph auth export client.rot | grep pending.key +K=$(ceph auth export client.rot | grep 'key = ' | head -n 1 | awk '{print $3}') +PK=$(ceph auth export client.rot | grep pending.key | awk '{print $4}') +echo "2, K is $K" +echo "2, PK is $PK" + +ceph auth export client.rot + +while ceph -n client.rot --key $K -s ; do + ceph auth export client.rot + ceph -n client.rot --key $PK -s + sleep 1 +done + +ceph auth export client.rot | expect_false grep pending.key +ceph auth export client.rot | grep key | grep $PK + +ceph -n client.rot --key $PK -s + +echo ok