diff --git a/scripts/hosts_with_var_set b/scripts/hosts_with_var_set new file mode 100755 index 0000000000..bb4301c8a0 --- /dev/null +++ b/scripts/hosts_with_var_set @@ -0,0 +1,44 @@ +#!/usr/bin/python +# doteast; base from skvidal +# dump out the hosts with var=value + +import ansible.inventory +import sys +from optparse import OptionParser + + +parser = OptionParser(version="1.0") +parser.add_option('-i', dest='inventory', default=None, + help="Path to inventory file/dir") +parser.add_option('-o', dest='variable', default=None, + help="variable name to check") + +opts, args = parser.parse_args(sys.argv[1:]) + +if opts.inventory: + inv = ansible.inventory.Inventory(host_list=opts.inventory) +else: + inv = ansible.inventory.Inventory() + +if opts.variable.find("=") == -1: + print "Error -o requires var=value format argument" + sys.exit(-1) + +var_name, value = opts.variable.split('=') + +if value == "": + value="None" + +var_set = [] + +for host in sorted(inv.get_hosts()): + vars = inv.get_variables(host.name) + if vars.has_key(var_name): + if str(vars.get(var_name)).find(value) != -1: + var_set.append(host.name) + +print 'hosts with %s:' % var_name +for host in sorted(var_set): + print host + +