Skip to content

Commit 25b1884

Browse files
committed
Treat 'index.docker.io' repo names as 'docker.io'
Signed-off-by: Aanand Prasad <[email protected]>
1 parent 9b890c4 commit 25b1884

File tree

2 files changed

+38
-8
lines changed

2 files changed

+38
-8
lines changed

docker/auth/auth.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from .. import errors
2323

24-
INDEX_NAME = 'index.docker.io'
24+
INDEX_NAME = 'docker.io'
2525
INDEX_URL = 'https://{0}/v1/'.format(INDEX_NAME)
2626
DOCKER_CONFIG_FILENAME = os.path.join('.docker', 'config.json')
2727
LEGACY_DOCKER_CONFIG_FILENAME = '.dockercfg'
@@ -41,7 +41,14 @@ def resolve_repository_name(repo_name):
4141
'Invalid index name ({0}). Cannot begin or end with a'
4242
' hyphen.'.format(index_name)
4343
)
44-
return index_name, remote_name
44+
return resolve_index_name(index_name), remote_name
45+
46+
47+
def resolve_index_name(index_name):
48+
index_name = convert_to_hostname(index_name)
49+
if index_name == 'index.'+INDEX_NAME:
50+
index_name = INDEX_NAME
51+
return index_name
4552

4653

4754
def split_repo_name(repo_name):
@@ -62,15 +69,15 @@ def resolve_authconfig(authconfig, registry=None):
6269
Returns None if no match was found.
6370
"""
6471
# Default to the public index server
65-
registry = convert_to_hostname(registry) if registry else INDEX_NAME
72+
registry = resolve_index_name(registry) if registry else INDEX_NAME
6673
log.debug("Looking for auth entry for {0}".format(repr(registry)))
6774

6875
if registry in authconfig:
6976
log.debug("Found {0}".format(repr(registry)))
7077
return authconfig[registry]
7178

7279
for key, config in six.iteritems(authconfig):
73-
if convert_to_hostname(key) == registry:
80+
if resolve_index_name(key) == registry:
7481
log.debug("Found {0}".format(repr(key)))
7582
return config
7683

tests/unit/auth_test.py

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,25 +35,31 @@ class ResolveRepositoryNameTest(base.BaseTestCase):
3535
def test_resolve_repository_name_hub_library_image(self):
3636
self.assertEqual(
3737
auth.resolve_repository_name('image'),
38-
('index.docker.io', 'image'),
38+
('docker.io', 'image'),
3939
)
4040

4141
def test_resolve_repository_name_dotted_hub_library_image(self):
4242
self.assertEqual(
4343
auth.resolve_repository_name('image.valid'),
44-
('index.docker.io', 'image.valid')
44+
('docker.io', 'image.valid')
4545
)
4646

4747
def test_resolve_repository_name_hub_image(self):
4848
self.assertEqual(
4949
auth.resolve_repository_name('username/image'),
50-
('index.docker.io', 'username/image'),
50+
('docker.io', 'username/image'),
5151
)
5252

5353
def test_explicit_hub_index_library_image(self):
54+
self.assertEqual(
55+
auth.resolve_repository_name('docker.io/image'),
56+
('docker.io', 'image')
57+
)
58+
59+
def test_explicit_legacy_hub_index_library_image(self):
5460
self.assertEqual(
5561
auth.resolve_repository_name('index.docker.io/image'),
56-
('index.docker.io', 'image')
62+
('docker.io', 'image')
5763
)
5864

5965
def test_resolve_repository_name_private_registry(self):
@@ -228,6 +234,23 @@ def test_resolve_registry_and_auth_hub_image(self):
228234
)['username'],
229235
'indexuser',
230236
)
237+
238+
def test_resolve_registry_and_auth_explicit_hub(self):
239+
image = 'docker.io/username/image'
240+
self.assertEqual(
241+
auth.resolve_authconfig(
242+
self.auth_config, auth.resolve_repository_name(image)[0]
243+
)['username'],
244+
'indexuser',
245+
)
246+
247+
def test_resolve_registry_and_auth_explicit_legacy_hub(self):
248+
image = 'index.docker.io/username/image'
249+
self.assertEqual(
250+
auth.resolve_authconfig(
251+
self.auth_config, auth.resolve_repository_name(image)[0]
252+
)['username'],
253+
'indexuser',
231254
)
232255

233256
def test_resolve_registry_and_auth_private_registry(self):

0 commit comments

Comments
 (0)