diff --git a/DeterministicModel/docker/Dockerfile.Deterministic-Model-Test b/DeterministicModel/docker/Dockerfile.Deterministic-Model-Test deleted file mode 100644 index 2b78009..0000000 --- a/DeterministicModel/docker/Dockerfile.Deterministic-Model-Test +++ /dev/null @@ -1,8 +0,0 @@ -FROM coreoasis/model_worker:1.28.5 - -ARG BASE_DIR=/home/worker/model/ -COPY src/keys_server/DeterministicKeysLookup.py $BASE_DIR/src/keys_server/DeterministicKeysLookup.py -COPY docker/oasislmf_deploy.json $BASE_DIR/oasislmf.json -COPY meta_data/model_settings.json $BASE_DIR/meta-data/model_settings.json - -ENTRYPOINT /home/worker/startup.sh diff --git a/DeterministicModel/docker/docker-compose-ui.yml b/DeterministicModel/docker/docker-compose-ui.yml new file mode 100644 index 0000000..11d1ec8 --- /dev/null +++ b/DeterministicModel/docker/docker-compose-ui.yml @@ -0,0 +1,14 @@ +version: '3' +services: + user-interface: + restart: always + image: coreoasis/oasisui_app:${VERS_UI:-latest} + container_name: oasisui_app + environment: + - API_IP=server + - API_PORT=8000 + - API_VERSION=v2 + - API_SHARE_FILEPATH=./downloads + - OASIS_ENVIRONMENT=oasis_localhost + ports: + - 8080:3838 diff --git a/DeterministicModel/docker/docker-compose.yml b/DeterministicModel/docker/docker-compose.yml new file mode 100644 index 0000000..dd8ea47 --- /dev/null +++ b/DeterministicModel/docker/docker-compose.yml @@ -0,0 +1,201 @@ +version: '3' +volumes: + server-db-OasisData: + celery-db-OasisData: + filestore-OasisData: +x-shared-env: &shared-env + OASIS_DEBUG: 1 + OASIS_URL_SUB_PATH: 0 + OASIS_CELERY_BROKER_URL: "amqp://rabbit:rabbit@broker:5672" + OASIS_SERVER_DB_HOST: server-db + OASIS_SERVER_DB_PASS: oasis + OASIS_SERVER_DB_USER: oasis + OASIS_SERVER_DB_NAME: oasis + OASIS_SERVER_DB_PORT: 5432 + OASIS_SERVER_CHANNEL_LAYER_HOST: channel-layer + OASIS_SERVER_DB_ENGINE: django.db.backends.postgresql_psycopg2 + OASIS_CELERY_DB_ENGINE: db+postgresql+psycopg2 + OASIS_CELERY_DB_HOST: celery-db + OASIS_CELERY_DB_PASS: password + OASIS_CELERY_DB_USER: celery + OASIS_CELERY_DB_NAME: celery + OASIS_CELERY_DB_PORT: 5432 + OASIS_INPUT_GENERATION_CONTROLLER_QUEUE: task-controller + OASIS_LOSSES_GENERATION_CONTROLLER_QUEUE: task-controller + +x-oasis-env-v1: &oasis-env-v1 + OASIS_DEBUG: ${DEBUG:-0} + OASIS_RABBIT_HOST: broker + OASIS_RABBIT_PORT: 5672 + OASIS_RABBIT_USER: rabbit + OASIS_RABBIT_PASS: rabbit + OASIS_CELERY_DB_ENGINE: db+postgresql+psycopg2 + OASIS_CELERY_DB_HOST: celery-db + OASIS_CELERY_DB_PASS: password + OASIS_CELERY_DB_USER: celery + OASIS_CELERY_DB_NAME: celery + OASIS_CELERY_DB_PORT: 5432 + +x-volumes: &shared-volumes + - filestore-OasisData:/shared-fs:rw +services: + server: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: ["./wsgi/run-wsgi.sh"] + ports: + - 8000:8000 + - 51970:51970 + links: + - server-db + - celery-db + - broker + environment: + <<: *shared-env + STARTUP_RUN_MIGRATIONS: "true" + OASIS_ADMIN_USER: admin + OASIS_ADMIN_PASS: password + volumes: + - filestore-OasisData:/shared-fs:rw + server_websocket: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: ["./asgi/run-asgi.sh"] + links: + - server-db + - celery-db + - broker + ports: + - 8001:8001 + environment: + <<: *shared-env + volumes: + - filestore-OasisData:/shared-fs:rw + v1-worker-monitor: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: [celery, -A, 'src.server.oasisapi.celery_app_v1', worker, --loglevel=INFO,] + links: + - server-db + - celery-db + - broker + environment: + <<: *shared-env + volumes: + - filestore-OasisData:/shared-fs:rw + v2-worker-monitor: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: [celery, -A, 'src.server.oasisapi.celery_app_v2', worker, --loglevel=INFO, -Q, celery-v2] + links: + - server-db + - celery-db + - broker + environment: + <<: *shared-env + volumes: + - filestore-OasisData:/shared-fs:rw + v2-task-controller: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: [celery, -A, 'src.server.oasisapi.celery_app_v2', worker, --loglevel=INFO, -Q, task-controller] + links: + - server-db + - celery-db + - broker + environment: + <<: *shared-env + volumes: + - filestore-OasisData:/shared-fs:rw + celery-beat_v2: + restart: always + image: ${SERVER_IMG:-coreoasis/api_server}:${VERS_API:-latest} + command: [celery, -A, src.server.oasisapi.celery_app_v2, beat, --loglevel=INFO] + links: + - server-db + - celery-db + - broker + environment: + <<: *shared-env + volumes: *shared-volumes + v1-worker: + restart: always + image: ${WORKER_IMG:-coreoasis/model_worker}:${VERS_WORKER:-latest} + build: + context: . + dockerfile: Dockerfile.model_worker + links: + - celery-db + - broker:mybroker + environment: + <<: *shared-env + OASIS_MODEL_SUPPLIER_ID: OasisLMF + OASIS_MODEL_ID: Deterministic + OASIS_MODEL_VERSION_ID: 'v1' + OASIS_RUN_MODE: v1 + OASIS_KEEP_RUN_DIR: True + volumes: + - ../model_data/:/home/worker/model/model_data:rw + - ../keys_data/:/home/worker/model/keys_data:rw + - ../src/keys_server/:/home/worker/model/src/keys_server:rw + - ../meta-data/:/home/worker/model/meta-data:rw + - ./oasislmf.json:/home/worker/model/oasislmf.json:rw + - filestore-OasisData:/shared-fs:rw + v2-worker: + restart: always + image: ${WORKER_IMG:-coreoasis/model_worker}:${VERS_WORKER:-latest} + build: + context: . + dockerfile: Dockerfile.model_worker + links: + - celery-db + - broker:mybroker + environment: + <<: *shared-env + OASIS_MODEL_SUPPLIER_ID: OasisLMF + OASIS_MODEL_ID: Deterministic + OASIS_MODEL_VERSION_ID: 'v2' + OASIS_RUN_MODE: v2 + volumes: + - ../model_data/:/home/worker/model/model_data:rw + - ../keys_data/:/home/worker/model/keys_data:rw + - ../meta-data/:/home/worker/model/meta-data:rw + - ../src/keys_server/:/home/worker/model/src/keys_server:rw + - ./oasislmf.json:/home/worker/model/oasislmf.json:rw + - filestore-OasisData:/shared-fs:rw + server-db: + restart: always + image: postgres + environment: + - POSTGRES_DB=oasis + - POSTGRES_USER=oasis + - POSTGRES_PASSWORD=oasis + volumes: + - server-db-OasisData:/var/lib/postgresql/data:rw + ports: + - 33307:3306 + celery-db: + restart: always + image: postgres + environment: + - POSTGRES_DB=celery + - POSTGRES_USER=celery + - POSTGRES_PASSWORD=password + volumes: + - celery-db-OasisData:/var/lib/postgresql/data:rw + ports: + - 33306:5432 + broker: + restart: always + image: rabbitmq:3.8.14-management + environment: + - RABBITMQ_DEFAULT_USER=rabbit + - RABBITMQ_DEFAULT_PASS=rabbit + ports: + - 5672:5672 + - 15672:15672 + channel-layer: + restart: always + image: redis:5.0.7 + ports: + - 6379:6379 diff --git a/DeterministicModel/docker/docker-compose_deterministic.yml b/DeterministicModel/docker/docker-compose_deterministic.yml deleted file mode 100644 index 96b9eb5..0000000 --- a/DeterministicModel/docker/docker-compose_deterministic.yml +++ /dev/null @@ -1,125 +0,0 @@ -version: '3.4' - -volumes: - server-db-OasisData: - celery-db-OasisData: - filestore-OasisData: - -x-oasis-env: &oasis-env - OASIS_ADMIN_USER: admin - OASIS_ADMIN_PASS: password - OASIS_DEBUG: ${DEBUG:-0} - OASIS_RABBIT_HOST: rabbit - OASIS_RABBIT_PORT: 5672 - OASIS_RABBIT_USER: rabbit - OASIS_RABBIT_PASS: rabbit - OASIS_SERVER_DB_HOST: server-db - OASIS_SERVER_DB_PASS: oasis - OASIS_SERVER_DB_USER: oasis - OASIS_SERVER_DB_NAME: oasis - OASIS_SERVER_DB_PORT: 5432 - OASIS_SERVER_DB_ENGINE: django.db.backends.postgresql_psycopg2 - OASIS_CELERY_DB_ENGINE: db+postgresql+psycopg2 - OASIS_CELERY_DB_HOST: celery-db - OASIS_CELERY_DB_PASS: password - OASIS_CELERY_DB_USER: celery - OASIS_CELERY_DB_NAME: celery - OASIS_CELERY_DB_PORT: 5432 - STARTUP_RUN_MIGRATIONS: 'true' - -services: - server: - restart: always - image: coreoasis/api_server:1.28.5 - ports: - - 8000:8000 - links: - - server-db - - celery-db - - rabbit - environment: - <<: *oasis-env - volumes: - - filestore-OasisData:/shared-fs:rw - - worker-monitor: - restart: always - image: coreoasis/api_server:1.28.5 - command: [wait-for-server, 'server:8000', celery, -A, src.server.oasisapi, worker, --loglevel=INFO] - links: - - server-db - - celery-db - - rabbit - environment: - <<: *oasis-env - volumes: - - filestore-OasisData:/shared-fs:rw - worker: - restart: always - image: coreoasis/oasis_deterministic_worker:1.28.5 - links: - - celery-db - - rabbit:myrabbit - environment: - <<: *oasis-env - OASIS_MODEL_SUPPLIER_ID: OasisLMD - OASIS_MODEL_ID: DeterministicModel - OASIS_MODEL_VERSION_ID: 1 - OASIS_MODEL_DATA_DIRECTORY: /home/worker/model - volumes: - - filestore-OasisData:/shared-fs:rw - - ../keys_data:/var/oasis/keys_data:rw - - ../model_data:/var/oasis/model_data:rw - - server-db: - restart: always - image: postgres - environment: - POSTGRES_DB: oasis - POSTGRES_USER: oasis - POSTGRES_PASSWORD: oasis - volumes: - - server-db-OasisData:/var/lib/postgresql/data:rw - - celery-db: - restart: always - image: postgres - environment: - POSTGRES_DB: celery - POSTGRES_USER: celery - POSTGRES_PASSWORD: password - volumes: - - celery-db-OasisData:/var/lib/postgresql/data:rw - - rabbit: - restart: always - image: rabbitmq:3.8.14-management - environment: - RABBITMQ_DEFAULT_USER: rabbit - RABBITMQ_DEFAULT_PASS: rabbit - ports: - - 5672:5672 - - 15672:15672 - - shiny_proxy: - restart: always - container_name: oasisui_proxy - image: coreoasis/oasisui_proxy:1.11.7 - ports: - - 8080:8080 - environment: - #- API_IP= - - UI_DOCKER_IMAGE=coreoasis/oasisui_app:1.11.7 - - API_PORT=8000 - - API_VERSION=v1 - - API_SHARE_FILEPATH=./downloads - - OASIS_ENVIRONMENT=oasis_localhost - volumes: - - /var/run/docker.sock:/var/run/docker.sock - networks: - - shiny-net - -networks: - shiny-net: - external: true - diff --git a/DeterministicModel/docker/oasislmf.json b/DeterministicModel/docker/oasislmf.json new file mode 100644 index 0000000..b28847a --- /dev/null +++ b/DeterministicModel/docker/oasislmf.json @@ -0,0 +1,6 @@ +{ + "lookup_data_dir": "/home/worker/model/keys_data", + "lookup_module_path": "/home/worker/model/src/keys_server/DeterministicKeysLookup.py", + "model_data_dir": "/home/worker/model/model_data", + "model_version_csv": "/home/worker/model/keys_data/ModelVersion.csv" +} diff --git a/DeterministicModel/docker/oasislmf_deploy.json b/DeterministicModel/docker/oasislmf_deploy.json deleted file mode 100644 index 34518de..0000000 --- a/DeterministicModel/docker/oasislmf_deploy.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "lookup_data_dir": "/var/oasis/keys_data", - "lookup_module_path": "/home/worker/model/src/keys_server/DeterministicKeysLookup.py", - "model_data_dir": "/var/oasis/model_data", - "model_version_csv": "/var/oasis/keys_data/ModelVersion.csv", - "ktools_alloc_rule_gul": 1 -} diff --git a/DeterministicModel/tests/test_1/expected_results/analysis_settings.json b/DeterministicModel/tests/test_1/expected_results/analysis_settings.json new file mode 100644 index 0000000..0e39ed2 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/analysis_settings.json @@ -0,0 +1,44 @@ +{ + "analysis_tag": "deterministic_example", + "source_tag": "MDK", + "model_name_id": "Deterministic", + "model_supplier_id": "OasisLMF", + "number_of_samples": 10, + "gul_threshold": 0, + "gul_output": true, + "model_settings": { + "event_set": "", + "event_occurrence_id": "" + }, + "gul_summaries": [ + { + "aalcalc": true, + "eltcalc": true, + "id": 1, + "lec_output": true, + "leccalc": { + "full_uncertainty_aep": true, + "full_uncertainty_oep": true, + "return_period_file": true + } + } + ], + "il_output": true, + "il_summaries": [ + { + "aalcalc": true, + "eltcalc": true, + "id": 1, + "lec_output": true, + "leccalc": { + "full_uncertainty_aep": true, + "full_uncertainty_oep": true, + "return_period_file": true + } + } + ], + "ri_output": false, + "ri_summaries": [], + "rl_output": false, + "rl_summaries": [] +} \ No newline at end of file diff --git a/DeterministicModel/tests/test_1/expected_results/gul_S1_aalcalc.csv b/DeterministicModel/tests/test_1/expected_results/gul_S1_aalcalc.csv new file mode 100644 index 0000000..0b17064 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/gul_S1_aalcalc.csv @@ -0,0 +1,3 @@ +summary_id,type,mean,standard_deviation +1,1,14025654.000000,-nan +1,2,14025654.000000,0.000000 diff --git a/DeterministicModel/tests/test_1/expected_results/gul_S1_eltcalc.csv b/DeterministicModel/tests/test_1/expected_results/gul_S1_eltcalc.csv new file mode 100644 index 0000000..343891a --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/gul_S1_eltcalc.csv @@ -0,0 +1,3 @@ +summary_id,type,event_id,mean,standard_deviation,exposure_value +1,1,1,14025654.000000,0.000000,4861869.000000 +1,2,1,14025654.000000,0.000000,4861869.000000 diff --git a/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_aep.csv b/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_aep.csv new file mode 100644 index 0000000..c88add3 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_aep.csv @@ -0,0 +1,3 @@ +summary_id,type,return_period,loss +1,1,1.000000,14025654.000000 +1,2,1.000000,14025654.000000 diff --git a/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_oep.csv b/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_oep.csv new file mode 100644 index 0000000..c88add3 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/gul_S1_leccalc_full_uncertainty_oep.csv @@ -0,0 +1,3 @@ +summary_id,type,return_period,loss +1,1,1.000000,14025654.000000 +1,2,1.000000,14025654.000000 diff --git a/DeterministicModel/tests/test_1/expected_results/gul_S1_summary-info.csv b/DeterministicModel/tests/test_1/expected_results/gul_S1_summary-info.csv new file mode 100644 index 0000000..8021e81 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/gul_S1_summary-info.csv @@ -0,0 +1,2 @@ +summary_id,_not_set_,tiv +1,All-Risks,4861869.0 diff --git a/DeterministicModel/tests/test_1/expected_results/il_S1_aalcalc.csv b/DeterministicModel/tests/test_1/expected_results/il_S1_aalcalc.csv new file mode 100644 index 0000000..98548d3 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/il_S1_aalcalc.csv @@ -0,0 +1,3 @@ +summary_id,type,mean,standard_deviation +1,1,744646.250000,-nan +1,2,744646.250000,0.000000 diff --git a/DeterministicModel/tests/test_1/expected_results/il_S1_eltcalc.csv b/DeterministicModel/tests/test_1/expected_results/il_S1_eltcalc.csv new file mode 100644 index 0000000..f081d98 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/il_S1_eltcalc.csv @@ -0,0 +1,3 @@ +summary_id,type,event_id,mean,standard_deviation,exposure_value +1,1,1,744646.250000,0.000000,1206560.500000 +1,2,1,744646.187500,0.000000,1206560.500000 diff --git a/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_aep.csv b/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_aep.csv new file mode 100644 index 0000000..aa79e34 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_aep.csv @@ -0,0 +1,3 @@ +summary_id,type,return_period,loss +1,1,1.000000,744646.250000 +1,2,1.000000,744646.250000 diff --git a/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_oep.csv b/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_oep.csv new file mode 100644 index 0000000..aa79e34 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/il_S1_leccalc_full_uncertainty_oep.csv @@ -0,0 +1,3 @@ +summary_id,type,return_period,loss +1,1,1.000000,744646.250000 +1,2,1.000000,744646.250000 diff --git a/DeterministicModel/tests/test_1/expected_results/il_S1_summary-info.csv b/DeterministicModel/tests/test_1/expected_results/il_S1_summary-info.csv new file mode 100644 index 0000000..8021e81 --- /dev/null +++ b/DeterministicModel/tests/test_1/expected_results/il_S1_summary-info.csv @@ -0,0 +1,2 @@ +summary_id,_not_set_,tiv +1,All-Risks,4861869.0