13
13
14
14
15
15
class ServiceTest (BaseAPIIntegrationTest ):
16
- def setUp (self ):
17
- super (ServiceTest , self ).setUp ()
18
- force_leave_swarm (self .client )
19
- self .init_swarm ()
16
+ @classmethod
17
+ def setup_class (cls ):
18
+ client = cls .get_client_instance ()
19
+ force_leave_swarm (client )
20
+ cls ._init_swarm (client )
21
+
22
+ @classmethod
23
+ def teardown_class (cls ):
24
+ client = cls .get_client_instance ()
25
+ force_leave_swarm (client )
20
26
21
27
def tearDown (self ):
22
- super (ServiceTest , self ).tearDown ()
23
28
for service in self .client .services (filters = {'name' : 'dockerpytest_' }):
24
29
try :
25
30
self .client .remove_service (service ['ID' ])
26
31
except docker .errors .APIError :
27
32
pass
28
- force_leave_swarm ( self . client )
33
+ super ( ServiceTest , self ). tearDown ( )
29
34
30
35
def get_service_name (self ):
31
36
return 'dockerpytest_{0:x}' .format (random .getrandbits (64 ))
@@ -473,16 +478,16 @@ def test_create_service_with_unicode_secret(self):
473
478
secret_data = u'東方花映塚'
474
479
secret_id = self .client .create_secret (secret_name , secret_data )
475
480
self .tmp_secrets .append (secret_id )
476
- secret_ref = docker .types .ConfigReference (secret_id , secret_name )
481
+ secret_ref = docker .types .SecretReference (secret_id , secret_name )
477
482
container_spec = docker .types .ContainerSpec (
478
483
'busybox' , ['sleep' , '999' ], secrets = [secret_ref ]
479
484
)
480
485
task_tmpl = docker .types .TaskTemplate (container_spec )
481
486
name = self .get_service_name ()
482
487
svc_id = self .client .create_service (task_tmpl , name = name )
483
488
svc_info = self .client .inspect_service (svc_id )
484
- assert 'Configs ' in svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]
485
- secrets = svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]['Configs ' ]
489
+ assert 'Secrets ' in svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]
490
+ secrets = svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]['Secrets ' ]
486
491
assert secrets [0 ] == secret_ref
487
492
488
493
container = self .get_service_container (name )
@@ -494,7 +499,7 @@ def test_create_service_with_unicode_secret(self):
494
499
container_secret = container_secret .decode ('utf-8' )
495
500
assert container_secret == secret_data
496
501
497
- @requires_api_version ('1.25 ' )
502
+ @requires_api_version ('1.30 ' )
498
503
def test_create_service_with_config (self ):
499
504
config_name = 'favorite_touhou'
500
505
config_data = b'phantasmagoria of flower view'
@@ -515,11 +520,11 @@ def test_create_service_with_config(self):
515
520
container = self .get_service_container (name )
516
521
assert container is not None
517
522
exec_id = self .client .exec_create (
518
- container , 'cat /run/configs/ {0}' .format (config_name )
523
+ container , 'cat /{0}' .format (config_name )
519
524
)
520
525
assert self .client .exec_start (exec_id ) == config_data
521
526
522
- @requires_api_version ('1.25 ' )
527
+ @requires_api_version ('1.30 ' )
523
528
def test_create_service_with_unicode_config (self ):
524
529
config_name = 'favorite_touhou'
525
530
config_data = u'東方花映塚'
@@ -540,7 +545,7 @@ def test_create_service_with_unicode_config(self):
540
545
container = self .get_service_container (name )
541
546
assert container is not None
542
547
exec_id = self .client .exec_create (
543
- container , 'cat /run/configs/ {0}' .format (config_name )
548
+ container , 'cat /{0}' .format (config_name )
544
549
)
545
550
container_config = self .client .exec_start (exec_id )
546
551
container_config = container_config .decode ('utf-8' )
@@ -618,7 +623,7 @@ def test_create_service_with_healthcheck(self):
618
623
second = 1000000000
619
624
hc = docker .types .Healthcheck (
620
625
test = 'true' , retries = 3 , timeout = 1 * second ,
621
- start_period = 3 * second , interval = second / 2 ,
626
+ start_period = 3 * second , interval = int ( second / 2 ) ,
622
627
)
623
628
container_spec = docker .types .ContainerSpec (
624
629
BUSYBOX , ['sleep' , '999' ], healthcheck = hc
@@ -665,3 +670,21 @@ def test_create_service_with_stop_signal(self):
665
670
svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]['StopSignal' ] ==
666
671
'SIGINT'
667
672
)
673
+
674
+ @requires_api_version ('1.30' )
675
+ def test_create_service_with_privileges (self ):
676
+ priv = docker .types .Privileges (selinux_disable = True )
677
+ container_spec = docker .types .ContainerSpec (
678
+ BUSYBOX , ['sleep' , '999' ], privileges = priv
679
+ )
680
+ task_tmpl = docker .types .TaskTemplate (container_spec )
681
+ name = self .get_service_name ()
682
+ svc_id = self .client .create_service (task_tmpl , name = name )
683
+ svc_info = self .client .inspect_service (svc_id )
684
+ assert (
685
+ 'Privileges' in svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]
686
+ )
687
+ privileges = (
688
+ svc_info ['Spec' ]['TaskTemplate' ]['ContainerSpec' ]['Privileges' ]
689
+ )
690
+ assert privileges ['SELinuxContext' ]['Disable' ] is True
0 commit comments