Add check_files_existing option. (#839)

This commit is contained in:
Felix Fontein
2024-04-21 16:01:07 +02:00
committed by GitHub
parent 6368854a8c
commit 8bcc3519d4
3 changed files with 20 additions and 1 deletions
+11
View File
@@ -55,6 +55,17 @@ options:
- Equivalent to C(docker compose --profile).
type: list
elements: str
check_files_existing:
description:
- If set to V(false), the module will not check whether one of the files
C(compose.yaml), C(compose.yml), C(docker-compose.yaml), or C(docker-compose.yml)
exists in O(project_src) if O(files) is not provided.
- This can be useful if environment files with C(COMPOSE_FILE) are used to configure a different
filename. The module currently does not check for C(COMPOSE_FILE) in environment files or the
current environment.
type: bool
default: true
version_added: 3.9.0
requirements:
- "PyYAML if O(definition) is used"
notes:
+3 -1
View File
@@ -507,6 +507,7 @@ def common_compose_argspec():
definition=dict(type='dict'),
env_files=dict(type='list', elements='path'),
profiles=dict(type='list', elements='str'),
check_files_existing=dict(type='bool', default=True),
)
@@ -584,12 +585,13 @@ class BaseComposeManager(DockerBaseClass):
if not os.path.isdir(self.project_src):
self.fail('"{0}" is not a directory'.format(self.project_src))
self.check_files_existing = parameters['check_files_existing']
if self.files:
for file in self.files:
path = os.path.join(self.project_src, file)
if not os.path.exists(path):
self.fail('Cannot find Compose file "{0}" relative to project directory "{1}"'.format(file, self.project_src))
elif all(not os.path.exists(os.path.join(self.project_src, f)) for f in DOCKER_COMPOSE_FILES):
elif self.check_files_existing and all(not os.path.exists(os.path.join(self.project_src, f)) for f in DOCKER_COMPOSE_FILES):
filenames = ', '.join(DOCKER_COMPOSE_FILES[:-1])
self.fail('"{0}" does not contain {1}, or {2}'.format(self.project_src, filenames, DOCKER_COMPOSE_FILES[-1]))