From 7de661dd2cfc9b7584d6d5a0976c205df4425c81 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 28 Feb 2012 00:45:37 -0500 Subject: [PATCH] Add ansible command, fix import error in runner --- bin/ans-playbook | 52 +++++++++++++++++++++++++++++++++++++++++++ lib/ansible/runner.py | 1 + library/command | 5 +++++ 3 files changed, 58 insertions(+) create mode 100755 bin/ans-playbook diff --git a/bin/ans-playbook b/bin/ans-playbook new file mode 100755 index 00000000000..db75f97bbad --- /dev/null +++ b/bin/ans-playbook @@ -0,0 +1,52 @@ +#!/usr/bin/python -tt +# (C) 2012, Michael DeHaan, + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . +# + +import sys +import ansible.playbook +from ansible.scripts import base_ans_parser, error_print + +def main(args): + parser = base_ans_parser(output_path=False) + parser.usage = "ans-playbook playbook.yml" + options, args = parser.parse_args(args) + + if len(args) == 0: + print >> sys.stderr, "playbook path is a required argument" + return 1 + + for playbook in args: + pb = ansible.playbook.PlayBook( + playbook=playbook, + module_path=options.module_path, + remote_user=options.remote_user, + forks=options.forks, + verbose=True + ) + pb.run() + + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1:])) + + + + + diff --git a/lib/ansible/runner.py b/lib/ansible/runner.py index 594b6f3d3da..11af92e00df 100755 --- a/lib/ansible/runner.py +++ b/lib/ansible/runner.py @@ -24,6 +24,7 @@ import json import traceback import paramiko # non-core dependency import ansible.constants as C +import Queue def _executor_hook(job_queue, result_queue): ''' callback used by multiprocessing pool ''' diff --git a/library/command b/library/command index d1b43c1a117..fbef7944d99 100755 --- a/library/command +++ b/library/command @@ -51,6 +51,11 @@ except: endd = datetime.datetime.now() delta = endd - startd +if out is None: + out = '' +if err is None: + err = '' + result = { "stdout" : out, "stderr" : err,