#!/usr/bin/python3 from os import listdir, makedirs from os.path import isfile, isdir, join, dirname from shutil import copy2, copytree, rmtree from ansible.plugins.action import ActionBase from risotto.utils import RISOTTO_CONFIG class ActionModule(ActionBase): def run(self, tmp=None, task_vars=None): super(ActionModule, self).run(tmp, task_vars) module_args = self._task.args.copy() modules = module_args['modules'] copy_tests = module_args.get('copy_tests', False) dataset_directories = RISOTTO_CONFIG['directories']['datasets'] install_dir = join('/tmp/risotto/images') if isdir(install_dir): rmtree(install_dir) if copy_tests: install_tests_dir = join('/tmp/risotto/tests') if isdir(install_tests_dir): rmtree(install_tests_dir) for module_name, depends in modules.items(): for dataset_directory in dataset_directories: for depend in depends: if copy_tests: tests_dir = join(dataset_directory, depend, 'tests') if isdir(tests_dir): for filename in listdir(tests_dir): src_file = join(tests_dir, filename) dst_file = join(install_tests_dir, module_name, filename) copy(src_file, dst_file) # manual = join(dataset_directory, depend, 'manual', 'image') # if not isdir(manual): # continue # for filename in listdir(manual): # src_file = join(manual, filename) # dst_file = join(install_dir, module_name, filename) # copy(src_file, dst_file) return dict(ansible_facts=dict({}))