* #65993 - update restart policy (restart policy & restart retries) without restarting the container * - proper indentation on the continuation-line - set restart_policy to the correct value independent from the api version * - move restart_policy definitions into the if block - add a new variable for the restart_policy configuration value * add changelog fragment * typo; minus -> underscore * rename changelog fragment to contain the correct module name * rename restart_policy_config_value to just restart_policy and refer to the correct dict values
This commit is contained in:
parent
ec34235e2e
commit
02c126f5ee
2 changed files with 22 additions and 5 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- docker_container.py - update a containers restart_policy without restarting the container (https://github.com/ansible/ansible/issues/65993)
|
|
@ -1426,12 +1426,17 @@ class TaskParameters(DockerBaseClass):
|
||||||
mem_reservation='memory_reservation',
|
mem_reservation='memory_reservation',
|
||||||
memswap_limit='memory_swap',
|
memswap_limit='memory_swap',
|
||||||
kernel_memory='kernel_memory',
|
kernel_memory='kernel_memory',
|
||||||
|
restart_policy='restart_policy',
|
||||||
)
|
)
|
||||||
|
|
||||||
result = dict()
|
result = dict()
|
||||||
for key, value in update_parameters.items():
|
for key, value in update_parameters.items():
|
||||||
if getattr(self, value, None) is not None:
|
if getattr(self, value, None) is not None:
|
||||||
if self.client.option_minimal_versions[value]['supported']:
|
if key == 'restart_policy' and self.client.option_minimal_versions[value]['supported']:
|
||||||
|
restart_policy = dict(Name=self.restart_policy,
|
||||||
|
MaximumRetryCount=self.restart_retries)
|
||||||
|
result[key] = restart_policy
|
||||||
|
elif self.client.option_minimal_versions[value]['supported']:
|
||||||
result[key] = getattr(self, value)
|
result[key] = getattr(self, value)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -2089,7 +2094,6 @@ class Container(DockerBaseClass):
|
||||||
|
|
||||||
host_config = self.container['HostConfig']
|
host_config = self.container['HostConfig']
|
||||||
log_config = host_config.get('LogConfig', dict())
|
log_config = host_config.get('LogConfig', dict())
|
||||||
restart_policy = host_config.get('RestartPolicy', dict())
|
|
||||||
config = self.container['Config']
|
config = self.container['Config']
|
||||||
network = self.container['NetworkSettings']
|
network = self.container['NetworkSettings']
|
||||||
|
|
||||||
|
@ -2136,7 +2140,6 @@ class Container(DockerBaseClass):
|
||||||
privileged=host_config.get('Privileged'),
|
privileged=host_config.get('Privileged'),
|
||||||
expected_ports=host_config.get('PortBindings'),
|
expected_ports=host_config.get('PortBindings'),
|
||||||
read_only=host_config.get('ReadonlyRootfs'),
|
read_only=host_config.get('ReadonlyRootfs'),
|
||||||
restart_policy=restart_policy.get('Name'),
|
|
||||||
runtime=host_config.get('Runtime'),
|
runtime=host_config.get('Runtime'),
|
||||||
shm_size=host_config.get('ShmSize'),
|
shm_size=host_config.get('ShmSize'),
|
||||||
security_opts=host_config.get("SecurityOpt"),
|
security_opts=host_config.get("SecurityOpt"),
|
||||||
|
@ -2167,8 +2170,6 @@ class Container(DockerBaseClass):
|
||||||
cpus=host_config.get('NanoCpus'),
|
cpus=host_config.get('NanoCpus'),
|
||||||
)
|
)
|
||||||
# Options which don't make sense without their accompanying option
|
# Options which don't make sense without their accompanying option
|
||||||
if self.parameters.restart_policy:
|
|
||||||
config_mapping['restart_retries'] = restart_policy.get('MaximumRetryCount')
|
|
||||||
if self.parameters.log_driver:
|
if self.parameters.log_driver:
|
||||||
config_mapping['log_driver'] = log_config.get('Type')
|
config_mapping['log_driver'] = log_config.get('Type')
|
||||||
config_mapping['log_options'] = log_config.get('Config')
|
config_mapping['log_options'] = log_config.get('Config')
|
||||||
|
@ -2190,6 +2191,12 @@ class Container(DockerBaseClass):
|
||||||
# we need to handle all limits which are usually handled by
|
# we need to handle all limits which are usually handled by
|
||||||
# update_container() as configuration changes which require a container
|
# update_container() as configuration changes which require a container
|
||||||
# restart.
|
# restart.
|
||||||
|
restart_policy = host_config.get('RestartPolicy', dict())
|
||||||
|
|
||||||
|
# Options which don't make sense without their accompanying option
|
||||||
|
if self.parameters.restart_policy:
|
||||||
|
config_mapping['restart_retries'] = restart_policy.get('MaximumRetryCount')
|
||||||
|
|
||||||
config_mapping.update(dict(
|
config_mapping.update(dict(
|
||||||
blkio_weight=host_config.get('BlkioWeight'),
|
blkio_weight=host_config.get('BlkioWeight'),
|
||||||
cpu_period=host_config.get('CpuPeriod'),
|
cpu_period=host_config.get('CpuPeriod'),
|
||||||
|
@ -2201,6 +2208,7 @@ class Container(DockerBaseClass):
|
||||||
memory=host_config.get('Memory'),
|
memory=host_config.get('Memory'),
|
||||||
memory_reservation=host_config.get('MemoryReservation'),
|
memory_reservation=host_config.get('MemoryReservation'),
|
||||||
memory_swap=host_config.get('MemorySwap'),
|
memory_swap=host_config.get('MemorySwap'),
|
||||||
|
restart_policy=restart_policy.get('Name')
|
||||||
))
|
))
|
||||||
|
|
||||||
differences = DifferenceTracker()
|
differences = DifferenceTracker()
|
||||||
|
@ -2254,6 +2262,8 @@ class Container(DockerBaseClass):
|
||||||
|
|
||||||
host_config = self.container['HostConfig']
|
host_config = self.container['HostConfig']
|
||||||
|
|
||||||
|
restart_policy = host_config.get('RestartPolicy') or dict()
|
||||||
|
|
||||||
config_mapping = dict(
|
config_mapping = dict(
|
||||||
blkio_weight=host_config.get('BlkioWeight'),
|
blkio_weight=host_config.get('BlkioWeight'),
|
||||||
cpu_period=host_config.get('CpuPeriod'),
|
cpu_period=host_config.get('CpuPeriod'),
|
||||||
|
@ -2265,8 +2275,13 @@ class Container(DockerBaseClass):
|
||||||
memory=host_config.get('Memory'),
|
memory=host_config.get('Memory'),
|
||||||
memory_reservation=host_config.get('MemoryReservation'),
|
memory_reservation=host_config.get('MemoryReservation'),
|
||||||
memory_swap=host_config.get('MemorySwap'),
|
memory_swap=host_config.get('MemorySwap'),
|
||||||
|
restart_policy=restart_policy.get('Name')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Options which don't make sense without their accompanying option
|
||||||
|
if self.parameters.restart_policy:
|
||||||
|
config_mapping['restart_retries'] = restart_policy.get('MaximumRetryCount')
|
||||||
|
|
||||||
differences = DifferenceTracker()
|
differences = DifferenceTracker()
|
||||||
for key, value in config_mapping.items():
|
for key, value in config_mapping.items():
|
||||||
if getattr(self.parameters, key, None):
|
if getattr(self.parameters, key, None):
|
||||||
|
|
Loading…
Reference in a new issue