src.eddie.geoserver.database_layers

Functions to handle serving database layers and views via geoserver.

Attributes

log

_xml_header

MAIN_DB_STORE_NAME

Functions

get_workspace_vector_layers(→ list[str])

Retrieve all vector layer names from a geoserver workspace.

create_datastore_layer(→ None)

Create a GeoServer layer for a given data store if it does not currently exist.

create_db_store_if_not_exists(→ None)

Create PostGIS database store in a GeoServer workspace for a given database.

create_main_db_store(→ str)

Create PostGIS database store in a GeoServer workspace for the main PostGIS database.

Module Contents

src.eddie.geoserver.database_layers.log
src.eddie.geoserver.database_layers._xml_header
src.eddie.geoserver.database_layers.MAIN_DB_STORE_NAME
src.eddie.geoserver.database_layers.get_workspace_vector_layers(workspace_name: str, data_store_name: str = MAIN_DB_STORE_NAME) list[str]

Retrieve all vector layer names from a geoserver workspace.

Parameters:
  • workspace_name (str) – The name of the geoserver workspace being queried.

  • data_store_name (str = src.geoserver.database_layers.MAIN_DB_STORE_NAME) – The name of the geoserver data store to query.

Returns:

The names of each layer, not including the workspace name.

Return type:

list[str]

Raises:

HTTPError – If geoserver responds with anything but OK, raises it as an exception since it is unexpected.

src.eddie.geoserver.database_layers.create_datastore_layer(workspace_name: str, data_store_name: str, layer_name: str, metadata_elem: str = '') None

Create a GeoServer layer for a given data store if it does not currently exist. Can be used to create layers for a database table, or to create a database view for a custom dynamic query.

Parameters:
  • workspace_name (str) – The name of the workspace the data store is associated to

  • data_store_name (str) – The name of the data store the layer is being created from.

  • layer_name (str) – The name of the new layer. This is the same as the name of the database table if creating a layer from a table.

  • metadata_elem (str = "") – An optional XML str that contains the metadata element used to configure custom SQL queries.

Raises:

HTTPError – If geoserver responds with an error, raises it as an exception since it is unexpected.

src.eddie.geoserver.database_layers.create_db_store_if_not_exists(db_name: str, workspace_name: str, new_data_store_name: str) None

Create PostGIS database store in a GeoServer workspace for a given database. If it already exists, do not do anything.

Parameters:
  • db_name (str) – The name of the connected database, to connect datastore to

  • workspace_name (str) – The name of the workspace to create views for

  • new_data_store_name (str) – The name of the new datastore to create

Raises:

HTTPError – If geoserver responds with an error, raises it as an exception since it is unexpected.

src.eddie.geoserver.database_layers.create_main_db_store(workspace_name: str) str

Create PostGIS database store in a GeoServer workspace for the main PostGIS database. If it already exists, do not do anything.

Parameters:

workspace_name (str) – The name of the workspace to create views for

Returns:

The name of the new datastore created.

Return type:

str

Raises:

HTTPError – If geoserver responds with an error, raises it as an exception since it is unexpected.