Fixes ceph key import failures
[apex.git] / build / patches / puppet-ceph.patch
1 From 99a0bcc818ed801f6cb9e07a9904ee40e624bdab Mon Sep 17 00:00:00 2001
2 From: Tim Rozet <trozet@redhat.com>
3 Date: Mon, 5 Mar 2018 17:03:00 -0500
4 Subject: [PATCH] Fixes ceph key import failures by adding multiple attempts
5
6 Signed-off-by: Tim Rozet <trozet@redhat.com>
7 ---
8  manifests/key.pp | 42 +++++++++++++++++-------------------------
9  1 file changed, 17 insertions(+), 25 deletions(-)
10
11 diff --git a/manifests/key.pp b/manifests/key.pp
12 index 911df1a..d47a4c3 100644
13 --- a/manifests/key.pp
14 +++ b/manifests/key.pp
15 @@ -123,22 +123,6 @@ define ceph::key (
16      }
17    }
18  
19 -  # ceph-authtool --add-key is idempotent, will just update pre-existing keys
20 -  exec { "ceph-key-${name}":
21 -    command   => "/bin/true # comment to satisfy puppet syntax requirements
22 -set -ex
23 -ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}",
24 -    unless    => "/bin/true # comment to satisfy puppet syntax requirements
25 -set -x
26 -NEW_KEYRING=\$(mktemp)
27 -ceph-authtool \$NEW_KEYRING --name '${name}' --add-key '${secret}' ${caps}
28 -diff -N \$NEW_KEYRING ${keyring_path}
29 -rv=\$?
30 -rm \$NEW_KEYRING
31 -exit \$rv",
32 -    require   => [ File[$keyring_path], ],
33 -    logoutput => true,
34 -  }
35  
36    if $inject {
37  
38 @@ -162,18 +146,26 @@ exit \$rv",
39      exec { "ceph-injectkey-${name}":
40        command   => "/bin/true # comment to satisfy puppet syntax requirements
41  set -ex
42 +cat ${keyring_path}
43 +ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}
44 +cat ${keyring_path}
45  ceph ${cluster_option} ${inject_id_option} ${inject_keyring_option} auth import -i ${keyring_path}",
46 -      unless    => "/bin/true # comment to satisfy puppet syntax requirements
47 -set -x
48 -OLD_KEYRING=\$(mktemp)
49 -ceph ${cluster_option} ${inject_id_option} ${inject_keyring_option} auth get ${name} -o \$OLD_KEYRING || true
50 -diff -N \$OLD_KEYRING ${keyring_path}
51 -rv=$?
52 -rm \$OLD_KEYRING
53 -exit \$rv",
54 -      require   => [ Class['ceph'], Exec["ceph-key-${name}"], ],
55 +      require   => [ File[$keyring_path], Class['ceph'] ],
56        logoutput => true,
57 +      tries     => 6,
58 +      try_sleep => 10
59      }
60  
61 +  } else {
62 +
63 +    # ceph-authtool --add-key is idempotent, will just update pre-existing keys
64 +    exec { "ceph-key-${name}":
65 +      command   => "/bin/true # comment to satisfy puppet syntax requirements
66 +set -ex
67 +ceph-authtool ${keyring_path} --name '${name}' --add-key '${secret}' ${caps}
68 +cat ${keyring_path}",
69 +      require   => [ File[$keyring_path], ],
70 +      logoutput => true,
71 +    }
72    }
73  }
74 -- 
75 2.14.3
76