summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <bcoca@users.noreply.github.com>2017-10-25 19:55:48 -0400
committerGitHub <noreply@github.com>2017-10-25 19:55:48 -0400
commitca71a50459aa77133b1b7afc416e7e98840dd089 (patch)
treec1d5e734c5840413741196960306e1f7e0919272
parent11153df0a10daa1e3fac234ef5b3d89deef3d256 (diff)
downloadansible-ca71a50459aa77133b1b7afc416e7e98840dd089.tar.gz
Avoid default inventory proccessing for pull (#32135)
* Avoid default inventory proccessing for pull - now pull's own special inventory processing should work correctly - also removed ineffective set_defaults fixes #31449 * use class property instead * only do localhost for adhoc (cherry picked from commit aad5d1432583c4aa4105b774f38c80498e85de59)
-rw-r--r--lib/ansible/cli/__init__.py9
-rw-r--r--lib/ansible/cli/pull.py10
2 files changed, 8 insertions, 11 deletions
diff --git a/lib/ansible/cli/__init__.py b/lib/ansible/cli/__init__.py
index 7aef18e8b4..6be28d5762 100644
--- a/lib/ansible/cli/__init__.py
+++ b/lib/ansible/cli/__init__.py
@@ -112,6 +112,7 @@ class CLI(with_metaclass(ABCMeta, object)):
# -F (quit-if-one-screen) -R (allow raw ansi control chars)
# -S (chop long lines) -X (disable termcap init and de-init)
LESS_OPTS = 'FRSX'
+ SKIP_INVENTORY_DEFAULTS = False
def __init__(self, args, callback=None):
"""
@@ -424,8 +425,7 @@ class CLI(with_metaclass(ABCMeta, object)):
if inventory_opts:
parser.add_option('-i', '--inventory', '--inventory-file', dest='inventory', action="append",
- help="specify inventory host path (default=[%s]) or comma separated host list. "
- "--inventory-file is deprecated" % C.DEFAULT_HOST_LIST)
+ help="specify inventory host path or comma separated host list. --inventory-file is deprecated")
parser.add_option('--list-hosts', dest='listhosts', action='store_true',
help='outputs a list of matching hosts; does not execute anything else')
parser.add_option('-l', '--limit', default=C.DEFAULT_SUBSET, dest='subset',
@@ -605,8 +605,8 @@ class CLI(with_metaclass(ABCMeta, object)):
skip_tags.add(tag.strip())
self.options.skip_tags = list(skip_tags)
- # process inventory options
- if hasattr(self.options, 'inventory'):
+ # process inventory options except for CLIs that require their own processing
+ if hasattr(self.options, 'inventory') and not self.SKIP_INVENTORY_DEFAULTS:
if self.options.inventory:
@@ -616,7 +616,6 @@ class CLI(with_metaclass(ABCMeta, object)):
# Ensure full paths when needed
self.options.inventory = [unfrackpath(opt, follow=False) if ',' not in opt else opt for opt in self.options.inventory]
-
else:
self.options.inventory = C.DEFAULT_HOST_LIST
diff --git a/lib/ansible/cli/pull.py b/lib/ansible/cli/pull.py
index 08bfa4ab75..d4cd3a180a 100644
--- a/lib/ansible/cli/pull.py
+++ b/lib/ansible/cli/pull.py
@@ -67,6 +67,8 @@ class PullCLI(CLI):
"look for a playbook based on the host's fully-qualified domain name,"
'on the host hostname and finally a playbook named *local.yml*.', }
+ SKIP_INVENTORY_DEFAULTS = True
+
def _get_inv_cli(self):
inv_opts = ''
@@ -77,9 +79,6 @@ class PullCLI(CLI):
elif ',' in inv or os.path.exists(inv):
inv_opts += ' -i %s ' % inv
- if not inv_opts:
- inv_opts = " -i localhost, "
-
return inv_opts
def parse(self):
@@ -125,9 +124,6 @@ class PullCLI(CLI):
self.parser.add_option("--check", default=False, dest='check', action='store_true',
help="don't make any changes; instead, try to predict some of the changes that may occur")
- # for pull we don't want a default
- self.parser.set_defaults(inventory=None)
-
super(PullCLI, self).parse()
if not self.options.dest:
@@ -177,6 +173,8 @@ class PullCLI(CLI):
# Attempt to use the inventory passed in as an argument
# It might not yet have been downloaded so use localhost as default
inv_opts = self._get_inv_cli()
+ if not inv_opts:
+ inv_opts = " -i localhost, "
# FIXME: enable more repo modules hg/svn?
if self.options.module_name == 'git':