Ejemplo n.º 1
0
 def index(self, datastore_id=None):
     """ GET /datastores/{datastore_id}/datasources: Get all
         datasources within a given datastore."""
     datastore = self._get_datastore_by_id(datastore_id)
     if datastore is None:
         abort(404)
     discovery_result = discover_datasources(datastore.ogrstring)
     for datasource in discovery_result:
         datasource['href'] = h.url_for(controller="datasources",
                                        action="show",
                                        datastore_id=datastore_id,
                                        datasource_id=datasource['id'])
     # prevent JSON Array Cross-site Exploits (XSRF/CSRF)
     return {'datasources': discovery_result}
Ejemplo n.º 2
0
    def show(self, id):
        """GET /datastores/id: Show a specific item."""
        # url('DataStores', id=ID)
        datastore = meta.Session.query(DataStore).get(id)

        # do not raise RuntimeError from discover_datasources
        # if in "test" mode
        try:
            datasources = discover_datasources(datastore.ogrstring)
        except RuntimeError:
            if "test" in request.params:
                datasources = None
            else:
                raise

        result = datastore.to_json()
        result['datasources'] = datasources
        return result