Commit e81fc67d authored by Matthias Bernt's avatar Matthias Bernt
Browse files

cached_explicit_singularity: copy container description

otherwise `container_description.identifier = cache_path` (at the end of the function)
will modify the original (i.e. the tools) container description which influences
i.e. (may break) successive container resolutions.
parent 6f6e375b
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
"""This module describes the :class:`ExplicitContainerResolver` ContainerResolver plugin."""
import copy
import logging
import os

@@ -77,11 +78,10 @@ class CachedExplicitSingularityContainerResolver(CliContainerResolver):
        hence the container_description hack here.
        """
        for container_description in tool_info.container_descriptions:  # type: ContainerDescription
            container_description = copy.copy(container_description)
            if container_description.type == 'docker':
                desc_dict = container_description.to_dict()
                desc_dict['type'] = self.container_type
                desc_dict['identifier'] = f"docker://{container_description.identifier}"
                container_description = container_description.from_dict(desc_dict)
                container_description.type = self.container_type
                container_description.identifier = f"docker://{container_description.identifier}"
            if not self._container_type_enabled(container_description, enabled_container_types):
                return None
            if not self.cli_available: