Look at the v1 endpoint for the GCE metadata server

We are updating all uses of the legacy GCE metadata server endpoints
(0.1 and v1beta) to use the current endpoint.
This commit is contained in:
Kevin Regan
2016-01-25 15:55:07 -08:00
parent d783f1c84a
commit c9809c87f1
2 changed files with 12 additions and 8 deletions

View File

@@ -32,8 +32,8 @@ __author__ = 'jcgregorio@google.com (Joe Gregorio)'
logger = logging.getLogger(__name__)
# URI Template for the endpoint that returns access_tokens.
META = ('http://metadata.google.internal/0.1/meta-data/service-accounts/'
'default/acquire{?scope}')
META = ('http://metadata.google.internal/computeMetadata/v1/instance/'
'service-accounts/default/acquire{?scope}')
class AppAssertionCredentials(AssertionCredentials):
@@ -84,7 +84,8 @@ class AppAssertionCredentials(AssertionCredentials):
"""
query = '?scope=%s' % urllib.parse.quote(self.scope, '')
uri = META.replace('{?scope}', query)
response, content = http_request(uri)
response, content = http_request(
uri, headers={'Metadata-Flavor': 'Google'})
content = _from_bytes(content)
if response.status == 200:
try:

View File

@@ -66,11 +66,13 @@ class AppAssertionCredentialsTests(unittest.TestCase):
credentials.refresh(http)
self.assertEquals(access_token, credentials.access_token)
base_metadata_uri = ('http://metadata.google.internal/0.1/meta-data/'
'service-accounts/default/acquire')
base_metadata_uri = (
'http://metadata.google.internal/computeMetadata/v1/instance/'
'service-accounts/default/acquire')
escaped_scopes = urllib.parse.quote(' '.join(scopes), safe='')
request_uri = base_metadata_uri + '?scope=' + escaped_scopes
http.request.assert_called_once_with(request_uri)
http.request.assert_called_once_with(
request_uri, headers={'Metadata-Flavor': 'Google'})
def test_refresh_success(self):
self._refresh_success_helper(bytes_response=False)
@@ -158,8 +160,9 @@ class AppAssertionCredentialsTests(unittest.TestCase):
self.assertEqual(None, token.expires_in)
http.request.assert_called_once_with(
'http://metadata.google.internal/0.1/meta-data/service-accounts/'
'default/acquire?scope=dummy_scope')
'http://metadata.google.internal/computeMetadata/v1/instance/'
'service-accounts/default/acquire?scope=dummy_scope',
headers={'Metadata-Flavor': 'Google'})
def test_save_to_well_known_file(self):
import os