diff options
Diffstat (limited to 'docker/credentials/errors.py')
-rw-r--r-- | docker/credentials/errors.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/docker/credentials/errors.py b/docker/credentials/errors.py new file mode 100644 index 0000000..42a1bc1 --- /dev/null +++ b/docker/credentials/errors.py @@ -0,0 +1,25 @@ +class StoreError(RuntimeError): + pass + + +class CredentialsNotFound(StoreError): + pass + + +class InitializationError(StoreError): + pass + + +def process_store_error(cpe, program): + message = cpe.output.decode('utf-8') + if 'credentials not found in native keychain' in message: + return CredentialsNotFound( + 'No matching credentials in {}'.format( + program + ) + ) + return StoreError( + 'Credentials store {} exited with "{}".'.format( + program, cpe.output.decode('utf-8').strip() + ) + ) |