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
02e99e49
Kaydet (Commit)
02e99e49
authored
Agu 18, 2016
tarafından
Joffrey F
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Service API integration tests
Signed-off-by:
Joffrey F
<
joffrey@docker.com
>
üst
172e95d5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
105 additions
and
2 deletions
+105
-2
service.py
docker/api/service.py
+5
-2
service_test.py
tests/integration/service_test.py
+100
-0
No files found.
docker/api/service.py
Dosyayı görüntüle @
02e99e49
...
@@ -42,10 +42,11 @@ class ServiceApiMixin(object):
...
@@ -42,10 +42,11 @@ class ServiceApiMixin(object):
url
=
self
.
_url
(
'/services/{0}'
,
service
)
url
=
self
.
_url
(
'/services/{0}'
,
service
)
resp
=
self
.
_delete
(
url
)
resp
=
self
.
_delete
(
url
)
self
.
_raise_for_status
(
resp
)
self
.
_raise_for_status
(
resp
)
return
True
@utils.minimum_version
(
'1.24'
)
@utils.minimum_version
(
'1.24'
)
@utils.check_resource
@utils.check_resource
def
update_service
(
self
,
service
,
task_template
=
None
,
name
=
None
,
def
update_service
(
self
,
service
,
version
,
task_template
=
None
,
name
=
None
,
labels
=
None
,
mode
=
None
,
update_config
=
None
,
labels
=
None
,
mode
=
None
,
update_config
=
None
,
networks
=
None
,
endpoint_config
=
None
):
networks
=
None
,
endpoint_config
=
None
):
url
=
self
.
_url
(
'/services/{0}/update'
,
service
)
url
=
self
.
_url
(
'/services/{0}/update'
,
service
)
...
@@ -65,7 +66,9 @@ class ServiceApiMixin(object):
...
@@ -65,7 +66,9 @@ class ServiceApiMixin(object):
if
endpoint_config
is
not
None
:
if
endpoint_config
is
not
None
:
data
[
'Endpoint'
]
=
endpoint_config
data
[
'Endpoint'
]
=
endpoint_config
return
self
.
_result
(
self
.
_post_json
(
url
,
data
=
data
),
True
)
resp
=
self
.
_post_json
(
url
,
data
=
data
,
params
=
{
'version'
:
version
})
self
.
_raise_for_status
(
resp
)
return
True
class
TaskTemplate
(
dict
):
class
TaskTemplate
(
dict
):
...
...
tests/integration/service_test.py
0 → 100644
Dosyayı görüntüle @
02e99e49
import
random
import
docker
# import pytest
from
..base
import
requires_api_version
from
..
import
helpers
BUSYBOX
=
helpers
.
BUSYBOX
class
ServiceTest
(
helpers
.
BaseTestCase
):
def
setUp
(
self
):
super
(
ServiceTest
,
self
)
.
setUp
()
try
:
self
.
client
.
leave_swarm
(
force
=
True
)
except
docker
.
errors
.
APIError
:
pass
self
.
client
.
init_swarm
(
'eth0'
)
def
tearDown
(
self
):
super
(
ServiceTest
,
self
)
.
tearDown
()
for
service
in
self
.
client
.
services
(
filters
=
{
'name'
:
'dockerpytest_'
}):
try
:
self
.
client
.
remove_service
(
service
[
'ID'
])
except
docker
.
errors
.
APIError
:
pass
try
:
self
.
client
.
leave_swarm
(
force
=
True
)
except
docker
.
errors
.
APIError
:
pass
def
get_service_name
(
self
):
return
'dockerpytest_{0:x}'
.
format
(
random
.
getrandbits
(
64
))
def
create_simple_service
(
self
,
name
=
None
):
if
name
:
name
=
'dockerpytest_{0}'
.
format
(
name
)
else
:
name
=
self
.
get_service_name
()
container_spec
=
docker
.
api
.
ContainerSpec
(
'busybox'
,
[
'echo'
,
'hello'
])
task_tmpl
=
docker
.
api
.
TaskTemplate
(
container_spec
)
return
name
,
self
.
client
.
create_service
(
task_tmpl
,
name
=
name
)
@requires_api_version
(
'1.24'
)
def
test_list_services
(
self
):
services
=
self
.
client
.
services
()
assert
isinstance
(
services
,
list
)
test_services
=
self
.
client
.
services
(
filters
=
{
'name'
:
'dockerpytest_'
})
assert
len
(
test_services
)
==
0
self
.
create_simple_service
()
test_services
=
self
.
client
.
services
(
filters
=
{
'name'
:
'dockerpytest_'
})
assert
len
(
test_services
)
==
1
assert
'dockerpytest_'
in
test_services
[
0
][
'Spec'
][
'Name'
]
def
test_inspect_service_by_id
(
self
):
svc_name
,
svc_id
=
self
.
create_simple_service
()
svc_info
=
self
.
client
.
inspect_service
(
svc_id
)
assert
'ID'
in
svc_info
assert
svc_info
[
'ID'
]
==
svc_id
[
'ID'
]
def
test_inspect_service_by_name
(
self
):
svc_name
,
svc_id
=
self
.
create_simple_service
()
svc_info
=
self
.
client
.
inspect_service
(
svc_name
)
assert
'ID'
in
svc_info
assert
svc_info
[
'ID'
]
==
svc_id
[
'ID'
]
def
test_remove_service_by_id
(
self
):
svc_name
,
svc_id
=
self
.
create_simple_service
()
assert
self
.
client
.
remove_service
(
svc_id
)
test_services
=
self
.
client
.
services
(
filters
=
{
'name'
:
'dockerpytest_'
})
assert
len
(
test_services
)
==
0
def
test_rempve_service_by_name
(
self
):
svc_name
,
svc_id
=
self
.
create_simple_service
()
assert
self
.
client
.
remove_service
(
svc_name
)
test_services
=
self
.
client
.
services
(
filters
=
{
'name'
:
'dockerpytest_'
})
assert
len
(
test_services
)
==
0
def
test_create_service_simple
(
self
):
name
,
svc_id
=
self
.
create_simple_service
()
assert
self
.
client
.
inspect_service
(
svc_id
)
services
=
self
.
client
.
services
(
filters
=
{
'name'
:
name
})
assert
len
(
services
)
==
1
assert
services
[
0
][
'ID'
]
==
svc_id
[
'ID'
]
def
test_update_service_name
(
self
):
name
,
svc_id
=
self
.
create_simple_service
()
svc_info
=
self
.
client
.
inspect_service
(
svc_id
)
svc_version
=
svc_info
[
'Version'
][
'Index'
]
new_name
=
self
.
get_service_name
()
assert
self
.
client
.
update_service
(
svc_id
,
svc_version
,
name
=
new_name
,
task_template
=
svc_info
[
'Spec'
][
'TaskTemplate'
]
)
svc_info
=
self
.
client
.
inspect_service
(
svc_id
)
assert
svc_info
[
'Spec'
][
'Name'
]
==
new_name
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