@ -1265,7 +1265,6 @@ class PodmanDefaults:
self . defaults = {
" blkio_weight " : 0 ,
" cgroups " : " default " ,
" cgroup_parent " : " " ,
" cidfile " : " " ,
" cpus " : 0.0 ,
" cpu_shares " : 0 ,
@ -1280,7 +1279,6 @@ class PodmanDefaults:
" env_host " : False ,
" etc_hosts " : { } ,
" group_add " : [ ] ,
" healthcheck " : " " ,
" ipc " : " " ,
" kernelmemory " : " 0 " ,
" log_driver " : " k8s-file " ,
@ -1296,16 +1294,16 @@ class PodmanDefaults:
" privileged " : False ,
" rm " : False ,
" security_opt " : [ ] ,
" stop_signal " : 15 ,
" tty " : False ,
" user " : " " ,
" uts " : " " ,
" volume " : [ ] ,
" workdir " : " / " ,
}
def default_dict ( self ) :
# make here any changes to self.defaults related to podman version
# https://github.com/containers/libpod/pull/5669
if ( LooseVersion ( self . version ) > = LooseVersion ( ' 1.8.0 ' )
and LooseVersion ( self . version ) < LooseVersion ( ' 1.9.0 ' ) ) :
self . defaults [ ' cpu_shares ' ] = 1024
return self . defaults
@ -1390,6 +1388,8 @@ class PodmanContainerDiff:
def diffparam_cgroup_parent ( self ) :
before = self . info [ ' hostconfig ' ] [ ' cgroupparent ' ]
after = self . params [ ' cgroup_parent ' ]
if after is None :
after = before
return self . _diff_update_and_compare ( ' cgroup_parent ' , before , after )
def diffparam_cgroups ( self ) :
@ -1554,6 +1554,8 @@ class PodmanContainerDiff:
def diffparam_ipc ( self ) :
before = self . info [ ' hostconfig ' ] [ ' ipcmode ' ]
after = self . params [ ' ipc ' ]
if self . params [ ' pod ' ] and not after :
after = before
return self . _diff_update_and_compare ( ' ipc ' , before , after )
def diffparam_label ( self ) :
@ -1603,6 +1605,8 @@ class PodmanContainerDiff:
def diffparam_network ( self ) :
before = [ self . info [ ' hostconfig ' ] [ ' networkmode ' ] ]
after = self . params [ ' network ' ]
if self . params [ ' pod ' ] and not self . module . params [ ' network ' ] :
after = before
return self . _diff_update_and_compare ( ' network ' , before , after )
def diffparam_no_hosts ( self ) :
@ -1641,6 +1645,8 @@ class PodmanContainerDiff:
def diffparam_stop_signal ( self ) :
before = self . info [ ' config ' ] [ ' stopsignal ' ]
after = self . params [ ' stop_signal ' ]
if after is None :
after = before
return self . _diff_update_and_compare ( ' stop_signal ' , before , after )
def diffparam_tty ( self ) :
@ -1650,15 +1656,16 @@ class PodmanContainerDiff:
def diffparam_user ( self ) :
before = self . info [ ' config ' ] [ ' user ' ]
if self . module . params [ ' user ' ] is None and before :
after = self . params [ ' user ' ]
if after is None :
after = before
else :
after = self . params [ ' user ' ]
return self . _diff_update_and_compare ( ' user ' , before , after )
def diffparam_uts ( self ) :
before = self . info [ ' hostconfig ' ] [ ' utsmode ' ]
after = self . params [ ' uts ' ]
if self . params [ ' pod ' ] and not after :
after = before
return self . _diff_update_and_compare ( ' uts ' , before , after )
def diffparam_volume ( self ) :
@ -1672,18 +1679,24 @@ class PodmanContainerDiff:
volumes . append ( [ m [ ' source ' ] , m [ ' destination ' ] ] )
before = [ " : " . join ( v ) for v in volumes ]
# Ignore volumes option for idempotency
after = [ " : " . join ( v . split ( " : " ) [ : 2 ] ) for v in self . params [ ' volume ' ] ]
if self . params [ ' volume ' ] is not None :
after = [ " : " . join ( v . split ( " : " ) [ : 2 ] ) for v in self . params [ ' volume ' ] ]
else :
after = before
before , after = sorted ( list ( set ( before ) ) ) , sorted ( list ( set ( after ) ) )
return self . _diff_update_and_compare ( ' volume ' , before , after )
def diffparam_volumes_from ( self ) :
before = self . info [ ' hostconfig ' ] [ ' volumesfrom ' ] or [ ]
# Possibly volumesfrom is not in config
before = self . info [ ' hostconfig ' ] . get ( ' volumesfrom ' , [ ] ) or [ ]
after = self . params [ ' volumes_from ' ] or [ ]
return self . _diff_update_and_compare ( ' volumes_from ' , before , after )
def diffparam_workdir ( self ) :
before = self . info [ ' config ' ] [ ' workingdir ' ]
after = self . params [ ' workdir ' ]
if after is None :
after = before
return self . _diff_update_and_compare ( ' workdir ' , before , after )
def is_different ( self ) :
@ -1786,11 +1799,13 @@ class PodmanContainer:
def get_info ( self ) :
""" Inspect container and gather info about it. """
# pylint: disable=unused-variable
rc , out , err = self . module . run_command (
[ self . module . params [ ' executable ' ] , b ' container ' , b ' inspect ' , self . name ] )
return json . loads ( out ) [ 0 ] if rc == 0 else { }
def _get_podman_version ( self ) :
# pylint: disable=unused-variable
rc , out , err = self . module . run_command (
[ self . module . params [ ' executable ' ] , b ' --version ' ] )
if rc != 0 or not out or " version " not in out :