def raise_playbook_errors(pbs, instance_ip, hostname, allow_failures=False): """ """ if not type(pbs) == list: pbs = [pbs] error_message = "" for pb in pbs: if pb.stats.dark: if hostname in pb.stats.dark: error_message += playbook_error_message( pb.stats.dark[hostname], "Unreachable") elif instance_ip in pb.stats.dark: error_message += playbook_error_message( pb.stats.dark[instance_ip], "Unreachable") if not allow_failures and pb.stats.failures: if hostname in pb.stats.failures: error_message += playbook_error_message( pb.stats.failures[hostname], "failed") elif instance_ip in pb.stats.failures: error_message += playbook_error_message( pb.stats.failures[instance_ip], "failed") if error_message: msg = error_message[:-2] + str( pb.stats.processed_playbooks.get(hostname, {})) raise AnsibleDeployException(msg)
def _one_runner_all_playbook_execution(playbook_dir, host_file, extra_vars, my_limit, logger=None, limit_playbooks=None, **runner_opts): runner = Runner.factory( host_file, playbook_dir, extra_vars=extra_vars, limit_hosts=my_limit, logger=logger, limit_playbooks=limit_playbooks, private_key_file=settings.ATMOSPHERE_PRIVATE_KEYFILE, # Use atmosphere settings group_vars_map={ filename: os.path.join(settings.ANSIBLE_GROUP_VARS_DIR, filename) for filename in os.listdir(settings.ANSIBLE_GROUP_VARS_DIR) }, **runner_opts) if runner.playbooks == []: msg = "Playbook directory has no playbooks: %s" \ % (playbook_dir, ) if limit_playbooks: msg = "'limit_playbooks=%s' generated zero playbooks." \ " Available playbooks in directory are: %s" \ % (limit_playbooks, runner._get_files(playbook_dir)) raise AnsibleDeployException(msg) runner.run() return runner
def raise_playbook_errors(pbs, hostname): error_message = "" for pb in pbs: if pb.stats.dark: error_message += playbook_error_message(pb.stats.dark[hostname], "Unreachable", pb) if pb.stats.failures: error_message += playbook_error_message( pb.stats.failures[hostname], "Failures", pb) if error_message: raise AnsibleDeployException(error_message[:-1])
def raise_playbook_errors(playbook_results, instance_id, instance_ip, hostname, allow_failures=False): """ Return value 4 means unreachable/dark Return value 2 means failure """ if not type(playbook_results) == list: playbook_results = [playbook_results] error_message = "" for rc in playbook_results: if rc == 4: error_message += "Unreachable" elif not allow_failures and rc == 2: error_message += "Failed" if error_message: msg = "Instance: %s IP:%s %s - %s" % (instance_id, instance_ip, 'Hostname: ' + hostname if hostname else "", error_message) raise AnsibleDeployException(msg)