@@ -332,11 +332,14 @@ def get_ps_name(name_list):
332332 raise NameError ("Error when trying to identify 'ps' name in {}" .format (name_list ))
333333
334334
335- def get_containers (names , require_present ):
335+ def get_containers (names , require_present , exclude_containers = [] ):
336336 containers_list , _ = get_url (daemon + '/containers/json?all=1' )
337337
338338 all_container_names = set (get_ps_name (x ['Names' ]) for x in containers_list )
339339
340+ if exclude_containers :
341+ all_container_names = all_container_names .difference (exclude_containers )
342+
340343 if 'all' in names :
341344 return all_container_names
342345
@@ -785,7 +788,16 @@ def process_args(args):
785788 default = ['all' ],
786789 help = 'One or more RegEx that match the names of the container(s) to check. If omitted all containers are checked. (default: %(default)s)' )
787790
788- # Container name
791+ # Exclude container name
792+ parser .add_argument ('--exclude-containers' ,
793+ dest = 'excludecontainers' ,
794+ action = 'store' ,
795+ nargs = '+' ,
796+ type = str ,
797+ default = [],
798+ help = 'One or more containers to exclude.' )
799+
800+ # Presence
789801 parser .add_argument ('--present' ,
790802 dest = 'present' ,
791803 default = False ,
@@ -983,7 +995,7 @@ def perform_checks(raw_args):
983995 return
984996
985997 # Here is where all the work happens
986- containers = get_containers (args .containers , args .present )
998+ containers = get_containers (args .containers , args .present , args . excludecontainers )
987999
9881000 if len (containers ) == 0 and not args .present :
9891001 unknown ("No containers names found matching criteria" )
0 commit comments