From 01e5da6d0be9b818f0ae5582b139d886ead09544 Mon Sep 17 00:00:00 2001 From: Michael DeHaan Date: Tue, 28 Feb 2012 01:33:22 -0500 Subject: [PATCH] Make /bin/ansible use the common options from lib/ansible/scripts DRY! --- bin/ansible | 51 +++++++++++------------------------------- lib/ansible/scripts.py | 2 ++ 2 files changed, 15 insertions(+), 38 deletions(-) diff --git a/bin/ansible b/bin/ansible index 16d94896874..64592539728 100755 --- a/bin/ansible +++ b/bin/ansible @@ -25,6 +25,7 @@ import shlex import ansible.runner import ansible.playbook import ansible.constants as C +from ansible.scripts import base_ans_parser class Cli(object): @@ -32,26 +33,11 @@ class Cli(object): pass def runner(self): - parser = OptionParser() - parser.add_option("-P", "--askpass", default=False, action="store_true", - help="ask the user to input the ssh password for connecting") - parser.add_option("-H", "--host-list", dest="host_list", - help="path to hosts list", default=C.DEFAULT_HOST_LIST) - parser.add_option("-L", "--library", dest="module_path", - help="path to module library", default=C.DEFAULT_MODULE_PATH) - parser.add_option("-f", "--forks", dest="forks", type="int", - help="level of parallelism", default=C.DEFAULT_FORKS) + parser = base_ans_parser() parser.add_option("-n", "--name", dest="module_name", help="module name to execute", default=C.DEFAULT_MODULE_NAME) parser.add_option("-a", "--args", dest="module_args", help="module arguments", default=C.DEFAULT_MODULE_ARGS) - parser.add_option("-p", "--pattern", dest="pattern", - help="hostname pattern", default=C.DEFAULT_PATTERN) - parser.add_option("-u", "--remote-user", dest="remote_user", - help="remote username", default=C.DEFAULT_REMOTE_USER) - parser.add_option("-r", "--run-playbook", dest="playbook", - help="playbook file, instead of -n and -a", default=None) - options, args = parser.parse_args() # TODO: more shell like splitting on module_args would @@ -61,28 +47,17 @@ class Cli(object): if options.askpass: sshpass = getpass.getpass(prompt="SSH password: ") - if options.playbook is None: - return ansible.runner.Runner( - module_name=options.module_name, - module_path=options.module_path, - module_args=shlex.split(options.module_args), - remote_user=options.remote_user, - remote_pass=sshpass, - host_list=options.host_list, - forks=options.forks, - pattern=options.pattern, - verbose=True, - ) - else: - return ansible.playbook.PlayBook( - playbook=options.playbook, - module_path=options.module_path, - remote_user=options.remote_user, - remote_pass=sshpass, - host_list=options.host_list, - forks=options.forks, - verbose=True - ) + return ansible.runner.Runner( + module_name=options.module_name, + module_path=options.module_path, + module_args=shlex.split(options.module_args), + remote_user=options.remote_user, + remote_pass=sshpass, + host_list=options.host_list, + forks=options.forks, + pattern=options.pattern, + verbose=True, + ) if __name__ == '__main__': diff --git a/lib/ansible/scripts.py b/lib/ansible/scripts.py index beadda13e35..28d8cec4f2e 100644 --- a/lib/ansible/scripts.py +++ b/lib/ansible/scripts.py @@ -26,6 +26,8 @@ def base_ans_parser(): help="path to module library", default=C.DEFAULT_MODULE_PATH) parser.add_option('-u', '--user', default=C.DEFAULT_REMOTE_USER, dest='remote_user', help='set the default username') + parser.add_option("-p", "--pattern", dest="pattern", + help="hostname pattern", default=C.DEFAULT_PATTERN) parser.add_option("-P", "--askpass", default=False, action="store_true", help="ask the user to input the ssh password for connecting") parser.add_option('-f','--forks', dest='forks', default=C.DEFAULT_FORKS, type='int',