Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
docker-py
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
docker-py
Commits
25b18844
Kaydet (Commit)
25b18844
authored
Ara 10, 2015
tarafından
Aanand Prasad
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Treat 'index.docker.io' repo names as 'docker.io'
Signed-off-by:
Aanand Prasad
<
aanand.prasad@gmail.com
>
üst
9b890c45
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
8 deletions
+38
-8
auth.py
docker/auth/auth.py
+11
-4
auth_test.py
tests/unit/auth_test.py
+27
-4
No files found.
docker/auth/auth.py
Dosyayı görüntüle @
25b18844
...
@@ -21,7 +21,7 @@ import six
...
@@ -21,7 +21,7 @@ import six
from
..
import
errors
from
..
import
errors
INDEX_NAME
=
'
index.
docker.io'
INDEX_NAME
=
'docker.io'
INDEX_URL
=
'https://{0}/v1/'
.
format
(
INDEX_NAME
)
INDEX_URL
=
'https://{0}/v1/'
.
format
(
INDEX_NAME
)
DOCKER_CONFIG_FILENAME
=
os
.
path
.
join
(
'.docker'
,
'config.json'
)
DOCKER_CONFIG_FILENAME
=
os
.
path
.
join
(
'.docker'
,
'config.json'
)
LEGACY_DOCKER_CONFIG_FILENAME
=
'.dockercfg'
LEGACY_DOCKER_CONFIG_FILENAME
=
'.dockercfg'
...
@@ -41,7 +41,14 @@ def resolve_repository_name(repo_name):
...
@@ -41,7 +41,14 @@ def resolve_repository_name(repo_name):
'Invalid index name ({0}). Cannot begin or end with a'
'Invalid index name ({0}). Cannot begin or end with a'
' hyphen.'
.
format
(
index_name
)
' hyphen.'
.
format
(
index_name
)
)
)
return
index_name
,
remote_name
return
resolve_index_name
(
index_name
),
remote_name
def
resolve_index_name
(
index_name
):
index_name
=
convert_to_hostname
(
index_name
)
if
index_name
==
'index.'
+
INDEX_NAME
:
index_name
=
INDEX_NAME
return
index_name
def
split_repo_name
(
repo_name
):
def
split_repo_name
(
repo_name
):
...
@@ -62,7 +69,7 @@ def resolve_authconfig(authconfig, registry=None):
...
@@ -62,7 +69,7 @@ def resolve_authconfig(authconfig, registry=None):
Returns None if no match was found.
Returns None if no match was found.
"""
"""
# Default to the public index server
# Default to the public index server
registry
=
convert_to_host
name
(
registry
)
if
registry
else
INDEX_NAME
registry
=
resolve_index_
name
(
registry
)
if
registry
else
INDEX_NAME
log
.
debug
(
"Looking for auth entry for {0}"
.
format
(
repr
(
registry
)))
log
.
debug
(
"Looking for auth entry for {0}"
.
format
(
repr
(
registry
)))
if
registry
in
authconfig
:
if
registry
in
authconfig
:
...
@@ -70,7 +77,7 @@ def resolve_authconfig(authconfig, registry=None):
...
@@ -70,7 +77,7 @@ def resolve_authconfig(authconfig, registry=None):
return
authconfig
[
registry
]
return
authconfig
[
registry
]
for
key
,
config
in
six
.
iteritems
(
authconfig
):
for
key
,
config
in
six
.
iteritems
(
authconfig
):
if
convert_to_host
name
(
key
)
==
registry
:
if
resolve_index_
name
(
key
)
==
registry
:
log
.
debug
(
"Found {0}"
.
format
(
repr
(
key
)))
log
.
debug
(
"Found {0}"
.
format
(
repr
(
key
)))
return
config
return
config
...
...
tests/unit/auth_test.py
Dosyayı görüntüle @
25b18844
...
@@ -35,25 +35,31 @@ class ResolveRepositoryNameTest(base.BaseTestCase):
...
@@ -35,25 +35,31 @@ class ResolveRepositoryNameTest(base.BaseTestCase):
def
test_resolve_repository_name_hub_library_image
(
self
):
def
test_resolve_repository_name_hub_library_image
(
self
):
self
.
assertEqual
(
self
.
assertEqual
(
auth
.
resolve_repository_name
(
'image'
),
auth
.
resolve_repository_name
(
'image'
),
(
'
index.
docker.io'
,
'image'
),
(
'docker.io'
,
'image'
),
)
)
def
test_resolve_repository_name_dotted_hub_library_image
(
self
):
def
test_resolve_repository_name_dotted_hub_library_image
(
self
):
self
.
assertEqual
(
self
.
assertEqual
(
auth
.
resolve_repository_name
(
'image.valid'
),
auth
.
resolve_repository_name
(
'image.valid'
),
(
'
index.
docker.io'
,
'image.valid'
)
(
'docker.io'
,
'image.valid'
)
)
)
def
test_resolve_repository_name_hub_image
(
self
):
def
test_resolve_repository_name_hub_image
(
self
):
self
.
assertEqual
(
self
.
assertEqual
(
auth
.
resolve_repository_name
(
'username/image'
),
auth
.
resolve_repository_name
(
'username/image'
),
(
'
index.
docker.io'
,
'username/image'
),
(
'docker.io'
,
'username/image'
),
)
)
def
test_explicit_hub_index_library_image
(
self
):
def
test_explicit_hub_index_library_image
(
self
):
self
.
assertEqual
(
auth
.
resolve_repository_name
(
'docker.io/image'
),
(
'docker.io'
,
'image'
)
)
def
test_explicit_legacy_hub_index_library_image
(
self
):
self
.
assertEqual
(
self
.
assertEqual
(
auth
.
resolve_repository_name
(
'index.docker.io/image'
),
auth
.
resolve_repository_name
(
'index.docker.io/image'
),
(
'
index.
docker.io'
,
'image'
)
(
'docker.io'
,
'image'
)
)
)
def
test_resolve_repository_name_private_registry
(
self
):
def
test_resolve_repository_name_private_registry
(
self
):
...
@@ -228,6 +234,23 @@ class ResolveAuthTest(base.BaseTestCase):
...
@@ -228,6 +234,23 @@ class ResolveAuthTest(base.BaseTestCase):
)[
'username'
],
)[
'username'
],
'indexuser'
,
'indexuser'
,
)
)
def
test_resolve_registry_and_auth_explicit_hub
(
self
):
image
=
'docker.io/username/image'
self
.
assertEqual
(
auth
.
resolve_authconfig
(
self
.
auth_config
,
auth
.
resolve_repository_name
(
image
)[
0
]
)[
'username'
],
'indexuser'
,
)
def
test_resolve_registry_and_auth_explicit_legacy_hub
(
self
):
image
=
'index.docker.io/username/image'
self
.
assertEqual
(
auth
.
resolve_authconfig
(
self
.
auth_config
,
auth
.
resolve_repository_name
(
image
)[
0
]
)[
'username'
],
'indexuser'
,
)
)
def
test_resolve_registry_and_auth_private_registry
(
self
):
def
test_resolve_registry_and_auth_private_registry
(
self
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment