@@ -71,6 +71,7 @@ export class Compute extends OAuth2Client {
7171 data = await gcpMetadata . instance ( tokenPath ) ;
7272 } catch ( e ) {
7373 e . message = `Could not refresh access token: ${ e . message } ` ;
74+ this . wrapError ( e ) ;
7475 throw e ;
7576 }
7677 const tokens = data as Credentials ;
@@ -82,36 +83,23 @@ export class Compute extends OAuth2Client {
8283 return { tokens, res : null } ;
8384 }
8485
85- protected requestAsync < T > ( opts : GaxiosOptions , retry = false ) :
86- GaxiosPromise < T > {
87- return super . requestAsync < T > ( opts , retry ) . catch ( e => {
88- const res = ( e as GaxiosError ) . response ;
89- if ( res && res . status ) {
90- let helpfulMessage = null ;
91- if ( res . status === 403 ) {
92- helpfulMessage =
93- 'A Forbidden error was returned while attempting to retrieve an access ' +
94- 'token for the Compute Engine built-in service account. This may be because the Compute ' +
95- 'Engine instance does not have the correct permission scopes specified.' ;
96- } else if ( res . status === 404 ) {
97- helpfulMessage =
98- 'A Not Found error was returned while attempting to retrieve an access' +
99- 'token for the Compute Engine built-in service account. This may be because the Compute ' +
100- 'Engine instance does not have any permission scopes specified.' ;
101- }
102- if ( helpfulMessage ) {
103- if ( e && e . message && ! retry ) {
104- helpfulMessage += ' ' + e . message ;
105- }
106- if ( e ) {
107- e . message = helpfulMessage ;
108- } else {
109- e = new Error ( helpfulMessage ) ;
110- ( e as NodeJS . ErrnoException ) . code = res . status . toString ( ) ;
111- }
112- }
86+ protected wrapError ( e : GaxiosError ) {
87+ const res = e . response ;
88+ if ( res && res . status ) {
89+ e . code = res . status . toString ( ) ;
90+ if ( res . status === 403 ) {
91+ e . message =
92+ 'A Forbidden error was returned while attempting to retrieve an access ' +
93+ 'token for the Compute Engine built-in service account. This may be because the Compute ' +
94+ 'Engine instance does not have the correct permission scopes specified: ' +
95+ e . message ;
96+ } else if ( res . status === 404 ) {
97+ e . message =
98+ 'A Not Found error was returned while attempting to retrieve an access' +
99+ 'token for the Compute Engine built-in service account. This may be because the Compute ' +
100+ 'Engine instance does not have any permission scopes specified: ' +
101+ e . message ;
113102 }
114- throw e ;
115- } ) ;
103+ }
116104 }
117105}
0 commit comments