[%
  # Return an array of hashes with name and ip within a given type
  # for all nodes.
  #
  # @param argv.role	The role of the node to process
  #			One of: proxy, lb, mgmt
  # @param argv.type	The interface type of a node to extract
  #			the ip from
  #			One of: web_int, web_ext, sip_int, sip_ext, ...
  # @return out		The array of hashes with fields "name" and "ip", e.g.:
  #                     [
  #                       {name=>'sp1', ip='192.168.255.251'},
  #                       {name=>'sp2', ip='192.168.255.252'}
  #                     ]
-%]
[% out = [] -%]
[% FOREACH host IN hosts.keys.sort -%]
[% IF hosts.$host.role.grep('^' _ argv.role _ '$').size() -%]
[% FOREACH iface IN hosts.$host.interfaces -%]
[% FOREACH realiface IN hosts.$host.keys -%]
[% IF realiface == iface -%]
[% IF hosts.$host.$realiface.type.grep('^' _ argv.type _ '$').size() -%]
[% IF !out.grep('^' _ hosts.$host.$realiface.ip _ '$').size() -%]
[% out.push({ name = host, ip = hosts.$host.$realiface.ip }) -%]
[% END -%]
[% END -%]
[% END -%]
[% END -%]
[% END -%]
[% END -%]
[% END -%]
