Improve idempotency of podman_container
Make image comparing more readable
If 'command' is not set, don't compare it with current,
assume it's empty.
Change-Id: I935c617b242fb955ed08ed492bbd09e7f3f4fd4c
(cherry picked from commit fe6d3d4721
)
This commit is contained in:
parent
ec4351c566
commit
b750574710
|
@ -1397,13 +1397,16 @@ class PodmanContainerDiff:
|
||||||
return self._diff_update_and_compare('cidfile', before, after)
|
return self._diff_update_and_compare('cidfile', before, after)
|
||||||
|
|
||||||
def diffparam_command(self):
|
def diffparam_command(self):
|
||||||
before = self.info['config']['cmd']
|
# TODO(sshnaidm): to inspect image to get the default command
|
||||||
after = self.params['command']
|
if self.module.params['command'] is not None:
|
||||||
if isinstance(after, str):
|
before = self.info['config']['cmd']
|
||||||
after = [i.lower() for i in after.split()]
|
after = self.params['command']
|
||||||
elif isinstance(after, list):
|
if isinstance(after, str):
|
||||||
after = [i.lower() for i in after]
|
after = [i.lower() for i in after.split()]
|
||||||
return self._diff_update_and_compare('command', before, after)
|
elif isinstance(after, list):
|
||||||
|
after = [i.lower() for i in after]
|
||||||
|
return self._diff_update_and_compare('command', before, after)
|
||||||
|
return False
|
||||||
|
|
||||||
def diffparam_conmon_pidfile(self):
|
def diffparam_conmon_pidfile(self):
|
||||||
before = self.info['conmonpidfile']
|
before = self.info['conmonpidfile']
|
||||||
|
@ -1515,14 +1518,17 @@ class PodmanContainerDiff:
|
||||||
return self._diff_update_and_compare('hostname', before, after)
|
return self._diff_update_and_compare('hostname', before, after)
|
||||||
|
|
||||||
def diffparam_image(self):
|
def diffparam_image(self):
|
||||||
before = self.info['config']['image'].replace(
|
# TODO(sshnaidm): for strict image compare use SHAs
|
||||||
"docker.io/library/", "").replace(
|
before = self.info['config']['image']
|
||||||
"docker.io/", "").replace(
|
after = self.params['image']
|
||||||
":latest", "")
|
strip_from_name = [
|
||||||
after = self.params['image'].replace(
|
"docker.io/library/",
|
||||||
"docker.io/library/", "").replace(
|
"docker.io/",
|
||||||
"docker.io/", "").replace(
|
":latest",
|
||||||
":latest", "")
|
]
|
||||||
|
for repl in strip_from_name:
|
||||||
|
before = before.replace(repl, "")
|
||||||
|
after = after.replace(repl, "")
|
||||||
return self._diff_update_and_compare('image', before, after)
|
return self._diff_update_and_compare('image', before, after)
|
||||||
|
|
||||||
def diffparam_ipc(self):
|
def diffparam_ipc(self):
|
||||||
|
|
|
@ -327,14 +327,14 @@
|
||||||
- name: Check basic idempotency of running container
|
- name: Check basic idempotency of running container
|
||||||
podman_container:
|
podman_container:
|
||||||
name: testidem
|
name: testidem
|
||||||
image: alpine
|
image: docker.io/alpine
|
||||||
state: present
|
state: present
|
||||||
command: sleep 20m
|
command: sleep 20m
|
||||||
|
|
||||||
- name: Check basic idempotency of running container - run it again
|
- name: Check basic idempotency of running container - run it again
|
||||||
podman_container:
|
podman_container:
|
||||||
name: testidem
|
name: testidem
|
||||||
image: alpine
|
image: alpine:latest
|
||||||
state: present
|
state: present
|
||||||
command: sleep 20m
|
command: sleep 20m
|
||||||
register: idem
|
register: idem
|
||||||
|
|
Loading…
Reference in New Issue