-
Notifications
You must be signed in to change notification settings - Fork 304
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HPCC-30767 Move created date for secrets out of the IPropertyTree #18035
Conversation
https://track.hpccsystems.com/browse/HPCC-30767 |
Currently untested. Pushed to run smoke test. |
system/jlib/jsecrets.cpp
Outdated
friend class SecretCache; | ||
|
||
public: | ||
//A cache entry is initally created that has a create an access time of now, but the checkTimestamp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
an=and?
or
"has create and access times of now"
system/jlib/jsecrets.cpp
Outdated
|
||
//The following functions can only be called from member functions of SecretCache | ||
private: | ||
// Is it time to check if there is a new value for this secret? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Comment seems to go with "needsRefresh()" above, rather than this function?
system/jlib/jsecrets.hpp
Outdated
@@ -28,7 +28,7 @@ extern jlib_decl void setSecretMount(const char * path); | |||
extern jlib_decl void setSecretTimeout(unsigned timeoutMs); | |||
|
|||
//Return the current (cached) value of a secret. If the secret is not defined, return nullptr. | |||
extern jlib_decl IPropertyTree *getSecret(const char *category, const char * name, const char * optVaultId = nullptr, const char * optVersion = nullptr); | |||
extern jlib_decl const IPropertyTree *getSecret(const char *category, const char * name, const char * optVaultId = nullptr, const char * optVersion = nullptr); | |||
// resolveSecret() always returns an object, which will potentially be updated behind the scenes. If no secret is originally | |||
// defined, but it then configured in a vault or Kubernetes secret, it will be bicked up when the cache entry is |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"but is later added to a vault or kubernetes secret, it will then be picked up"
testing/unittests/jlibtests.cpp
Outdated
CPPUNIT_ASSERT(!secret2->isStale()); | ||
|
||
MilliSleep(100); | ||
//Secret should not be updated - enough time has passed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps either,
"secret should now be updated - enough time has passed"?
or if you meant the "not", then
"Secret2 has not automatically been updated - but secret1 is accessible because enough time has passed"?
testing/unittests/jlibtests.cpp
Outdated
checkSecret("secret3", "value", "secret3Value"); | ||
|
||
MilliSleep(100); | ||
1 CPPUNIT_ASSERT(secret3->isStale()); // Value has gone |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"1"?
1 CPPUNIT_ASSERT(secret3->isStale()); // Value has gone | ||
CPPUNIT_ASSERT(secret3->isValid()); | ||
CPPUNIT_ASSERT_EQUAL(version2, secret3->getVersion()); | ||
checkSecret("secret3", "value", "secret3Value"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
writeTestingSecret("secret3", "value", nullptr); behavior is great for resiliency. I suppose to forcefully clear a secret (i.e. for emergencies) we assign an empty value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think setting to a blank string should do that. I'll add that as another test..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ghalliday looks good. Some comments, mostly about comments.
1a3b039
to
1a27d38
Compare
@afishbeck please check the last 2 commits. The first is a squashed change to the unit tests, they are more complete than the commit you last reviewed, and also contain a fix for a problem they revealed. It also clarifies exactly what the different functions need to do. |
Signed-off-by: Gavin Halliday <[email protected]>
c196d5f
to
d3ab1c3
Compare
d846fe9
into
hpcc-systems:candidate-9.4.x
Type of change:
Checklist:
Smoketest:
Testing: