Example #1
0
    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()
Example #2
0
 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