public static Map<Integer, Set<Pair<String, Integer>>> getExecutionSites(CatalogType catalog_item) {
final CatalogUtil.Cache cache = CatalogUtil.getCatalogCache(catalog_item);
final Map<Integer, Set<Pair<String, Integer>>> sites = cache.EXECUTION_SITES;
if (sites.isEmpty()) {
Cluster catalog_clus = CatalogUtil.getCluster(catalog_item);
for (Site catalog_site : CatalogUtil.getSortedCatalogItems(catalog_clus.getSites(), "id")) {
Host catalog_host = catalog_site.getHost();
assert (catalog_host != null);
Set<Pair<String, Integer>> s = new HashSet<Pair<String, Integer>>();
for (Integer port : CatalogUtil.getExecutionSitePorts(catalog_site)) {
s.add(Pair.of(catalog_host.getIpaddr(), port));