diff --git a/validations_libs/ansible.py b/validations_libs/ansible.py index cb4b14c6..a111d453 100644 --- a/validations_libs/ansible.py +++ b/validations_libs/ansible.py @@ -45,6 +45,7 @@ except pkg_resources.DistributionNotFound: class Ansible(object): + """An Object for encapsulating an Ansible execution""" def __init__(self, uuid=None): self.log = logging.getLogger(__name__ + ".Ansible") @@ -283,7 +284,85 @@ class Ansible(object): callback_whitelist=None, ansible_cfg=None, ansible_timeout=30, ansible_artifact_path=None, log_path=None, run_async=False, python_interpreter=None): + """Execute one or multiple Ansible playbooks + :param playbook: The Absolute path of the Ansible playbook + :type playbook: ``string`` + :param inventory: Either proper inventory file or a + comma-separated list + :type inventory: ``string`` + :param workdir: The absolute path of the Ansible-runner + artifacts directory + :type workdir: ``string`` + :param playbook_dir: The absolute path of the Validations playbooks + directory + :type playbook_dir: ``string`` + :param connection: Connection type (local, smart, etc). + (efaults to 'smart') + :type connection: String + :param output_callback: Callback for output format. Defaults to + 'yaml'. + :type output_callback: ``string`` + :param base_dir: The absolute path of the default validations base + directory + :type base_dir: ``string`` + :param ssh_user: User for the ssh connection (Defaults to 'root') + :type ssh_user: ``string`` + :param key: Private key to use for the ssh connection. + :type key: ``string`` + :param module_path: Location of the ansible module and library. + :type module_path: ``string`` + :param limit_hosts: Limit the execution to the hosts. + :type limit_hosts: ``string`` + :param tags: Run specific tags. + :type tags: ``string`` + :param skip_tags: Skip specific tags. + :type skip_tags: ``string`` + :param verbosity: Verbosity level for Ansible execution. + :type verbosity: ``integer`` + :param quiet: Disable all output (Defaults to False) + :type quiet: ``boolean`` + :param extra_vars: Set additional variables as a Dict or the absolute + path of a JSON or YAML file type. + :type extra_vars: Either a Dict or the absolute path of JSON or YAML + :param gathering_policy: This setting controls the default policy of + fact gathering ('smart', 'implicit', 'explicit'). + (Defaults to 'smart') + :type gathering_facts: ``string`` + :param extra_env_vars: Set additional ansible variables using an + extravar dictionary. + :type extra_env_vars: ``dict`` + :param parallel_run: Isolate playbook execution when playbooks are + to be executed with multi-processing. + :type parallel_run: ``boolean`` + :param callback_whitelist: Comma separated list of callback plugins. + Custom output_callback is also whitelisted. + (Defaults to ``None``) + :type callback_whitelist: ``string`` + :param ansible_cfg: Path to an ansible configuration file. One will be + generated in the artifact path if this option is None. + :type ansible_cfg: ``string`` + :param ansible_timeout: Timeout for ansible connections. + (Defaults to ``30 minutes``) + :type ansible_timeout: ``integer`` + :param ansible_artifact_path: The Ansible artifact path + :type ansible_artifact_path: ``string`` + :param log_path: The absolute path of the validations logs directory + :type log_path: ``string`` + :param run_async: Enable the Ansible asynchronous mode + (Defaults to 'False') + :type run_async: ``boolean`` + :param python_interpreter: Path to the Python interpreter to be + used for module execution on remote targets, + or an automatic discovery mode (``auto``, + ``auto_silent`` or the default one + ``auto_legacy``) + :type python_interpreter: ``string`` + + :return: A ``tuple`` containing the the absolute path of the executed + playbook, the return code and the status of the run + :rtype: ``tuple`` + """ if not playbook_dir: playbook_dir = workdir