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)
This commit is contained in:
Brian Coca 2017-10-25 19:55:48 -04:00 committed by GitHub
parent 11153df0a1
commit ca71a50459
2 changed files with 8 additions and 11 deletions

View file

@ -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

View file

@ -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':