Add ecr get_authorization_token response and tests
This commit is contained in:
parent
57c5c6df26
commit
025e975e44
@ -1,12 +1,13 @@
|
||||
from __future__ import unicode_literals
|
||||
import json
|
||||
from datetime import datetime
|
||||
import time
|
||||
|
||||
from moto.core.responses import BaseResponse
|
||||
from .models import ecr_backends
|
||||
|
||||
|
||||
class ECRResponse(BaseResponse):
|
||||
|
||||
@property
|
||||
def ecr_backend(self):
|
||||
return ecr_backends[self.region]
|
||||
@ -111,9 +112,17 @@ class ECRResponse(BaseResponse):
|
||||
'ECR.generate_presigned_url is not yet implemented')
|
||||
|
||||
def get_authorization_token(self):
|
||||
if self.is_not_dryrun('GetAuthorizationToken'):
|
||||
raise NotImplementedError(
|
||||
'ECR.get_authorization_token is not yet implemented')
|
||||
registry_ids = self._get_param('registryIds')
|
||||
if not registry_ids:
|
||||
registry_ids = [self.region]
|
||||
auth_data = []
|
||||
for registry_id in registry_ids:
|
||||
auth_data.append({
|
||||
'authorizationToken': '{}-auth-token'.format(registry_id),
|
||||
'expiresAt': time.mktime(datetime(2015, 1, 1).timetuple()),
|
||||
'proxyEndpoint': 'https://012345678910.dkr.ecr.{}.amazonaws.com'.format(registry_id)
|
||||
})
|
||||
return json.dumps({'authorizationData': auth_data})
|
||||
|
||||
def get_download_url_for_layer(self):
|
||||
if self.is_not_dryrun('GetDownloadUrlForLayer'):
|
||||
|
@ -2,11 +2,13 @@ from __future__ import unicode_literals
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
from datetime import datetime
|
||||
from random import random
|
||||
|
||||
import sure # noqa
|
||||
|
||||
import boto3
|
||||
from dateutil.tz import tzlocal
|
||||
|
||||
from moto import mock_ecr
|
||||
|
||||
@ -368,3 +370,39 @@ def test_describe_images_by_digest():
|
||||
image_detail['repositoryName'].should.equal("test_repository")
|
||||
image_detail['imageTags'].should.equal([put_response['imageId']['imageTag']])
|
||||
image_detail['imageDigest'].should.equal(digest)
|
||||
|
||||
|
||||
@mock_ecr
|
||||
def test_get_authorization_token_assume_region():
|
||||
client = boto3.client('ecr', region_name='us-east-1')
|
||||
auth_token_response = client.get_authorization_token()
|
||||
|
||||
list(auth_token_response.keys()).should.equal(['authorizationData', 'ResponseMetadata'])
|
||||
auth_token_response['authorizationData'].should.equal([
|
||||
{
|
||||
'authorizationToken': 'us-east-1-auth-token',
|
||||
'proxyEndpoint': 'https://012345678910.dkr.ecr.us-east-1.amazonaws.com',
|
||||
'expiresAt': datetime(2015, 1, 1, tzinfo=tzlocal())
|
||||
},
|
||||
])
|
||||
|
||||
|
||||
@mock_ecr
|
||||
def test_get_authorization_token_explicit_regions():
|
||||
client = boto3.client('ecr', region_name='us-east-1')
|
||||
auth_token_response = client.get_authorization_token(registryIds=['us-east-1', 'us-west-1'])
|
||||
|
||||
list(auth_token_response.keys()).should.equal(['authorizationData', 'ResponseMetadata'])
|
||||
auth_token_response['authorizationData'].should.equal([
|
||||
{
|
||||
'authorizationToken': 'us-east-1-auth-token',
|
||||
'proxyEndpoint': 'https://012345678910.dkr.ecr.us-east-1.amazonaws.com',
|
||||
'expiresAt': datetime(2015, 1, 1, tzinfo=tzlocal()),
|
||||
},
|
||||
{
|
||||
'authorizationToken': 'us-west-1-auth-token',
|
||||
'proxyEndpoint': 'https://012345678910.dkr.ecr.us-west-1.amazonaws.com',
|
||||
'expiresAt': datetime(2015, 1, 1, tzinfo=tzlocal())
|
||||
|
||||
}
|
||||
])
|
||||
|
Loading…
Reference in New Issue
Block a user