Skip to content

Commit 0ce5cdc

Browse files
authored
Merge pull request ceph#62160 from cbodley/wip-qa-vault-list
qa/vault: create_secrets() cleanup checks for orphaned keys Reviewed-by: Adam C. Emerson <[email protected]>
2 parents db43ab3 + ea867b4 commit 0ce5cdc

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

qa/suites/rgw/crypt/2-kms/vault_kv.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ tasks:
1717
install_sha256: 7725b35d9ca8be3668abe63481f0731ca4730509419b4eb29fa0b0baa4798458
1818
root_token: test_root_token
1919
engine: kv
20-
prefix: /v1/kv/data/
20+
prefix: /v1/kv/
2121
secrets:
2222
- path: my-key-1
2323
secret: a2V5MS5GcWVxKzhzTGNLaGtzQkg5NGVpb1FKcFpGb2c=

qa/tasks/vault.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ def send_req(ctx, cconfig, client, path, body, method='POST'):
173173
headers = {'X-Vault-Token': token}
174174
req.request(method, path, headers=headers, body=body)
175175
resp = req.getresponse()
176-
log.info(resp.read())
177176
if not (resp.status >= 200 and resp.status < 300):
177+
log.info(resp.read())
178178
raise Exception("Request to Vault server failed with status %d" % resp.status)
179179
return resp
180180

@@ -198,6 +198,7 @@ def create_secrets(ctx, config):
198198
exportable = secret.get("exportable", flavor == "old")
199199

200200
if engine == 'kv':
201+
path = urljoin('data/', path)
201202
try:
202203
data = {
203204
"data": {
@@ -216,8 +217,21 @@ def create_secrets(ctx, config):
216217
ctx.vault.keys[cclient].append({ 'Path': path });
217218

218219
log.info("secrets created")
220+
221+
list_url = prefix
222+
if engine == 'kv':
223+
list_url = urljoin(prefix, 'metadata')
224+
225+
resp = send_req(ctx, cconfig, cclient, list_url, b'', 'LIST')
226+
keys_created = json.loads(resp.read())['data']['keys']
227+
assert len(keys_created) == len(ctx.vault.keys[cclient])
228+
219229
yield
220230

231+
# fetch another listing and verify that no additional keys are left over
232+
resp = send_req(ctx, cconfig, cclient, list_url, b'', 'LIST')
233+
keys_after = json.loads(resp.read())['data']['keys']
234+
assert keys_created == keys_after
221235

222236
@contextlib.contextmanager
223237
def task(ctx, config):

0 commit comments

Comments
 (0)