def get_pops(pop_url, query): """ Get a dict containg PoPs and PoPs links :param pop_url: url of the PoP DB :param query: query parameters :return dict: key: pop UUID, values Resource entity """ results = {} for uuid in epa_glue.get_pop_ids(pop_url, query): entity = EPARegistry.get_occi_resource('pop', uuid) results[uuid] = entity links = {} for uuid in results: for target_link in epa_glue.get_pop_links_target_uuid(pop_url, uuid): target_uuid = target_link[0] target_type = target_link[1] link_uuid = target_link[2] source_entity = results[uuid] kind = source_entity.kind.term + '_link' target_entity = EPARegistry.get_occi_resource(target_type, target_uuid) links[link_uuid] = EPARegistry.get_occi_link(kind, link_uuid, source_entity, target_entity) results.update(links) return results.values()
def get_ids(kind, pop_url, pop_id): """ Return list of IDs for a given kind :param kind: Kind of the resources ids required :param pop_url: url of the PoP DB :param pop_id: PoP ID :return list: list of IDs """ results = list() if kind == 'switch': for existing_uuid in odl_glue.get_switches_ids(pop_url, pop_id): results.append(existing_uuid) elif kind == 'switch-interface': for existing_uuid in odl_glue.get_switch_interfaces(pop_url, pop_id): results.append(existing_uuid) elif kind == 'pop': for existing_uuid in epa_glue.get_pop_ids(pop_url): results.append(existing_uuid) else: for existing_uuid in epa_glue.get_resource_openstack_ids(pop_url, pop_id, kind, []): results.append(existing_uuid) return results