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
37fb9633
Kaydet (Commit)
37fb9633
authored
Haz 29, 2015
tarafından
Joffrey F
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Sade Fark
Merge branch 'posita-id-resolution-in-check-resource'
üst
64dcd5a1
c2d98c20
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
70 deletions
+22
-70
client.py
docker/client.py
+0
-51
decorators.py
docker/utils/decorators.py
+2
-1
test.py
tests/test.py
+20
-18
No files found.
docker/client.py
Dosyayı görüntüle @
37fb9633
...
@@ -246,8 +246,6 @@ class Client(requests.Session):
...
@@ -246,8 +246,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
attach
(
self
,
container
,
stdout
=
True
,
stderr
=
True
,
def
attach
(
self
,
container
,
stdout
=
True
,
stderr
=
True
,
stream
=
False
,
logs
=
False
):
stream
=
False
,
logs
=
False
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
params
=
{
'logs'
:
logs
and
1
or
0
,
'logs'
:
logs
and
1
or
0
,
'stdout'
:
stdout
and
1
or
0
,
'stdout'
:
stdout
and
1
or
0
,
...
@@ -292,9 +290,6 @@ class Client(requests.Session):
...
@@ -292,9 +290,6 @@ class Client(requests.Session):
if
ws
:
if
ws
:
return
self
.
_attach_websocket
(
container
,
params
)
return
self
.
_attach_websocket
(
container
,
params
)
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
u
=
self
.
_url
(
"/containers/{0}/attach"
.
format
(
container
))
u
=
self
.
_url
(
"/containers/{0}/attach"
.
format
(
container
))
return
self
.
_get_raw_response_socket
(
self
.
post
(
return
self
.
_get_raw_response_socket
(
self
.
post
(
u
,
None
,
params
=
self
.
_attach_params
(
params
),
stream
=
True
))
u
,
None
,
params
=
self
.
_attach_params
(
params
),
stream
=
True
))
...
@@ -409,8 +404,6 @@ class Client(requests.Session):
...
@@ -409,8 +404,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
commit
(
self
,
container
,
repository
=
None
,
tag
=
None
,
message
=
None
,
def
commit
(
self
,
container
,
repository
=
None
,
tag
=
None
,
message
=
None
,
author
=
None
,
conf
=
None
):
author
=
None
,
conf
=
None
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
params
=
{
'container'
:
container
,
'container'
:
container
,
'repo'
:
repository
,
'repo'
:
repository
,
...
@@ -447,8 +440,6 @@ class Client(requests.Session):
...
@@ -447,8 +440,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
copy
(
self
,
container
,
resource
):
def
copy
(
self
,
container
,
resource
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
res
=
self
.
_post_json
(
res
=
self
.
_post_json
(
self
.
_url
(
"/containers/{0}/copy"
.
format
(
container
)),
self
.
_url
(
"/containers/{0}/copy"
.
format
(
container
)),
data
=
{
"Resource"
:
resource
},
data
=
{
"Resource"
:
resource
},
...
@@ -493,8 +484,6 @@ class Client(requests.Session):
...
@@ -493,8 +484,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
diff
(
self
,
container
):
def
diff
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
return
self
.
_result
(
self
.
_get
(
self
.
_url
(
"/containers/{0}/changes"
.
return
self
.
_result
(
self
.
_get
(
self
.
_url
(
"/containers/{0}/changes"
.
format
(
container
))),
True
)
format
(
container
))),
True
)
...
@@ -539,8 +528,6 @@ class Client(requests.Session):
...
@@ -539,8 +528,6 @@ class Client(requests.Session):
raise
errors
.
InvalidVersion
(
raise
errors
.
InvalidVersion
(
'Privileged exec is not supported in API < 1.19'
'Privileged exec is not supported in API < 1.19'
)
)
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
if
isinstance
(
cmd
,
six
.
string_types
):
if
isinstance
(
cmd
,
six
.
string_types
):
cmd
=
shlex
.
split
(
str
(
cmd
))
cmd
=
shlex
.
split
(
str
(
cmd
))
...
@@ -605,8 +592,6 @@ class Client(requests.Session):
...
@@ -605,8 +592,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
export
(
self
,
container
):
def
export
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
res
=
self
.
_get
(
self
.
_url
(
"/containers/{0}/export"
.
format
(
container
)),
res
=
self
.
_get
(
self
.
_url
(
"/containers/{0}/export"
.
format
(
container
)),
stream
=
True
)
stream
=
True
)
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
...
@@ -744,16 +729,12 @@ class Client(requests.Session):
...
@@ -744,16 +729,12 @@ class Client(requests.Session):
@check_resource
@check_resource
def
inspect_container
(
self
,
container
):
def
inspect_container
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
return
self
.
_result
(
return
self
.
_result
(
self
.
_get
(
self
.
_url
(
"/containers/{0}/json"
.
format
(
container
))),
self
.
_get
(
self
.
_url
(
"/containers/{0}/json"
.
format
(
container
))),
True
)
True
)
@check_resource
@check_resource
def
inspect_image
(
self
,
image
):
def
inspect_image
(
self
,
image
):
if
isinstance
(
image
,
dict
):
image
=
image
.
get
(
'Id'
)
return
self
.
_result
(
return
self
.
_result
(
self
.
_get
(
self
.
_url
(
"/images/{0}/json"
.
format
(
image
))),
self
.
_get
(
self
.
_url
(
"/images/{0}/json"
.
format
(
image
))),
True
True
...
@@ -761,8 +742,6 @@ class Client(requests.Session):
...
@@ -761,8 +742,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
kill
(
self
,
container
,
signal
=
None
):
def
kill
(
self
,
container
,
signal
=
None
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
"/containers/{0}/kill"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/kill"
.
format
(
container
))
params
=
{}
params
=
{}
if
signal
is
not
None
:
if
signal
is
not
None
:
...
@@ -810,8 +789,6 @@ class Client(requests.Session):
...
@@ -810,8 +789,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
logs
(
self
,
container
,
stdout
=
True
,
stderr
=
True
,
stream
=
False
,
def
logs
(
self
,
container
,
stdout
=
True
,
stderr
=
True
,
stream
=
False
,
timestamps
=
False
,
tail
=
'all'
):
timestamps
=
False
,
tail
=
'all'
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
if
utils
.
compare_version
(
'1.11'
,
self
.
_version
)
>=
0
:
if
utils
.
compare_version
(
'1.11'
,
self
.
_version
)
>=
0
:
params
=
{
'stderr'
:
stderr
and
1
or
0
,
params
=
{
'stderr'
:
stderr
and
1
or
0
,
'stdout'
:
stdout
and
1
or
0
,
'stdout'
:
stdout
and
1
or
0
,
...
@@ -844,8 +821,6 @@ class Client(requests.Session):
...
@@ -844,8 +821,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
pause
(
self
,
container
):
def
pause
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
'/containers/{0}/pause'
.
format
(
container
))
url
=
self
.
_url
(
'/containers/{0}/pause'
.
format
(
container
))
res
=
self
.
_post
(
url
)
res
=
self
.
_post
(
url
)
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
...
@@ -855,8 +830,6 @@ class Client(requests.Session):
...
@@ -855,8 +830,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
port
(
self
,
container
,
private_port
):
def
port
(
self
,
container
,
private_port
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
res
=
self
.
_get
(
self
.
_url
(
"/containers/{0}/json"
.
format
(
container
)))
res
=
self
.
_get
(
self
.
_url
(
"/containers/{0}/json"
.
format
(
container
)))
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
json_
=
res
.
json
()
json_
=
res
.
json
()
...
@@ -961,8 +934,6 @@ class Client(requests.Session):
...
@@ -961,8 +934,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
remove_container
(
self
,
container
,
v
=
False
,
link
=
False
,
force
=
False
):
def
remove_container
(
self
,
container
,
v
=
False
,
link
=
False
,
force
=
False
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
'v'
:
v
,
'link'
:
link
,
'force'
:
force
}
params
=
{
'v'
:
v
,
'link'
:
link
,
'force'
:
force
}
res
=
self
.
_delete
(
self
.
_url
(
"/containers/"
+
container
),
res
=
self
.
_delete
(
self
.
_url
(
"/containers/"
+
container
),
params
=
params
)
params
=
params
)
...
@@ -970,8 +941,6 @@ class Client(requests.Session):
...
@@ -970,8 +941,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
remove_image
(
self
,
image
,
force
=
False
,
noprune
=
False
):
def
remove_image
(
self
,
image
,
force
=
False
,
noprune
=
False
):
if
isinstance
(
image
,
dict
):
image
=
image
.
get
(
'Id'
)
params
=
{
'force'
:
force
,
'noprune'
:
noprune
}
params
=
{
'force'
:
force
,
'noprune'
:
noprune
}
res
=
self
.
_delete
(
self
.
_url
(
"/images/"
+
image
),
params
=
params
)
res
=
self
.
_delete
(
self
.
_url
(
"/images/"
+
image
),
params
=
params
)
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
...
@@ -982,8 +951,6 @@ class Client(requests.Session):
...
@@ -982,8 +951,6 @@ class Client(requests.Session):
raise
errors
.
InvalidVersion
(
raise
errors
.
InvalidVersion
(
'rename was only introduced in API version 1.17'
'rename was only introduced in API version 1.17'
)
)
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
"/containers/{0}/rename"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/rename"
.
format
(
container
))
params
=
{
'name'
:
name
}
params
=
{
'name'
:
name
}
res
=
self
.
_post
(
url
,
params
=
params
)
res
=
self
.
_post
(
url
,
params
=
params
)
...
@@ -991,9 +958,6 @@ class Client(requests.Session):
...
@@ -991,9 +958,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
resize
(
self
,
container
,
height
,
width
):
def
resize
(
self
,
container
,
height
,
width
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
'h'
:
height
,
'w'
:
width
}
params
=
{
'h'
:
height
,
'w'
:
width
}
url
=
self
.
_url
(
"/containers/{0}/resize"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/resize"
.
format
(
container
))
res
=
self
.
_post
(
url
,
params
=
params
)
res
=
self
.
_post
(
url
,
params
=
params
)
...
@@ -1001,8 +965,6 @@ class Client(requests.Session):
...
@@ -1001,8 +965,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
restart
(
self
,
container
,
timeout
=
10
):
def
restart
(
self
,
container
,
timeout
=
10
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
't'
:
timeout
}
params
=
{
't'
:
timeout
}
url
=
self
.
_url
(
"/containers/{0}/restart"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/restart"
.
format
(
container
))
res
=
self
.
_post
(
url
,
params
=
params
)
res
=
self
.
_post
(
url
,
params
=
params
)
...
@@ -1067,9 +1029,6 @@ class Client(requests.Session):
...
@@ -1067,9 +1029,6 @@ class Client(requests.Session):
ipc_mode
=
ipc_mode
,
security_opt
=
security_opt
,
ulimits
=
ulimits
ipc_mode
=
ipc_mode
,
security_opt
=
security_opt
,
ulimits
=
ulimits
)
)
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
"/containers/{0}/start"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/start"
.
format
(
container
))
if
not
start_config
:
if
not
start_config
:
start_config
=
None
start_config
=
None
...
@@ -1088,15 +1047,11 @@ class Client(requests.Session):
...
@@ -1088,15 +1047,11 @@ class Client(requests.Session):
raise
errors
.
InvalidVersion
(
raise
errors
.
InvalidVersion
(
'Stats retrieval is not supported in API < 1.17!'
)
'Stats retrieval is not supported in API < 1.17!'
)
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
"/containers/{0}/stats"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/stats"
.
format
(
container
))
return
self
.
_stream_helper
(
self
.
_get
(
url
,
stream
=
True
),
decode
=
decode
)
return
self
.
_stream_helper
(
self
.
_get
(
url
,
stream
=
True
),
decode
=
decode
)
@check_resource
@check_resource
def
stop
(
self
,
container
,
timeout
=
10
):
def
stop
(
self
,
container
,
timeout
=
10
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
params
=
{
't'
:
timeout
}
params
=
{
't'
:
timeout
}
url
=
self
.
_url
(
"/containers/{0}/stop"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/stop"
.
format
(
container
))
...
@@ -1118,8 +1073,6 @@ class Client(requests.Session):
...
@@ -1118,8 +1073,6 @@ class Client(requests.Session):
@check_resource
@check_resource
def
top
(
self
,
container
):
def
top
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
u
=
self
.
_url
(
"/containers/{0}/top"
.
format
(
container
))
u
=
self
.
_url
(
"/containers/{0}/top"
.
format
(
container
))
return
self
.
_result
(
self
.
_get
(
u
),
True
)
return
self
.
_result
(
self
.
_get
(
u
),
True
)
...
@@ -1129,16 +1082,12 @@ class Client(requests.Session):
...
@@ -1129,16 +1082,12 @@ class Client(requests.Session):
@check_resource
@check_resource
def
unpause
(
self
,
container
):
def
unpause
(
self
,
container
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
'/containers/{0}/unpause'
.
format
(
container
))
url
=
self
.
_url
(
'/containers/{0}/unpause'
.
format
(
container
))
res
=
self
.
_post
(
url
)
res
=
self
.
_post
(
url
)
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
@check_resource
@check_resource
def
wait
(
self
,
container
,
timeout
=
None
):
def
wait
(
self
,
container
,
timeout
=
None
):
if
isinstance
(
container
,
dict
):
container
=
container
.
get
(
'Id'
)
url
=
self
.
_url
(
"/containers/{0}/wait"
.
format
(
container
))
url
=
self
.
_url
(
"/containers/{0}/wait"
.
format
(
container
))
res
=
self
.
_post
(
url
,
timeout
=
timeout
)
res
=
self
.
_post
(
url
,
timeout
=
timeout
)
self
.
_raise_for_status
(
res
)
self
.
_raise_for_status
(
res
)
...
...
docker/utils/decorators.py
Dosyayı görüntüle @
37fb9633
...
@@ -4,7 +4,6 @@ from .. import errors
...
@@ -4,7 +4,6 @@ from .. import errors
def
check_resource
(
f
):
def
check_resource
(
f
):
@functools.wraps
(
f
)
@functools.wraps
(
f
)
def
wrapped
(
self
,
resource_id
=
None
,
*
args
,
**
kwargs
):
def
wrapped
(
self
,
resource_id
=
None
,
*
args
,
**
kwargs
):
if
resource_id
is
None
:
if
resource_id
is
None
:
...
@@ -16,5 +15,7 @@ def check_resource(f):
...
@@ -16,5 +15,7 @@ def check_resource(f):
raise
errors
.
NullResource
(
raise
errors
.
NullResource
(
'image or container param is undefined'
'image or container param is undefined'
)
)
if
isinstance
(
resource_id
,
dict
):
resource_id
=
resource_id
.
get
(
'Id'
)
return
f
(
self
,
resource_id
,
*
args
,
**
kwargs
)
return
f
(
self
,
resource_id
,
*
args
,
**
kwargs
)
return
wrapped
return
wrapped
tests/test.py
Dosyayı görüntüle @
37fb9633
...
@@ -1894,15 +1894,16 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
...
@@ -1894,15 +1894,16 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
timeout
=
DEFAULT_TIMEOUT_SECONDS
timeout
=
DEFAULT_TIMEOUT_SECONDS
)
)
def
test_inspect_container_empty_id
(
self
):
def
test_inspect_container_undefined_id
(
self
):
try
:
for
arg
in
None
,
''
,
{
True
:
True
}:
self
.
client
.
inspect_container
(
''
)
try
:
except
docker
.
errors
.
NullResource
as
e
:
self
.
client
.
inspect_container
(
arg
)
self
.
assertEqual
(
except
docker
.
errors
.
NullResource
as
e
:
e
.
args
[
0
],
'image or container param is undefined'
self
.
assertEqual
(
)
e
.
args
[
0
],
'image or container param is undefined'
else
:
)
self
.
fail
(
'Command expected NullResource exception'
)
else
:
self
.
fail
(
'Command expected NullResource exception'
)
def
test_container_stats
(
self
):
def
test_container_stats
(
self
):
try
:
try
:
...
@@ -2075,15 +2076,16 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
...
@@ -2075,15 +2076,16 @@ class DockerClientTest(Cleanup, base.BaseTestCase):
timeout
=
DEFAULT_TIMEOUT_SECONDS
timeout
=
DEFAULT_TIMEOUT_SECONDS
)
)
def
test_inspect_image_empty_id
(
self
):
def
test_inspect_image_undefined_id
(
self
):
try
:
for
arg
in
None
,
''
,
{
True
:
True
}:
self
.
client
.
inspect_image
(
''
)
try
:
except
docker
.
errors
.
NullResource
as
e
:
self
.
client
.
inspect_image
(
arg
)
self
.
assertEqual
(
except
docker
.
errors
.
NullResource
as
e
:
e
.
args
[
0
],
'image or container param is undefined'
self
.
assertEqual
(
)
e
.
args
[
0
],
'image or container param is undefined'
else
:
)
self
.
fail
(
'Command expected NullResource exception'
)
else
:
self
.
fail
(
'Command expected NullResource exception'
)
def
test_insert_image
(
self
):
def
test_insert_image
(
self
):
try
:
try
:
...
...
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