mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 03:11:24 -07:00
Refactor parsing of CLI args so that we can modify them in the base class
Implement tag and skip_tag handling in the CLI() class. Change tag and skip_tag command line options to be accepted multiple times on the CLI and add them together rather than overwrite. * Make it configurable whether to merge or overwrite multiple --tags arguments * Make the base CLI class an abstractbaseclass so we can implement functionality in parse() but still make subclasses implement it. * Deprecate the overwrite feature of --tags with a message that the default will change in 2.4 and go away in 2.5. * Add documentation for merge_multiple_cli_flags * Fix galaxy search so its tags argument does not conflict with generic tags * Unit tests and more integration tests for tags
This commit is contained in:
parent
9962245b92
commit
1efe782b46
15 changed files with 162 additions and 77 deletions
|
@ -30,6 +30,7 @@ import time
|
|||
|
||||
from ansible.errors import AnsibleOptionsError
|
||||
from ansible.cli import CLI
|
||||
from ansible.module_utils._text import to_native
|
||||
from ansible.plugins import module_loader
|
||||
from ansible.utils.cmd_functions import run_cmd
|
||||
|
||||
|
@ -100,7 +101,7 @@ class PullCLI(CLI):
|
|||
# for pull we don't wan't a default
|
||||
self.parser.set_defaults(inventory=None)
|
||||
|
||||
self.options, self.args = self.parser.parse_args(self.args[1:])
|
||||
super(PullCLI, self).parse()
|
||||
|
||||
if not self.options.dest:
|
||||
hostname = socket.getfqdn()
|
||||
|
@ -219,9 +220,9 @@ class PullCLI(CLI):
|
|||
if self.options.ask_sudo_pass or self.options.ask_su_pass or self.options.become_ask_pass:
|
||||
cmd += ' --ask-become-pass'
|
||||
if self.options.skip_tags:
|
||||
cmd += ' --skip-tags "%s"' % self.options.skip_tags
|
||||
cmd += ' --skip-tags "%s"' % to_native(u','.join(self.options.skip_tags))
|
||||
if self.options.tags:
|
||||
cmd += ' -t "%s"' % self.options.tags
|
||||
cmd += ' -t "%s"' % to_native(u','.join(self.options.tags))
|
||||
if self.options.subset:
|
||||
cmd += ' -l "%s"' % self.options.subset
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue