Skip to content

Commit 5ea7c36

Browse files
MB-61292: Fix for get_node_deks_info
We should take deks from the most recent state. Also modify tests: We can't assume that secret is undeletable right after bucket encryption disablement, because we actually call garbage_collect_deks at every bucket encryption disablement. So, if the bucket hasn't used that key for some real data encryption, the garbage collect procedure will remove that key right after encryption disablement. Change-Id: I3f62ef98100c6af12bb8052d051ab4762f3152a5 Reviewed-on: https://review.couchbase.org/c/ns_server/+/216781 Reviewed-by: Navdeep S Boparai <[email protected]> Well-Formed: Build Bot <[email protected]> Tested-by: Build Bot <[email protected]> Tested-by: Timofey Barmin <[email protected]>
1 parent 6900275 commit 5ea7c36

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

apps/ns_server/src/cb_cluster_secrets.erl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,8 @@ handle_call({call, {M, F, A} = MFA}, _From,
455455
handle_call(sync, _From, #state{proc_type = ?NODE_PROC} = State) ->
456456
{reply, ok, State};
457457

458-
handle_call(get_node_deks_info, _From, #state{proc_type = ?NODE_PROC,
459-
deks = Deks} = State) ->
458+
handle_call(get_node_deks_info, _From,
459+
#state{proc_type = ?NODE_PROC} = State) ->
460460
NewState = run_jobs(State), %% Run jobs to make sure all deks are up to date
461461
maybe
462462
[] ?= NewState#state.jobs,
@@ -466,6 +466,7 @@ handle_call(get_node_deks_info, _From, #state{proc_type = ?NODE_PROC,
466466
K#{info => maps:remove(key, Info)}
467467
end, Keys)
468468
end,
469+
#state{deks = Deks} = NewState,
469470
Res = maps:map(fun (_K, #{deks := Keys}) -> StripKeyMaterial(Keys) end,
470471
Deks),
471472
{reply, Res, NewState}

cluster_tests/testsets/native_encryption_tests.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,6 @@ def bucket_without_encryption_test(self):
176176
delete_secret(self.random_node(), secret1_id, expected_code=400)
177177
self.cluster.update_bucket({'name': self.bucket_name,
178178
'encryptionAtRestSecretId': -1})
179-
# Still can't delete because bucket's deks are still encrypted by
180-
# secret1
181-
delete_secret(self.random_node(), secret1_id, expected_code=400)
182179

183180
def secret_not_allowed_to_encrypt_bucket_test(self):
184181
secret1_json = auto_generated_secret(usage=['bucket-encryption-wrong'])

0 commit comments

Comments
 (0)