mirror of https://github.com/sipwise/ngcpcfg.git
66 lines
2.0 KiB
66 lines
2.0 KiB
[%
|
|
# vi: ft=tt2
|
|
|
|
# Returns an array of IPs getting from the connection list passed as argument
|
|
# after getting the one with name argv.name
|
|
# The ips are retrieved from the definition of other instances or hosts
|
|
#
|
|
# @param argv.connection the connection list of the instance
|
|
#
|
|
# @param argv.name the name of the connection list to use
|
|
#
|
|
# @param argv.type get IPs for only specific iface type,
|
|
# not all of the types present in conn config
|
|
#
|
|
# @param argv.ngcpcfgdir
|
|
#
|
|
# @return out the array of IPs.
|
|
# @return out_algorithm the algorithm to use.
|
|
|
|
out = [];
|
|
out_algorithm = '';
|
|
|
|
IF !argv.ngcpcfgdir.length;
|
|
argv.ngcpcfgdir = '/usr/lib/ngcp-ngcpcfg';
|
|
END;
|
|
|
|
FOR conn IN argv.connection;
|
|
NEXT UNLESS conn.name == argv.name;
|
|
out_algorithm = conn.algorithm;
|
|
FOR link IN conn.links;
|
|
# Filtering to get the interface with the correct type
|
|
FOR link_interface IN link.interfaces;
|
|
NEXT UNLESS link_interface.type.grep('^' _ argv.type _ '$').size();
|
|
|
|
# If type equal instance, then look into the instances definition
|
|
IF link.type == "instance";
|
|
FOR conn_instance IN instances;
|
|
NEXT UNLESS conn_instance.name == link.name;
|
|
FOR iface IN conn_instance.interfaces;
|
|
NEXT UNLESS iface.name == link_interface.name;
|
|
NEXT UNLESS iface.type.grep('^' _ link_interface.type _ '$').size();
|
|
NEXT UNLESS iface.ip;
|
|
out.push(iface.ip);
|
|
END;
|
|
END;
|
|
# If type equal host, then look into the node interfaces definition
|
|
ELSE;
|
|
IF hosts.exists(link.name);
|
|
argv.host = link.name;
|
|
argv.type = link_interface.type;
|
|
PROCESS "${argv.ngcpcfgdir}/get_all_shared_ips_for_host";
|
|
IF !out.size;
|
|
PROCESS "${argv.ngcpcfgdir}/get_all_ips_for_host";
|
|
END;
|
|
END;
|
|
END;
|
|
END;
|
|
|
|
# It is assumed to have in the connections only one interface defined with a particular type
|
|
LAST;
|
|
END;
|
|
END;
|
|
|
|
out = out.unique;
|
|
|
|
-%] |