summaryrefslogtreecommitdiff
path: root/lib/ansible
diff options
context:
space:
mode:
authorBrian Coca <brian.coca+git@gmail.com>2016-05-31 09:30:50 -0400
committerBrian Coca <brian.coca+git@gmail.com>2016-05-31 09:30:50 -0400
commite63bf1d86e9e54662781cb21ab0e65508cf51759 (patch)
tree7cd4ae9319246fd9d363e9b0f81e44a7a56c45f5 /lib/ansible
parenteaa7b9c0b70fe022bb2ba4b6d82b02445efa20ba (diff)
downloadansible-e63bf1d86e9e54662781cb21ab0e65508cf51759.tar.gz
fix version/help when missing action
also fixed issues with galaxy cli options
Diffstat (limited to 'lib/ansible')
-rw-r--r--lib/ansible/cli/__init__.py5
-rw-r--r--lib/ansible/cli/galaxy.py69
2 files changed, 29 insertions, 45 deletions
diff --git a/lib/ansible/cli/__init__.py b/lib/ansible/cli/__init__.py
index ff8bf75490..b12fc0dbc6 100644
--- a/lib/ansible/cli/__init__.py
+++ b/lib/ansible/cli/__init__.py
@@ -90,7 +90,10 @@ class CLI(object):
break
if not self.action:
- raise AnsibleOptionsError("Missing required action")
+ # if no need for action if version/help
+ tmp_options, tmp_args = self.parser.parse_args()
+ if not(hasattr(tmp_options, 'help') and tmp_options.help) or (hasattr(tmp_options, 'version') and tmp_options.version):
+ raise AnsibleOptionsError("Missing required action")
def execute(self):
"""
diff --git a/lib/ansible/cli/galaxy.py b/lib/ansible/cli/galaxy.py
index 10c8dc5b46..1e33e057af 100644
--- a/lib/ansible/cli/galaxy.py
+++ b/lib/ansible/cli/galaxy.py
@@ -65,79 +65,60 @@ class GalaxyCLI(CLI):
epilog = "\nSee '%s <command> --help' for more information on a specific command.\n\n" % os.path.basename(sys.argv[0])
)
+
self.set_action()
- # options specific to actions
+ # common
+ self.parser.add_option('-s', '--server', dest='api_server', default=C.GALAXY_SERVER, help='The API server destination')
+ self.parser.add_option('-c', '--ignore-certs', action='store_true', dest='ignore_certs', default=C.GALAXY_IGNORE_CERTS, help='Ignore SSL certificate validation errors.')
+
+ # specific to actions
if self.action == "delete":
self.parser.set_usage("usage: %prog delete [options] github_user github_repo")
elif self.action == "import":
self.parser.set_usage("usage: %prog import [options] github_user github_repo")
- self.parser.add_option('--no-wait', dest='wait', action='store_false', default=True,
- help='Don\'t wait for import results.')
- self.parser.add_option('--branch', dest='reference',
- help='The name of a branch to import. Defaults to the repository\'s default branch (usually master)')
- self.parser.add_option('--status', dest='check_status', action='store_true', default=False,
- help='Check the status of the most recent import request for given github_user/github_repo.')
+ self.parser.add_option('--no-wait', dest='wait', action='store_false', default=True, help='Don\'t wait for import results.')
+ self.parser.add_option('--branch', dest='reference', help='The name of a branch to import. Defaults to the repository\'s default branch (usually master)')
+ self.parser.add_option('--status', dest='check_status', action='store_true', default=False, help='Check the status of the most recent import request for given github_user/github_repo.')
elif self.action == "info":
self.parser.set_usage("usage: %prog info [options] role_name[,version]")
elif self.action == "init":
self.parser.set_usage("usage: %prog init [options] role_name")
- self.parser.add_option('-p', '--init-path', dest='init_path', default="./",
- help='The path in which the skeleton role will be created. The default is the current working directory.')
- self.parser.add_option(
- '--offline', dest='offline', default=False, action='store_true',
- help="Don't query the galaxy API when creating roles")
+ self.parser.add_option('-p', '--init-path', dest='init_path', default="./", help='The path in which the skeleton role will be created. The default is the current working directory.')
elif self.action == "install":
self.parser.set_usage("usage: %prog install [options] [-r FILE | role_name(s)[,version] | scm+role_repo_url[,version] | tar_file(s)]")
- self.parser.add_option('-i', '--ignore-errors', dest='ignore_errors', action='store_true', default=False,
- help='Ignore errors and continue with the next specified role.')
- self.parser.add_option('-n', '--no-deps', dest='no_deps', action='store_true', default=False,
- help='Don\'t download roles listed as dependencies')
- self.parser.add_option('-r', '--role-file', dest='role_file',
- help='A file containing a list of roles to be imported')
+ self.parser.add_option('-i', '--ignore-errors', dest='ignore_errors', action='store_true', default=False, help='Ignore errors and continue with the next specified role.')
+ self.parser.add_option('-n', '--no-deps', dest='no_deps', action='store_true', default=False, help='Don\'t download roles listed as dependencies')
+ self.parser.add_option('-r', '--role-file', dest='role_file', help='A file containing a list of roles to be imported')
elif self.action == "remove":
self.parser.set_usage("usage: %prog remove role1 role2 ...")
elif self.action == "list":
self.parser.set_usage("usage: %prog list [role_name]")
elif self.action == "login":
self.parser.set_usage("usage: %prog login [options]")
- self.parser.add_option('--github-token', dest='token', default=None,
- help='Identify with github token rather than username and password.')
+ self.parser.add_option('--github-token', dest='token', default=None, help='Identify with github token rather than username and password.')
elif self.action == "search":
- self.parser.add_option('--platforms', dest='platforms',
- help='list of OS platforms to filter by')
- self.parser.add_option('--galaxy-tags', dest='tags',
- help='list of galaxy tags to filter by')
- self.parser.add_option('--author', dest='author',
- help='GitHub username')
self.parser.set_usage("usage: %prog search [searchterm1 searchterm2] [--galaxy-tags galaxy_tag1,galaxy_tag2] [--platforms platform1,platform2] [--author username]")
+ self.parser.add_option('--platforms', dest='platforms', help='list of OS platforms to filter by')
+ self.parser.add_option('--galaxy-tags', dest='tags', help='list of galaxy tags to filter by')
+ self.parser.add_option('--author', dest='author', help='GitHub username')
elif self.action == "setup":
self.parser.set_usage("usage: %prog setup [options] source github_user github_repo secret")
- self.parser.add_option('--remove', dest='remove_id', default=None,
- help='Remove the integration matching the provided ID value. Use --list to see ID values.')
- self.parser.add_option('--list', dest="setup_list", action='store_true', default=False,
- help='List all of your integrations.')
+ self.parser.add_option('--remove', dest='remove_id', default=None, help='Remove the integration matching the provided ID value. Use --list to see ID values.')
+ self.parser.add_option('--list', dest="setup_list", action='store_true', default=False, help='List all of your integrations.')
# options that apply to more than one action
+ if self.action in ['init', 'info']:
+ self.parser.add_option( '--offline', dest='offline', default=False, action='store_true', help="Don't query the galaxy API when creating roles")
+
if not self.action in ("delete","import","init","login","setup"):
# NOTE: while the option type=str, the default is a list, and the
# callback will set the value to a list.
- self.parser.add_option('-p', '--roles-path', dest='roles_path',
- action="callback", callback=CLI.expand_paths,
- type=str, default=C.DEFAULT_ROLES_PATH,
- help='The path to the directory containing your roles. '
- 'The default is the roles_path configured in your '
- 'ansible.cfg file (/etc/ansible/roles if not configured)')
-
- self.parser.add_option('-s', '--server', dest='api_server', default=C.GALAXY_SERVER,
- help='The API server destination')
-
- self.parser.add_option('-c', '--ignore-certs', action='store_true', dest='ignore_certs', default=C.GALAXY_IGNORE_CERTS,
- help='Ignore SSL certificate validation errors.')
+ self.parser.add_option('-p', '--roles-path', dest='roles_path', action="callback", callback=CLI.expand_paths, type=str, default=C.DEFAULT_ROLES_PATH,
+ help='The path to the directory containing your roles. The default is the roles_path configured in your ansible.cfg file (/etc/ansible/roles if not configured)')
if self.action in ("init","install"):
- self.parser.add_option('-f', '--force', dest='force', action='store_true', default=False,
- help='Force overwriting an existing role')
+ self.parser.add_option('-f', '--force', dest='force', action='store_true', default=False, help='Force overwriting an existing role')
self.options, self.args =self.parser.parse_args()
display.verbosity = self.options.verbosity