Exemplo n.º 1
0
    def test_geoservice_refresh(self):
        # test refresh
        load_dotenv(dotenv_path='test/.env')
        geo = GeoService.instance(provider='geoserver',
                                  url="https://test/geoserver",
                                  username="******",
                                  password="******",
                                  pg_user='******',
                                  pg_host='https://test',
                                  pg_password='******',
                                  refresh=True)

        geo = GeoService.instance(provider='geoserver',
                                  url="https://test/geoserver",
                                  username="******",
                                  password="******",
                                  pg_user='******',
                                  pg_host='https://test',
                                  pg_password='******')

        self.assertIsInstance(geo, GeoService)
        self.assertEqual('drwho', geo._provider._username)

        geo = GeoService.instance(provider='geoserver',
                                  url="https://test/geoserver",
                                  username="******",
                                  password="******",
                                  pg_user='******',
                                  pg_host='https://test',
                                  pg_password='******',
                                  refresh=True)

        self.assertIsInstance(geo, GeoService)
        self.assertEqual('drwho2', geo._provider._username)
Exemplo n.º 2
0
def create_app():
    load_dotenv()
    validate_env()

    K8sCfg.load_config_once()
    Cfg.load_config()

    GeoService.instance(provider="geoserver")

    cache_provider = os.environ.get('XCUBE_HUB_CACHE_PROVIDER', 'inmemory')
    # specification_dir = maybe_raise_for_env("XCUBE_HUB_CFG_DIR", './resources/')
    KeyValueDatabase.instance(provider=cache_provider)

    return connexion.App(__name__, specification_dir='./resources/')
Exemplo n.º 3
0
    def test_geoservice(self):
        GeoService.instance(url='https://test0/geoserver', username='******', password='******', pg_user='******',
                            pg_password='******', pg_host='host', provider='geoserver', refresh=True)
        geo = GeoService.instance(provider='geoserver', pg_user='******', pg_host='https://test', pg_password='******')

        self.assertIsInstance(geo, GeoService)
        self.assertEqual('https://test0/geoserver', geo._provider._url)
        self.assertEqual('drwho', geo._provider._username)
        self.assertEqual('pass', geo._provider._password)

        geo = GeoService.instance(provider='geoserver',
                                  url="https://test2",
                                  username="******",
                                  password="******",
                                  pg_user='******',
                                  pg_host='https://test',
                                  pg_password='******',
                                  refresh=True)

        self.assertIsInstance(geo, GeoService)
        self.assertEqual('https://test2', geo._provider._url)
        self.assertEqual('drwho', geo._provider._username)
        self.assertEqual('timelord', geo._provider._password)
Exemplo n.º 4
0
def get_collections(database_id: str, token_info: Dict) -> Tuple[AnyDict, int]:
    try:
        token = token_info['token']
        geodb_user = _get_claim_from_token(
            token=token, tgt="https://geodb.brockmann-consult.de/dbrole")

        _raise_for_no_access(database_id=database_id,
                             geodb_user=geodb_user,
                             token=token)
        geo = GeoService.instance()
        collections = geo.get_layers(database_id=database_id, fmt='geopandas')

        return api.ApiResponse.success(collections)
    except api.ApiError as e:
        return e.response
Exemplo n.º 5
0
def delete_collection(database_id: str, collection_id: str,
                      token_info: Dict) -> Tuple[AnyDict, int]:
    try:
        token = token_info['token']
        geodb_user = _get_claim_from_token(
            token=token, tgt="https://geodb.brockmann-consult.de/dbrole")

        _raise_for_no_access(database_id=database_id,
                             geodb_user=geodb_user,
                             token=token)

        geo = GeoService.instance()
        collection = geo.unpublish(collection_id=collection_id,
                                   database_id=database_id)

        return api.ApiResponse.success(collection)
    except api.ApiError as e:
        return e.response
Exemplo n.º 6
0
def put_collection(database_id: str, body,
                   token_info: Dict) -> Tuple[AnyDict, int]:
    try:
        token = token_info['token']
        geodb_user = _get_claim_from_token(
            token=token, tgt="https://geodb.brockmann-consult.de/dbrole")

        _raise_for_no_access(database_id=database_id,
                             geodb_user=geodb_user,
                             token=token)

        geo = GeoService.instance()
        if 'collection_id' not in body:
            raise api.ApiError(400, "put_collection needs a collection_id")

        res = geo.publish(collection_id=body['collection_id'],
                          database_id=database_id)

        return api.ApiResponse.success(res.to_dict())
    except api.ApiError as e:
        return e.response
Exemplo n.º 7
0
    def setUp(self):
        load_dotenv(dotenv_path='test/.env')
        self._geo = GeoService.instance(provider='mock')

        self._claims, self._token = create_test_token(permissions=["manage:collections", ], dbrole='geodb_admin')
        self._headers = {'Authorization': f'Bearer {self._token}'}
Exemplo n.º 8
0
 def test_geoservice_geoserver(self):
     load_dotenv(dotenv_path='test/.env')
     geo = GeoService.instance(provider='geoserver')
     self.assertIsInstance(geo._provider, _GeoServer)
     del_env(dotenv_path='test/.env')
Exemplo n.º 9
0
 def setUp(self) -> None:
     load_dotenv(dotenv_path='test/.env')
     self._geoservice = GeoService.instance(provider='geoserver')
     self._geoservice._provider._geo = Mock()
Exemplo n.º 10
0
 def test_geoservice_provider_unknown(self):
     with self.assertRaises(api.ApiError) as e:
         # noinspection PyTypeChecker
         GeoService(provider=None)
     self.assertEqual("Provider None unknown.", str(e.exception))