Read-only mirror of https://github.com/sogis/config-generator — Kanton Solothurn. Issues & pull requests at the source.
  • Python 83.8%
  • QML 15.4%
  • Dockerfile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2021-02-24 17:54:37 +01:00
custom moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
qgs updated to newest version 2021-01-18 09:20:25 +01:00
schemas moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
service_lib moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
config.json update to new version 2021-02-24 10:06:54 +01:00
config_generator.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
configGeneratorConfig.json changed path to elevation_dataset 2021-02-24 17:54:37 +01:00
data_service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
dataproduct_service_config.py update to new version 2021-02-24 10:06:54 +01:00
Dockerfile moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
document_service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
feature_info_service_config.py update to latest commit of qwc-services/sogis-config-generator 2020-10-22 15:01:07 +02:00
legend_service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
map_viewer_config.py updated to newest version 2021-01-18 09:20:25 +01:00
ogc_service_config.py update to newest config-generator version 2020-11-04 09:24:25 +01:00
permissions_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
permissions_query.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
print_service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
qgs_writer.py updated to newest version 2021-01-18 09:20:25 +01:00
README.md moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
requirements.txt updated to newest version (added wms/wmts support) 2020-12-01 11:55:27 +01:00
search_service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
server.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
server.wsgi moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
service_config.py moved config-generator from https://github.com/pfeimich/dockerimages/tree/master/config-generator-slave Repo in his own repo 2020-10-08 11:04:32 +02:00
wmts_utils.py updated to newest version 2021-01-18 09:20:25 +01:00

SO!MAP Config Generator

Generate JSON files for service configs and permissions from a SO!MAP ConfigDB, and write QGIS project files.

Can be run from command line or as a service.

Setup

Create a config file configGeneratorConfig.json for the ConfigGenerator (see below).

Configuration

Example configGeneratorConfig.json:

{
  "$schema": "https://git.sourcepole.ch/ktso/somap/-/raw/master/config-generator/schemas/sogis-config-generator.json",
  "service": "config-generator",
  "config": {
    "config_db_url": "postgresql:///?service=soconfig_services",
    "config_path": "../docker/volumes/config/",
    "default_qgis_server_url": "http://localhost:8001/ows/"
  },
  "services": [
    {
      "name": "ogc",
      "config": {
        "default_ogc_server_url": "http://localhost:8001/ows/"
      },
      "resources": {
        "wms_services": [
          {
            "name": "somap",
            "online_resources": {
              "service": "https://geo.so.ch/ows/somap",
              "feature_info": "https://geo.so.ch/api/v1/featureinfo/somap",
              "legend": "https://geo.so.ch/api/v1/featureinfo/somap"
            }
          }
        ],
        "wfs_services": [
          {
            "name": "somap",
            "online_resource": "https://geo.so.ch/api/wfs"
          }
        ]
      }
    },
    {
      "name": "featureInfo",
      "config": {
        "default_qgis_server_url": "http://localhost:8001/ows/",
        "default_info_template": "<table>...</table>"
      }
    }
  ],
  "qgs_writer": {
    "project_output_dir": "../docker/volumes/qgs-resources/",
    "default_extent": [2590983, 1212806, 2646267, 1262755],
    "#default_raster_extent": [2590000, 1210000, 2650000, 1270000],
    "selection_color": [255, 255, 0, 255]
  }
}

For a full example see docker/configGeneratorConfig.json.

Usage

Script

Show command options:

python config_generator.py --help

Generate both service configs and permissions:

python config_generator.py ./configGeneratorConfig.json all

Generate service config files:

python config_generator.py ./configGeneratorConfig.json service_configs

Generate permissions file:

python config_generator.py ./configGeneratorConfig.json permissions

Write QGIS project files:

python config_generator.py ./configGeneratorConfig.json qgs

Docker container

NOTE: Requires write permissions for config-generator docker user (www-data) in config_path and project_output_dir for writing service configs and permissions, and generating QGIS projects.

cd ../docker
docker-compose run config-generator /configGeneratorConfig.json all

Service

Set the CONFIG_GENERATOR_CONFIG environment variable to the config file path (default: /configGeneratorConfig.json).

Base URL:

http://localhost:5032/

Generate both service configs and permissions:

curl -X POST "http://localhost:5032/generate_configs"

Write QGIS project files:

curl -X POST "http://localhost:5032/update_qgs"

Development

Create a virtual environment:

virtualenv --python=/usr/bin/python3 .venv

Activate virtual environment:

source .venv/bin/activate

Install requirements:

pip install -r requirements.txt

Run Test-DB and QGIS Server:

cd ../docker && docker-compose up -d qgis-server

Generate service configs and permissions for Docker:

python config_generator.py ../docker/configGeneratorConfig.json all

Write QGIS project files for Docker:

python config_generator.py ../docker/configGeneratorConfig.json qgs

Start local service:

CONFIG_GENERATOR_CONFIG=../docker/configGeneratorConfig.json python server.py

Integration in AGI environment

Adapt Dockerfile for use of config-generator in Openshift.

Build config-generator Image => Change Tag if needed

docker build -t config-generator:latest .

Tag Image to push in sogis Repo => change Tag if needed

docker tag config-generator:latest sogis/config-generator:latest 

docker push sogis/config-generator:latest

First Install in Openshift project (gdi-test)

Create a secret for the pg_service file

oc create secret generic config-generator-pg-service --from-file=pg_service.conf -n gdi-test

docker tag config-generator:latest docker-registry-default.dev.so.ch/gdi-test/config-generator

oc project gdi-test

docker push docker-registry-default.dev.so.ch/gdi-test/config-generator

oc new-app config-generator

Update ImageStream in Openshift (For Test Environment)

oc project gdi-test

oc tag --source=docker sogis/config-generator:latest config-generator:latest