Allow /bin/ansible to use --limit

pull/854/merge
Michael DeHaan 12 years ago
parent 9041adddaa
commit 3587ffdef3

@ -45,7 +45,7 @@ class Cli(object):
def parse(self): def parse(self):
''' create an options parser for bin/ansible ''' ''' create an options parser for bin/ansible '''
parser = utils.base_parser(constants=C, runas_opts=True, async_opts=True, parser = utils.base_parser(constants=C, runas_opts=True, subset_opts=True, async_opts=True,
output_opts=True, connect_opts=True, usage='%prog <host-pattern> [options]') output_opts=True, connect_opts=True, usage='%prog <host-pattern> [options]')
parser.add_option('-a', '--args', dest='module_args', parser.add_option('-a', '--args', dest='module_args',
help="module arguments", default=C.DEFAULT_MODULE_ARGS) help="module arguments", default=C.DEFAULT_MODULE_ARGS)
@ -96,7 +96,7 @@ class Cli(object):
pattern=pattern, pattern=pattern,
callbacks=self.callbacks, sudo=options.sudo, callbacks=self.callbacks, sudo=options.sudo,
sudo_pass=sudopass,sudo_user=options.sudo_user, sudo_pass=sudopass,sudo_user=options.sudo_user,
transport=options.connection transport=options.connection, subset=options.subset
) )
if options.seconds: if options.seconds:

@ -123,7 +123,8 @@ class Runner(object):
sudo_user=C.DEFAULT_SUDO_USER, # ex: 'root' sudo_user=C.DEFAULT_SUDO_USER, # ex: 'root'
module_vars=None, # a playbooks internals thing module_vars=None, # a playbooks internals thing
is_playbook=False, # running from playbook or not? is_playbook=False, # running from playbook or not?
inventory=None # reference to Inventory object inventory=None, # reference to Inventory object
subset=None # subset pattern
): ):
# storage & defaults # storage & defaults
@ -133,6 +134,7 @@ class Runner(object):
self.generated_jid = str(random.randint(0, 999999999999)) self.generated_jid = str(random.randint(0, 999999999999))
self.transport = transport self.transport = transport
self.inventory = utils.default(inventory, lambda: ansible.inventory.Inventory(host_list)) self.inventory = utils.default(inventory, lambda: ansible.inventory.Inventory(host_list))
self.module_vars = utils.default(module_vars, lambda: {}) self.module_vars = utils.default(module_vars, lambda: {})
self.sudo_user = sudo_user self.sudo_user = sudo_user
self.connector = connection.Connection(self) self.connector = connection.Connection(self)
@ -153,6 +155,10 @@ class Runner(object):
self.is_playbook = is_playbook self.is_playbook = is_playbook
# misc housekeeping # misc housekeeping
if subset and self.inventory._subset is None:
# don't override subset when passed from playbook
self.inventory.subset(subset)
if self.transport == 'ssh' and remote_pass: if self.transport == 'ssh' and remote_pass:
raise errors.AnsibleError("SSH transport does not support passwords, only keys or agents") raise errors.AnsibleError("SSH transport does not support passwords, only keys or agents")
if self.transport == 'local': if self.transport == 'local':

Loading…
Cancel
Save