add the ability to take variables in the add_host module, and be willing to parse a host:port hostname handed to add_host

This commit is contained in:
Rob Parrott 2013-02-16 20:27:38 -05:00
commit ef17fc9f20
2 changed files with 19 additions and 3 deletions

View file

@ -48,9 +48,22 @@ class ActionModule(object):
result = {'changed': True}
new_host = Host(args['hostname'])
# Parse out any hostname:port patterns
new_hostname = args['hostname']
if ":" in new_hostname:
new_hostname, new_port = new_hostname.split(":")
args['ansible_ssh_port'] = new_port
# create host and get inventory
new_host = Host(new_hostname)
inventory = self.runner.inventory
# Add any variables to the new_host
for k in args.keys():
if k != 'hostname' and k != 'groupname':
new_host.set_variable(k, args[k])
# add the new host to the 'all' group
allgroup = inventory.get_group('all')
allgroup.add_host(new_host)