|
|
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
-
- from __future__ import print_function
- from ansible.module_utils.basic import *
-
- DOCUMENTATION = '''
- ---
- module: container_file_exists
- author: Edoardo Putti
- short_description: Return whether a file is present in the container
- description:
- - Check if the given path exists on the given container
- options:
- name:
- required: true
- description:
- - Name of the container
- path:
- required: true
- description:
- - path of the file to check
- '''
-
- def check_file_in_container(args):
- (path, module) = args
- import os
-
- module.exit_json(
- exists = os.path.exists(path),
- path = path,
- )
-
- def main():
- module = AnsibleModule(
- argument_spec = dict(
- name = dict(
- required = True,
- type = 'str',
- ),
- path = dict(
- required = True,
- type = 'str',
- ),
- ),
- )
-
- try:
- import lxc
-
- except ImportError:
- module.fail_json(
- changed = False,
- failed = True,
- msg = 'Error importing lxc, is python-lxc installed?',
- )
-
- container_name = module.params.get('name')
- file_path = module.params.get('path')
-
- if container_name in lxc.list_containers():
-
- container = lxc.Container(container_name)
-
- file_exists = container.attach_wait(
- check_file_in_container,
- (file_path, module),
- env_policy = lxc.LXC_ATTACH_CLEAR_ENV,
- )
-
- else:
- module.fail_json(
- changed = False,
- msg = 'Target container does not exists',
- )
-
- if __name__ == '__main__':
- main()
|