Closed glyph closed 4 years ago
Is there any update on this? I have an API that is trying to do a get_or_create action by first calling getSecret
, and this is causing a hard exit. You can see that behavior with this script:
# sample_get_or_create.py
import credstash
def get_or_create_secret(key):
secret = None
try:
secret = credstash.getSecret(key, region="us-east-1")
print(f"Found a secret for {key}!")
except credstash.ItemNotFound:
print(f"No key of '{key}' found, creating a new value")
secret = "bazbaz"
return secret
if __name__ == "__main__":
key = "foobar"
secret = get_or_create_secret(key)
print(f"{key}: {secret}")
Running that on the latest version of credstash (1.16.2) gives:
$ poetry run python sample_get_or_create.py
Item {'name': 'foobar'} couldn't be found.
Where this works as expected on the previous version of credstash (1.16.1):
$ poetry run python sample_get_or_create.py
No key of 'foobar' found, creating a new value
foobar: bazbaz
The addition of
@clean_fail
in https://github.com/fugue/credstash/pull/263/files has changed the error-handling behavior ofgetSecret
et. al. to raiseSystemExit
sometimes. This is pretty aggressive behavior for API clients, since it causes a sudden and inexplicable exit where there used to be a normally-handleable (if somewhat obscure) error.