@ -2211,6 +2211,11 @@ class ContainerManager(DockerBaseClass):
status = self . client . wait ( container_id ) [ ' StatusCode ' ]
else :
status = self . client . wait ( container_id )
if self . parameters . auto_remove :
output = " Cannot retrieve result as auto_remove is enabled "
if self . parameters . output_logs :
self . client . module . warn ( ' Cannot output_logs if auto_remove is enabled! ' )
else :
config = self . client . inspect_container ( container_id )
logging_driver = config [ ' HostConfig ' ] [ ' LogConfig ' ] [ ' Type ' ]
@ -2224,7 +2229,7 @@ class ContainerManager(DockerBaseClass):
if status != 0 :
self . fail ( output , status = status )
if self . parameters . cleanup :
self . container_remove ( container_id , force = True )
self . container_remove ( container_id , force = True , ignore_failure = self . parameters . auto_remove )
insp = self . _get_container ( container_id )
if insp . raw :
insp . raw [ ' Output ' ] = output
@ -2233,7 +2238,7 @@ class ContainerManager(DockerBaseClass):
return insp
return self . _get_container ( container_id )
def container_remove ( self , container_id , link = False , force = False ):
def container_remove ( self , container_id , link = False , force = False , ignore_failure = False ):
volume_state = ( not self . parameters . keep_volumes )
self . log ( " remove container container: %s v: %s link: %s force %s " % ( container_id , volume_state , link , force ) )
self . results [ ' actions ' ] . append ( dict ( removed = container_id , volume_state = volume_state , link = link , force = force ) )
@ -2243,6 +2248,7 @@ class ContainerManager(DockerBaseClass):
try :
response = self . client . remove_container ( container_id , v = volume_state , link = link , force = force )
except Exception as exc :
if not ignore_failure :
self . fail ( " Error removing container %s : %s " % ( container_id , str ( exc ) ) )
return response