Fix issue with docker when running faults tests

Many faults tests fail when docker is the container runtime application
due to the following issue:
AttributeError: 'Container' object has no attribute '_client'

Change-Id: I971eab9f0f921cfb3e0403973040c9ff7b58fb0c
This commit is contained in:
Eduardo Olivares 2021-07-28 11:01:35 +02:00
parent 6941f1c36c
commit d81f43b965
1 changed files with 29 additions and 28 deletions

View File

@ -383,39 +383,40 @@ def comparable_container_keys(container, include_container_objects=False):
'container_state, container object if specified' 'container_state, container object if specified'
""" """
# Differenciate between podman_ver3 with podman-py from earlier api # Differenciate between podman_ver3 with podman-py from earlier api
if podman.Podman_Version_3(): if is_podman():
if podman.Podman_Version_3():
con_host_name_stat_obj_tuple = (tripleo_topology.ip_to_hostname(
container.client.base_url.rsplit('_')[1]), container.attrs[
'Names'][0], container.attrs['State'], container)
con_host_name_stat_obj_tuple = (tripleo_topology.ip_to_hostname( con_host_name_stat_tuple = (tripleo_topology.ip_to_hostname(
container.client.base_url.rsplit('_')[1]), container.attrs[ container.client.base_url.rsplit('_')[1]), container.attrs[
'Names'][0], container.attrs['State'], container) 'Names'][0], container.attrs['State'])
else:
con_host_name_stat_tuple = (tripleo_topology.ip_to_hostname( con_host_name_stat_obj_tuple = (tripleo_topology.ip_to_hostname(
container.client.base_url.rsplit('_')[1]), container.attrs[ container._client._context.hostname), # pylint: disable=W0212
'Names'][0], container.attrs['State']) container.data['names'], container.data['status'], container)
else:
con_host_name_stat_obj_tuple = (tripleo_topology.ip_to_hostname( con_host_name_stat_tuple = (tripleo_topology.ip_to_hostname(
container._client._context.hostname), # pylint: disable=W0212 container._client._context.hostname), # pylint: disable=W0212
container.data['names'], container.data['status'], container) container.data['names'], container.data['status'])
con_host_name_stat_tuple = (tripleo_topology.ip_to_hostname( if include_container_objects:
container._client._context.hostname), # pylint: disable=W0212 return con_host_name_stat_obj_tuple
container.data['names'], container.data['status']) else:
return con_host_name_stat_tuple
if is_podman() and include_container_objects: elif is_docker():
return con_host_name_stat_obj_tuple if include_container_objects:
elif is_podman(): return (container.attrs['Config']['Hostname'],
return con_host_name_stat_tuple container.attrs['Name'].strip('/'),
container.attrs['State']['Status'],
elif is_docker() and include_container_objects: container)
return (container.attrs['Config']['Hostname'], else:
container.attrs['Name'].strip('/'), return (container.attrs['Config']['Hostname'],
container.attrs['State']['Status'], container.attrs['Name'].strip('/'),
container) container.attrs['State']['Status'])
elif is_docker() == docker:
return (container.attrs['Config']['Hostname'],
container.attrs['Name'].strip('/'),
container.attrs['State']['Status'])
@functools.lru_cache() @functools.lru_cache()