26
26
from .auth import auth
27
27
from .unixconn import unixconn
28
28
from .ssladapter import ssladapter
29
- from .utils import utils
29
+ from .utils import utils , check_resource
30
30
from . import errors
31
31
from .tls import TLSConfig
32
32
@@ -154,6 +154,7 @@ def _attach_params(self, override=None):
154
154
'stream' : 1
155
155
}
156
156
157
+ @check_resource
157
158
def _attach_websocket (self , container , params = None ):
158
159
if six .PY3 :
159
160
raise NotImplementedError ("This method is not currently supported "
@@ -249,6 +250,7 @@ def _multiplexed_response_stream_helper(self, response):
249
250
def api_version (self ):
250
251
return self ._version
251
252
253
+ @check_resource
252
254
def attach (self , container , stdout = True , stderr = True ,
253
255
stream = False , logs = False ):
254
256
if isinstance (container , dict ):
@@ -285,6 +287,7 @@ def stream_result():
285
287
[x for x in self ._multiplexed_buffer_helper (response )]
286
288
)
287
289
290
+ @check_resource
288
291
def attach_socket (self , container , params = None , ws = False ):
289
292
if params is None :
290
293
params = {
@@ -398,6 +401,7 @@ def build(self, path=None, tag=None, quiet=False, fileobj=None,
398
401
return None , output
399
402
return match .group (1 ), output
400
403
404
+ @check_resource
401
405
def commit (self , container , repository = None , tag = None , message = None ,
402
406
author = None , conf = None ):
403
407
if isinstance (container , dict ):
@@ -436,6 +440,7 @@ def containers(self, quiet=False, all=False, trunc=False, latest=False,
436
440
x ['Id' ] = x ['Id' ][:12 ]
437
441
return res
438
442
443
+ @check_resource
439
444
def copy (self , container , resource ):
440
445
if isinstance (container , dict ):
441
446
container = container .get ('Id' )
@@ -480,6 +485,7 @@ def create_container_from_config(self, config, name=None):
480
485
res = self ._post_json (u , data = config , params = params )
481
486
return self ._result (res , True )
482
487
488
+ @check_resource
483
489
def diff (self , container ):
484
490
if isinstance (container , dict ):
485
491
container = container .get ('Id' )
@@ -506,6 +512,7 @@ def events(self, since=None, until=None, filters=None, decode=None):
506
512
params = params , stream = True ),
507
513
decode = decode )
508
514
515
+ @check_resource
509
516
def execute (self , container , cmd , detach = False , stdout = True , stderr = True ,
510
517
stream = False , tty = False ):
511
518
if utils .compare_version ('1.15' , self ._version ) < 0 :
@@ -548,6 +555,7 @@ def execute(self, container, cmd, detach=False, stdout=True, stderr=True,
548
555
[x for x in self ._multiplexed_buffer_helper (res )]
549
556
)
550
557
558
+ @check_resource
551
559
def export (self , container ):
552
560
if isinstance (container , dict ):
553
561
container = container .get ('Id' )
@@ -556,12 +564,14 @@ def export(self, container):
556
564
self ._raise_for_status (res )
557
565
return res .raw
558
566
567
+ @check_resource
559
568
def get_image (self , image ):
560
569
res = self ._get (self ._url ("/images/{0}/get" .format (image )),
561
570
stream = True )
562
571
self ._raise_for_status (res )
563
572
return res .raw
564
573
574
+ @check_resource
565
575
def history (self , image ):
566
576
res = self ._get (self ._url ("/images/{0}/history" .format (image )))
567
577
return self ._result (res , True )
@@ -671,31 +681,35 @@ def info(self):
671
681
return self ._result (self ._get (self ._url ("/info" )),
672
682
True )
673
683
684
+ @check_resource
674
685
def insert (self , image , url , path ):
675
686
if utils .compare_version ('1.12' , self ._version ) >= 0 :
676
687
raise errors .DeprecatedMethod (
677
688
'insert is not available for API version >=1.12'
678
689
)
679
- api_url = self ._url ("/images/" + image + " /insert" )
690
+ api_url = self ._url ("/images/{0} /insert" . fornat ( image ) )
680
691
params = {
681
692
'url' : url ,
682
693
'path' : path
683
694
}
684
695
return self ._result (self ._post (api_url , params = params ))
685
696
697
+ @check_resource
686
698
def inspect_container (self , container ):
687
699
if isinstance (container , dict ):
688
700
container = container .get ('Id' )
689
701
return self ._result (
690
702
self ._get (self ._url ("/containers/{0}/json" .format (container ))),
691
703
True )
692
704
693
- def inspect_image (self , image_id ):
705
+ @check_resource
706
+ def inspect_image (self , image ):
694
707
return self ._result (
695
- self ._get (self ._url ("/images/{0}/json" .format (image_id ))),
708
+ self ._get (self ._url ("/images/{0}/json" .format (image ))),
696
709
True
697
710
)
698
711
712
+ @check_resource
699
713
def kill (self , container , signal = None ):
700
714
if isinstance (container , dict ):
701
715
container = container .get ('Id' )
@@ -743,6 +757,7 @@ def login(self, username, password=None, email=None, registry=None,
743
757
self ._auth_configs [registry ] = req_data
744
758
return self ._result (response , json = True )
745
759
760
+ @check_resource
746
761
def logs (self , container , stdout = True , stderr = True , stream = False ,
747
762
timestamps = False , tail = 'all' ):
748
763
if isinstance (container , dict ):
@@ -777,6 +792,7 @@ def logs(self, container, stdout=True, stderr=True, stream=False,
777
792
logs = True
778
793
)
779
794
795
+ @check_resource
780
796
def pause (self , container ):
781
797
if isinstance (container , dict ):
782
798
container = container .get ('Id' )
@@ -787,6 +803,7 @@ def pause(self, container):
787
803
def ping (self ):
788
804
return self ._result (self ._get (self ._url ('/_ping' )))
789
805
806
+ @check_resource
790
807
def port (self , container , private_port ):
791
808
if isinstance (container , dict ):
792
809
container = container .get ('Id' )
@@ -884,6 +901,7 @@ def push(self, repository, tag=None, stream=False,
884
901
return stream and self ._stream_helper (response ) \
885
902
or self ._result (response )
886
903
904
+ @check_resource
887
905
def remove_container (self , container , v = False , link = False , force = False ):
888
906
if isinstance (container , dict ):
889
907
container = container .get ('Id' )
@@ -892,13 +910,15 @@ def remove_container(self, container, v=False, link=False, force=False):
892
910
params = params )
893
911
self ._raise_for_status (res )
894
912
913
+ @check_resource
895
914
def remove_image (self , image , force = False , noprune = False ):
896
915
if isinstance (image , dict ):
897
916
image = image .get ('Id' )
898
917
params = {'force' : force , 'noprune' : noprune }
899
918
res = self ._delete (self ._url ("/images/" + image ), params = params )
900
919
self ._raise_for_status (res )
901
920
921
+ @check_resource
902
922
def rename (self , container , name ):
903
923
if utils .compare_version ('1.17' , self ._version ) < 0 :
904
924
raise errors .InvalidVersion (
@@ -911,6 +931,7 @@ def rename(self, container, name):
911
931
res = self ._post (url , params = params )
912
932
self ._raise_for_status (res )
913
933
934
+ @check_resource
914
935
def resize (self , container , height , width ):
915
936
if isinstance (container , dict ):
916
937
container = container .get ('Id' )
@@ -920,6 +941,7 @@ def resize(self, container, height, width):
920
941
res = self ._post (url , params = params )
921
942
self ._raise_for_status (res )
922
943
944
+ @check_resource
923
945
def restart (self , container , timeout = 10 ):
924
946
if isinstance (container , dict ):
925
947
container = container .get ('Id' )
@@ -933,6 +955,7 @@ def search(self, term):
933
955
params = {'term' : term }),
934
956
True )
935
957
958
+ @check_resource
936
959
def start (self , container , binds = None , port_bindings = None , lxc_conf = None ,
937
960
publish_all_ports = False , links = None , privileged = False ,
938
961
dns = None , dns_search = None , volumes_from = None , network_mode = None ,
@@ -995,6 +1018,7 @@ def start(self, container, binds=None, port_bindings=None, lxc_conf=None,
995
1018
res = self ._post_json (url , data = start_config )
996
1019
self ._raise_for_status (res )
997
1020
1021
+ @check_resource
998
1022
def stats (self , container , decode = None ):
999
1023
if utils .compare_version ('1.17' , self ._version ) < 0 :
1000
1024
raise errors .InvalidVersion (
@@ -1005,6 +1029,7 @@ def stats(self, container, decode=None):
1005
1029
url = self ._url ("/containers/{0}/stats" .format (container ))
1006
1030
return self ._stream_helper (self ._get (url , stream = True ), decode = decode )
1007
1031
1032
+ @check_resource
1008
1033
def stop (self , container , timeout = 10 ):
1009
1034
if isinstance (container , dict ):
1010
1035
container = container .get ('Id' )
@@ -1015,6 +1040,7 @@ def stop(self, container, timeout=10):
1015
1040
timeout = (timeout + self .timeout ))
1016
1041
self ._raise_for_status (res )
1017
1042
1043
+ @check_resource
1018
1044
def tag (self , image , repository , tag = None , force = False ):
1019
1045
params = {
1020
1046
'tag' : tag ,
@@ -1026,21 +1052,26 @@ def tag(self, image, repository, tag=None, force=False):
1026
1052
self ._raise_for_status (res )
1027
1053
return res .status_code == 201
1028
1054
1055
+ @check_resource
1029
1056
def top (self , container ):
1057
+ if isinstance (container , dict ):
1058
+ container = container .get ('Id' )
1030
1059
u = self ._url ("/containers/{0}/top" .format (container ))
1031
1060
return self ._result (self ._get (u ), True )
1032
1061
1033
1062
def version (self , api_version = True ):
1034
1063
url = self ._url ("/version" , versioned_api = api_version )
1035
1064
return self ._result (self ._get (url ), json = True )
1036
1065
1066
+ @check_resource
1037
1067
def unpause (self , container ):
1038
1068
if isinstance (container , dict ):
1039
1069
container = container .get ('Id' )
1040
1070
url = self ._url ('/containers/{0}/unpause' .format (container ))
1041
1071
res = self ._post (url )
1042
1072
self ._raise_for_status (res )
1043
1073
1074
+ @check_resource
1044
1075
def wait (self , container , timeout = None ):
1045
1076
if isinstance (container , dict ):
1046
1077
container = container .get ('Id' )
0 commit comments