Skip to content
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

Improve rest.NewClient error handling. #218

Merged
merged 1 commit into from
Jul 8, 2022
Merged

Improve rest.NewClient error handling. #218

merged 1 commit into from
Jul 8, 2022

Conversation

josephlr
Copy link
Member

@josephlr josephlr commented Jul 8, 2022

We now get better error messages. For example:

No credentials:

Getting HTTP Client: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

Credentials, but invalid project:

Creating Verifier Client: listing regions in project "confidentialcomputing-e2eee": googleapi: Error 403: Permission denied on resource project confidentialcomputing-e2eee.
        Details:
        [
          {
            "@type": "type.googleapis.com/google.rpc.Help",
            "links": [
              {
                "description": "Google developer console API key",
                "url": "https://console.developers.google.com/project/confidentialcomputing-e2eee/apiui/credential"
              }
            ]
          },
          {
            "@type": "type.googleapis.com/google.rpc.ErrorInfo",
            "domain": "googleapis.com",
            "metadata": {
              "consumer": "projects/confidentialcomputing-e2eee",
              "service": "confidentialcomputing.googleapis.com"
            },
            "reason": "CONSUMER_INVALID"
          }
        ]
        , forbidden

Credentials, valid project, invalid region:

Creating Verifier Client: invalid region "us-central3", available regions are [us-central1]: googleapi: Error 403: Location us-central3 is not found or access is unauthorized., forbidden

Credentials with valid project/region passes:

Got Token: |eyJhbGciOiJSUzI1NiIsImtpZCI6IjluRmdNWWVCZ1A2U1N4V19kZGpiQndJSFB2WEVNTGdZQVh2dU1iS1JrV0EiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJodHRwczovL3N0cy5nb29nbGVhcGlzLmNvbSIsImV4cCI6MTY1NzE0NjE0NSwiaWF0IjoxNjU3MTM4OTQ1LCJpc3MiOiJodHRwczovL2NvbmZpZGVudGlhbGNvbXB1dGluZy5nb29nbGVhcGlzLmNvbSIsIm5iZiI6MTY1NzEzODk0NSwic3ViIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY29tcHV0ZS92MS9wcm9qZWN0cy9iaXRsb2NrZXItZGFuY2UtZGVtby96b25lcy91cy13ZXN0Mi1jL2luc3RhbmNlcy91YnUyMCIsInRlZSI6eyJ2ZXJzaW9uIjp7Im1ham9yIjowLCJtaW5vciI6MX0sInBsYXRmb3JtIjp7ImhhcmR3YXJlX3RlY2hub2xvZ3kiOiJBTURfU0VWIn0sImNvbnRhaW5lciI6eyJpbWFnZV9yZWZlcmVuY2UiOiJsYXVuY2hlci5nY3IuaW8vZ29vZ2xlL2RlYmlhbjEwOmxhdGVzdCIsImltYWdlX2RpZ2VzdCI6InNoYTI1NjpmZjE2NGE2NzY2YmQ4YmQyZDdkNWU5NGRiNDE4NjQ2NDI2ZTU4NzJjNjY0YzZhMjcwYzY4OWYwYjFkMjhmODZmIiwicmVzdGFydF9wb2xpY3kiOiJOZXZlciIsImltYWdlX2lkIjoic2hhMjU2OjMwZTM4MDUyNDJlNTAyMjMyM2E5N2Y4YjZkZWVjODRmZTU4MzIwYzNjYzFlNzE3NDI5ZGY3ZjQ3YjViMzE3YmUiLCJlbnYiOnsiRk9PIjoiQkFSIiwiUEFUSCI6Ii91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2JpbiIsIlNPTUVfTkFNRSI6IlNPTUVfVkFMVUUifSwiYXJncyI6WyItLWZvbyIsImJhciIsImJheiJdfSwiZ2NlIjp7InpvbmUiOiJ1cy13ZXN0Mi1jIiwicHJvamVjdF9pZCI6ImJpdGxvY2tlci1kYW5jZS1kZW1vIiwicHJvamVjdF9udW1iZXIiOjU2NzA0NTA1Mzg3OCwiaW5zdGFuY2VfbmFtZSI6InVidTIwIiwiaW5zdGFuY2VfaWQiOiIyOTk0MDE1NTM3NjgyNTU0NzA5In0sImVtYWlscyI6WyJjeWhhbmlzaEBnb29nbGUuY29tIiwiamVzc2llcWxpdUBnb29nbGUuY29tIl19fQ.EpDSQqR5E9rS6FWsX2CeS2HVfvcITG3vScpyNPV7OSLR7uBFVh6RZTPqOOu5qPRT_Wox2jxRwDTAa8uqQyCwPAJnpJbMSXSD4qkOK72osYVfW-h6nanAsM8pFOYY4xyW9jhqegIopken6yBmhxzvH9sMsslDRbNXRN1OQZ0rhp0Sb3uJNfXRx52ewJepuNSaq-uV4SbqphwnkqkrxgewmgdNYlNFeHhP2krZXqfyWpjeFkQzQzcZf-epoIGAC-DSoPGLZKvXyyDz1vufW7SdB5pmOK0eEADCzeTPyaSN-RJm1hKaWL2YmkvsLwdOaLPystIGqsy8oScZVffB1Z5ESQ|

Signed-off-by: Joe Richey joerichey@google.com

We now get better error messages. For example:

No credentials:
```
Getting HTTP Client: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
```

Credentials, but invalid project:
```
Creating Verifier Client: listing regions in project "confidentialcomputing-e2eee": googleapi: Error 403: Permission denied on resource project confidentialcomputing-e2eee.
        Details:
        [
          {
            "@type": "type.googleapis.com/google.rpc.Help",
            "links": [
              {
                "description": "Google developer console API key",
                "url": "https://console.developers.google.com/project/confidentialcomputing-e2eee/apiui/credential"
              }
            ]
          },
          {
            "@type": "type.googleapis.com/google.rpc.ErrorInfo",
            "domain": "googleapis.com",
            "metadata": {
              "consumer": "projects/confidentialcomputing-e2eee",
              "service": "confidentialcomputing.googleapis.com"
            },
            "reason": "CONSUMER_INVALID"
          }
        ]
        , forbidden
```

Credentials, valid project, invalid region:
```
Creating Verifier Client: invalid region "us-central3", avaiable regions are [us-central1]: googleapi: Error 403: Location us-central3 is not found or access is unauthorized., forbidden
```

Creaentials with valid project/region passes:
```
Got Token: |eyJhbGciOiJSUzI1NiIsImtpZCI6IjluRmdNWWVCZ1A2U1N4V19kZGpiQndJSFB2WEVNTGdZQVh2dU1iS1JrV0EiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJodHRwczovL3N0cy5nb29nbGVhcGlzLmNvbSIsImV4cCI6MTY1NzE0NjE0NSwiaWF0IjoxNjU3MTM4OTQ1LCJpc3MiOiJodHRwczovL2NvbmZpZGVudGlhbGNvbXB1dGluZy5nb29nbGVhcGlzLmNvbSIsIm5iZiI6MTY1NzEzODk0NSwic3ViIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY29tcHV0ZS92MS9wcm9qZWN0cy9iaXRsb2NrZXItZGFuY2UtZGVtby96b25lcy91cy13ZXN0Mi1jL2luc3RhbmNlcy91YnUyMCIsInRlZSI6eyJ2ZXJzaW9uIjp7Im1ham9yIjowLCJtaW5vciI6MX0sInBsYXRmb3JtIjp7ImhhcmR3YXJlX3RlY2hub2xvZ3kiOiJBTURfU0VWIn0sImNvbnRhaW5lciI6eyJpbWFnZV9yZWZlcmVuY2UiOiJsYXVuY2hlci5nY3IuaW8vZ29vZ2xlL2RlYmlhbjEwOmxhdGVzdCIsImltYWdlX2RpZ2VzdCI6InNoYTI1NjpmZjE2NGE2NzY2YmQ4YmQyZDdkNWU5NGRiNDE4NjQ2NDI2ZTU4NzJjNjY0YzZhMjcwYzY4OWYwYjFkMjhmODZmIiwicmVzdGFydF9wb2xpY3kiOiJOZXZlciIsImltYWdlX2lkIjoic2hhMjU2OjMwZTM4MDUyNDJlNTAyMjMyM2E5N2Y4YjZkZWVjODRmZTU4MzIwYzNjYzFlNzE3NDI5ZGY3ZjQ3YjViMzE3YmUiLCJlbnYiOnsiRk9PIjoiQkFSIiwiUEFUSCI6Ii91c3IvbG9jYWwvc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2JpbiIsIlNPTUVfTkFNRSI6IlNPTUVfVkFMVUUifSwiYXJncyI6WyItLWZvbyIsImJhciIsImJheiJdfSwiZ2NlIjp7InpvbmUiOiJ1cy13ZXN0Mi1jIiwicHJvamVjdF9pZCI6ImJpdGxvY2tlci1kYW5jZS1kZW1vIiwicHJvamVjdF9udW1iZXIiOjU2NzA0NTA1Mzg3OCwiaW5zdGFuY2VfbmFtZSI6InVidTIwIiwiaW5zdGFuY2VfaWQiOiIyOTk0MDE1NTM3NjgyNTU0NzA5In0sImVtYWlscyI6WyJjeWhhbmlzaEBnb29nbGUuY29tIiwiamVzc2llcWxpdUBnb29nbGUuY29tIl19fQ.EpDSQqR5E9rS6FWsX2CeS2HVfvcITG3vScpyNPV7OSLR7uBFVh6RZTPqOOu5qPRT_Wox2jxRwDTAa8uqQyCwPAJnpJbMSXSD4qkOK72osYVfW-h6nanAsM8pFOYY4xyW9jhqegIopken6yBmhxzvH9sMsslDRbNXRN1OQZ0rhp0Sb3uJNfXRx52ewJepuNSaq-uV4SbqphwnkqkrxgewmgdNYlNFeHhP2krZXqfyWpjeFkQzQzcZf-epoIGAC-DSoPGLZKvXyyDz1vufW7SdB5pmOK0eEADCzeTPyaSN-RJm1hKaWL2YmkvsLwdOaLPystIGqsy8oScZVffB1Z5ESQ|
```

Signed-off-by: Joe Richey <joerichey@google.com>
@alexmwu alexmwu merged commit 6b74ec9 into master Jul 8, 2022
@josephlr josephlr deleted the resterr branch July 18, 2022 20:32
@JoshuaKrstic JoshuaKrstic mentioned this pull request Aug 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants