MCPcopy Create free account
hub / github.com/apache/impala / SignUntilRotatePast

Function SignUntilRotatePast

be/src/kudu/security/token-test.cc:71–98  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

69// SignedTokenPB and returns a Status.
70template <class TokenGenerator>
71Status SignUntilRotatePast(TokenSigner* signer, TokenGenerator generate_token,
72 const string& token_type, int64_t seq_num,
73 SignedTokenPB* last_signed_by_tsk) {
74 SignedTokenPB last_signed;
75 RETURN_NOT_OK_PREPEND(generate_token(&last_signed),
76 Substitute("Failed to generate first $0 token", token_type));
77 DCHECK_EQ(seq_num, last_signed.signing_key_seq_num())
78 << Substitute("Unexpected starting seq_num for $0 token", token_type);
79
80 auto cur_seq_num = seq_num;
81 while (cur_seq_num == seq_num) {
82 SleepFor(MonoDelta::FromMilliseconds(50));
83 KLOG_EVERY_N_SECS(INFO, 1) <<
84 Substitute("Generating $0 token for activity interval $1", token_type, seq_num);
85 RETURN_NOT_OK_PREPEND(signer->TryRotateKey(), "Failed to attempt to rotate key");
86 SignedTokenPB signed_token;
87 RETURN_NOT_OK_PREPEND(generate_token(&signed_token),
88 Substitute("Failed to generate $0 token", token_type));
89 // We want to return the last token signed by the `seq_num` TSK, so only
90 // update it when appropriate.
91 cur_seq_num = signed_token.signing_key_seq_num();
92 if (cur_seq_num == seq_num) {
93 last_signed = std::move(signed_token);
94 }
95 }
96 *last_signed_by_tsk = std::move(last_signed);
97 return Status::OK();
98}
99
100SignedTokenPB MakeUnsignedToken(int64_t expiration) {
101 SignedTokenPB ret;

Callers 1

TEST_FFunction · 0.85

Calls 5

SubstituteFunction · 0.85
SleepForFunction · 0.85
moveFunction · 0.85
OKFunction · 0.85
TryRotateKeyMethod · 0.80

Tested by

no test coverage detected