diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 5c125663..d58c35d2 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -20,14 +20,14 @@ jobs: run: ./get-cli.sh - name: Test binaries - run: ./platform-linux help + run: ./instant-linux help - name: Release uses: softprops/action-gh-release@v1 with: files: | - ./platform-linux - ./platform-macos - ./platform.exe + ./instant-linux + ./instant-macos + ./instant.exe ./config.yml ./banner.txt diff --git a/.gitignore b/.gitignore index ca5f5943..3dbdce7d 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,6 @@ typings/ platform-linux platform.exe platform-macos +instant-linux +instant.exe +instant-macos diff --git a/README.md b/README.md index 1fdc0e4d..bf2dba53 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,10 @@ 1. Initialise Docker Swarm mode: `docker swarm init` 1. Run `go cli` binary to launch the project: - - **Linux**. From terminal run: `./platform-linux` - - Mac. From terminal run: `./platform-macos` + - **Linux**. From terminal run: `./instant-linux` with your selected arguments. A list of available arguments can be found in the help menu by running `./instant-linux help` + - Mac. From terminal run: `./instant-macos` with your selected arguments. A list of available arguments can be found in the help menu by running `./instant-macos help` > Warning: Mac has an issue with the binary as it views the file as a security risk. See [this article](https://www.lifewire.com/fix-developer-cannot-be-verified-error-5183898) to bypass warning - - Windows. Double click: `platform.exe` -1. Choose your options and deploy! + - Windows. Double click: `platform.exe` (Windows users will need to use a release version below 2.0.0) ## Quick Start for devs (remote cluster) @@ -30,17 +29,13 @@ To set up a remote cluster environment, see [readme](https://github.com/jembi/cl > Each Package contains a `metadata.json` file which lists the configurable Env vars and their default values -1. Run `go cli` binary to launch the project (*Make sure to add the `DOCKER_HOST` variable indicating your **lead Swarm manager***, i.e. DOCKER_HOST=ssh://{lead_ip} ./platform-linux): +1. Run `go cli` binary to launch the project (*Make sure to add the `DOCKER_HOST` variable indicating your **lead Swarm manager***, i.e. DOCKER_HOST=ssh://{lead_ip} ./instant-linux): -1. Check the current cli version in `./get-cli.sh` and run to download binaries - - **Linux**. From terminal run: `./platform-linux` - - Mac. From terminal run: `./platform-macos` - > Warning: Mac has an issue with the binary as it views the file as a security risk - - Windows. Double click: `platform.exe` - -1. Choose the **Custom Setup** option -1. Specify your environment variable file (or type them all out :| ) -1. Add your package IDs, etc. and deploy! +1. Check the current cli version in `./get-cli.sh` and run to download the binaries. This script can be run with the OS as the first parameter to download only the binary for your prefered OS. + - **Linux**. From terminal run: `./instant-linux` with your selected arguments. A list of available arguments can be found in the help menu by running `./instant-linux help` + - Mac. From terminal run: `./instant-macos` with your selected arguments. A list of available arguments can be found in the help menu by running `./instant-macos help` + > Warning: Mac has an issue with the binary as it views the file as a security risk. See [this article](https://www.lifewire.com/fix-developer-cannot-be-verified-error-5183898) to bypass warning + - Windows. Double click: `platform.exe` (Windows users will need to use a release version below 2.0.0) ## Go Cli Dev @@ -56,7 +51,7 @@ The Go Cli runs all services from the `jembi/platform` docker image. When develo ./build-image.sh ``` -As you add new packages to the platform remember to list them in `config.yml` file. This config file controls what packages the Go Cli can launch from the UI. +As you add new packages to the platform remember to list them in `config.yaml` file. This config file controls what packages the GO CLI can launch. For logging all output to a file, ensure that you have created the file and it has the required permissions to be written to. The default log file with it's path is set in `.env.local` in `BASHLOG_FILE_PATH`. diff --git a/config.yaml b/config.yaml new file mode 100644 index 00000000..f457197f --- /dev/null +++ b/config.yaml @@ -0,0 +1,25 @@ +projectName: platform +image: jembi/platform +logPath: /tmp/logs + +packages: + - interoperability-layer-openhim + - reverse-proxy-nginx + - fhir-datastore-hapi-fhir + - message-bus-kafka + - analytics-datastore-elastic-search + - dashboard-visualiser-kibana + - data-mapper-logstash + - dashboard-visualiser-jsreport + - client-registry-santempi + - message-bus-helper-hapi-proxy + - job-scheduler-ofelia + - kafka-mapper-consumer + - kafka-unbundler-consumer + - analytics-datastore-clickhouse + - dashboard-visualiser-superset + - monitoring + - mpi-mediator + - client-registry-jempi + - identity-access-manager-keycloak + - openhim-mapping-mediator diff --git a/config.yml b/config.yml deleted file mode 100644 index e2ed5e1a..00000000 --- a/config.yml +++ /dev/null @@ -1,46 +0,0 @@ ---- -image: jembi/platform -defaultTargetLauncher: swarm -disableKubernetes: true -disableIG: true -disableCustomTargetSelection: true -logPath: /tmp/logs -packages: - - id: interoperability-layer-openhim - name: Interoperability Layer - OpenHIM - - id: reverse-proxy-nginx - name: Reverse Proxy - NGINX - - id: fhir-datastore-hapi-fhir - name: FHIR Data Store - HAPI-FHIR - - id: message-bus-kafka - name: Message Bus - Kafka - - id: analytics-datastore-elastic-search - name: Analytics Datastore - ElasticSearch - - id: dashboard-visualiser-kibana - name: Dashboard Visualiser - Kibana - - id: data-mapper-logstash - name: Data Mapper - Logstash - - id: dashboard-visualiser-jsreport - name: Dashboard Visualiser - JS Reports - - id: client-registry-santempi - name: Client Registry - SanteMPI - - id: message-bus-helper-hapi-proxy - name: Message Bus Helper - HAPI Proxy to Kafka - - id: job-scheduler-ofelia - name: Job Scheduler Ofelia - - id: kafka-mapper-consumer - name: Kafka Mapper Consumer - - id: kafka-unbundler-consumer - name: Kafka Unbundler Consumer - - id: analytics-datastore-clickhouse - name: Analytics Datastore Clickhouse - - id: dashboard-visualiser-superset - name: Dashboard Visualiser Superset - - id: monitoring - name: Monitoring package - - id: mpi-mediator - name: OpenHIM-Sante Mediator - - id: client-registry-jempi - name: Client Registry - JeMPI - - id: identity-access-manager-keycloak - name: Identity Access Manager Keycloak diff --git a/documentation/disaster-recovery-process/hapi-fhir-data.md b/documentation/disaster-recovery-process/hapi-fhir-data.md index 47f6877c..f06e181d 100644 --- a/documentation/disaster-recovery-process/hapi-fhir-data.md +++ b/documentation/disaster-recovery-process/hapi-fhir-data.md @@ -74,10 +74,10 @@ After running the preliminary steps, run the following commands on the node host docker exec -t pg_ctl start -D /bitnami/postgresql/data ``` 8. Do a `down` of `fhir-datastore-hapi-fhir` using the CLI binary\ - Example: `./platform-linux down fhir-datastore-hapi-fhir –env-file=.env.*` + Example: `./instant-linux package down -n=fhir-datastore-hapi-fhir --env-file=.env.*` 9. Wait for the `down` operation to complete 10. Do an `init` of `fhir-datastore-hapi-fhir` using the CLI binary\ - Example: `./platform-linux init fhir-datastore-hapi-fhir –env-file=.env.*` + Example: `./instant-linux package init -n=fhir-datastore-hapi-fhir --env-file=.env.*` Postgres should now be recovered diff --git a/fhir-datastore-hapi-fhir/README.md b/fhir-datastore-hapi-fhir/README.md index 4e96d592..bb28c8a2 100644 --- a/fhir-datastore-hapi-fhir/README.md +++ b/fhir-datastore-hapi-fhir/README.md @@ -92,7 +92,7 @@ To start up Hapi FHIR and ensure that the backups can be made, ensure that you h Preliminary steps: -1. Do a `destroy` of `fhir-datastore-hapi-fhir` using the CLI binary (./platform-linux for linux) +1. Do a `destroy` of `fhir-datastore-hapi-fhir` using the CLI binary (./instant-linux for linux) 1. Make sure the Postgres volumes on nodes other than the swarm leader have been removed as well! You will need to ssh into each server and manually remove them. 1. Do an `init` of `fhir-datastore-hapi-fhir` using the CLI binary diff --git a/get-cli.sh b/get-cli.sh index 9e798963..0472bc8e 100755 --- a/get-cli.sh +++ b/get-cli.sh @@ -6,30 +6,30 @@ cli_version=${2:-latest} case ${option} in linux) echo "Downloading linux binary version: ${cli_version}" - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli-linux -o platform-linux - chmod +x ./platform-linux + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant-linux -o instant-linux + chmod +x ./instant-linux exit 0 ;; macos) echo "Downloading macos binary version: ${cli_version}" - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli-macos -o platform-macos - chmod +x ./platform-macos + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant-macos -o instant-macos + chmod +x ./instant-macos exit 0 ;; windows) echo "Downloading windows binary version: ${cli_version}" - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli.exe -o platform.exe - chmod +x ./platform.exe + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant.exe -o instant.exe + chmod +x ./instant.exe exit 0 ;; all) echo "Downloading all binaries, version: ${cli_version}" - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli-linux -o platform-linux - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli-macos -o platform-macos - curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/gocli.exe -o platform.exe - chmod +x ./platform-linux - chmod +x ./platform-macos - chmod +x ./platform.exe + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant-linux -o instant-linux + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant-macos -o instant-macos + curl -L https://github.com/openhie/package-starter-kit/releases/download/"$cli_version"/instant.exe -o instant.exe + chmod +x ./instant-linux + chmod +x ./instant-macos + chmod +x ./instant.exe exit 0 ;; --help) diff --git a/test/cucumber/features/cluster-mode/clickhouse.cluster.feature b/test/cucumber/features/cluster-mode/clickhouse.cluster.feature index 1d723f5b..020bb963 100644 --- a/test/cucumber/features/cluster-mode/clickhouse.cluster.feature +++ b/test/cucumber/features/cluster-mode/clickhouse.cluster.feature @@ -1,23 +1,23 @@ Feature: Analytics Datastore Clickhouse? Does the Analytics Datastore Clickhouse package work as expected - Scenario: Init Analytics Datastore Clickhouse - Given I use parameters "init analytics-datastore-clickhouse --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "analytics-datastore-clickhouse-01" should be started with 1 replica - And The service "analytics-datastore-clickhouse-02" should be started with 1 replica - And The service "analytics-datastore-clickhouse-03" should be started with 1 replica - And The service "analytics-datastore-clickhouse-04" should be started with 1 replica - And The service "clickhouse-config-importer" should be removed - And There should be 4 services + Scenario: Init Analytics Datastore Clickhouse + Given I use parameters "package init -n=analytics-datastore-clickhouse --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "analytics-datastore-clickhouse-01" should be started with 1 replica + And The service "analytics-datastore-clickhouse-02" should be started with 1 replica + And The service "analytics-datastore-clickhouse-03" should be started with 1 replica + And The service "analytics-datastore-clickhouse-04" should be started with 1 replica + And The service "clickhouse-config-importer" should be removed + And There should be 4 services - Scenario: Destroy Analytics Datastore Clickhouse - Given I use parameters "destroy analytics-datastore-clickhouse --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "analytics-datastore-clickhouse-01" should be removed - And The service "analytics-datastore-clickhouse-02" should be removed - And The service "analytics-datastore-clickhouse-03" should be removed - And The service "analytics-datastore-clickhouse-04" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Analytics Datastore Clickhouse + Given I use parameters "package destroy -n=analytics-datastore-clickhouse --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "analytics-datastore-clickhouse-01" should be removed + And The service "analytics-datastore-clickhouse-02" should be removed + And The service "analytics-datastore-clickhouse-03" should be removed + And The service "analytics-datastore-clickhouse-04" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/elastic-packages.cluster.feature b/test/cucumber/features/cluster-mode/elastic-packages.cluster.feature index 9af5ebb9..2f6739ce 100644 --- a/test/cucumber/features/cluster-mode/elastic-packages.cluster.feature +++ b/test/cucumber/features/cluster-mode/elastic-packages.cluster.feature @@ -1,34 +1,33 @@ Feature: Analytics Datastore Elasticsearch - Dashboard Visualiser Kibana - Data Mapper Logstash ? Does the ELK stack work as expected - Scenario: Init Dashboard Visualiser Kibana - Given I use parameters "init dashboard-visualiser-kibana --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "analytics-datastore-elastic-search-01" should be started with 1 replica - And The service "analytics-datastore-elastic-search-02" should be started with 1 replica - And The service "analytics-datastore-elastic-search-03" should be started with 1 replica - And The service "dashboard-visualiser-kibana" should be started with 1 replica - And The service "elastic-search-config-importer" should be removed - And The service "kibana-config-importer" should be removed - And There should be 4 services - And The service "dashboard-visualiser-kibana" should have healthy containers + Scenario: Init Dashboard Visualiser Kibana + Given I use parameters "package init -n=dashboard-visualiser-kibana --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "analytics-datastore-elastic-search-01" should be started with 1 replica + And The service "analytics-datastore-elastic-search-02" should be started with 1 replica + And The service "analytics-datastore-elastic-search-03" should be started with 1 replica + And The service "dashboard-visualiser-kibana" should be started with 1 replica + And The service "elastic-search-config-importer" should be removed + And The service "kibana-config-importer" should be removed + And There should be 4 services + And The service "dashboard-visualiser-kibana" should have healthy containers - Scenario: Init Data Mapper Logstash - Given I use parameters "init data-mapper-logstash --dev --only --env-file=.env.cluster" - When I launch the platform with params - And The service "data-mapper-logstash" should be started with 3 replicas - And There should be 5 services - And The service "data-mapper-logstash" should have healthy containers - - Scenario: Destroy ELK stack - Given I use parameters "destroy dashboard-visualiser-kibana data-mapper-logstash --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "analytics-datastore-elastic-search-01" should be removed - And The service "analytics-datastore-elastic-search-02" should be removed - And The service "analytics-datastore-elastic-search-03" should be removed - And The service "dashboard-visualiser-kibana" should be removed - And The service "data-mapper-logstash" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Init Data Mapper Logstash + Given I use parameters "package init -n=data-mapper-logstash --dev --only --env-file=.env.cluster" + When I launch the platform with params + And The service "data-mapper-logstash" should be started with 3 replicas + And There should be 5 services + And The service "data-mapper-logstash" should have healthy containers + Scenario: Destroy ELK stack + Given I use parameters "package destroy -n=dashboard-visualiser-kibana,data-mapper-logstash --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "analytics-datastore-elastic-search-01" should be removed + And The service "analytics-datastore-elastic-search-02" should be removed + And The service "analytics-datastore-elastic-search-03" should be removed + And The service "dashboard-visualiser-kibana" should be removed + And The service "data-mapper-logstash" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/hapi-fhir.cluster.feature b/test/cucumber/features/cluster-mode/hapi-fhir.cluster.feature index 4addee54..c6ea3a97 100644 --- a/test/cucumber/features/cluster-mode/hapi-fhir.cluster.feature +++ b/test/cucumber/features/cluster-mode/hapi-fhir.cluster.feature @@ -1,30 +1,30 @@ Feature: Fhir Datastore HAPI-FHIR? Does the Fhir Datastore HAPI-FHIR package work as expected - Scenario: Init Fhir Datastore HAPI-FHIR - Given I use parameters "init fhir-datastore-hapi-fhir --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "postgres-1" should be started with 1 replica - And The service "postgres-2" should be started with 1 replica - And The service "postgres-3" should be started with 1 replica - And The service "hapi-fhir" should be started with 3 replicas - And There should be 4 services - And The service "hapi-fhir" should have healthy containers + Scenario: Init Fhir Datastore HAPI-FHIR + Given I use parameters "package init -n=fhir-datastore-hapi-fhir --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "postgres-1" should be started with 1 replica + And The service "postgres-2" should be started with 1 replica + And The service "postgres-3" should be started with 1 replica + And The service "hapi-fhir" should be started with 3 replicas + And There should be 4 services + And The service "hapi-fhir" should have healthy containers - Scenario: Init Message Bus Helper Hapi Proxy - Given I use parameters "init message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "hapi-proxy" should be started with 3 replicas - And There should be 5 services + Scenario: Init Message Bus Helper Hapi Proxy + Given I use parameters "package init -n=message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "hapi-proxy" should be started with 3 replicas + And There should be 5 services - Scenario: Destroy Fhir Datastore HAPI-FHIR - Given I use parameters "destroy fhir-datastore-hapi-fhir message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "postgres-1" should be removed - And The service "postgres-2" should be removed - And The service "postgres-3" should be removed - And The service "hapi-fhir" should be removed - And The service "hapi-proxy" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Fhir Datastore HAPI-FHIR + Given I use parameters "package destroy -n=fhir-datastore-hapi-fhir,message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "postgres-1" should be removed + And The service "postgres-2" should be removed + And The service "postgres-3" should be removed + And The service "hapi-fhir" should be removed + And The service "hapi-proxy" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/hapi-packages.cluster.feature b/test/cucumber/features/cluster-mode/hapi-packages.cluster.feature index 2b719ba8..db702f31 100644 --- a/test/cucumber/features/cluster-mode/hapi-packages.cluster.feature +++ b/test/cucumber/features/cluster-mode/hapi-packages.cluster.feature @@ -1,30 +1,30 @@ Feature: Hapi Fhir and its dependent packages? Does Hapi Fhir and its dependent packages package work as expected - Scenario: Init Hapi Fhir and its dependent packages - Given I use parameters "init fhir-datastore-hapi-fhir --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "postgres-1" should be started with 1 replica - And The service "postgres-2" should be started with 1 replica - And The service "postgres-3" should be started with 1 replica - And The service "hapi-fhir" should be started with 3 replicas - And There should be 4 services - And The service "hapi-fhir" should have healthy containers + Scenario: Init Hapi Fhir and its dependent packages + Given I use parameters "package init -n=fhir-datastore-hapi-fhir --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "postgres-1" should be started with 1 replica + And The service "postgres-2" should be started with 1 replica + And The service "postgres-3" should be started with 1 replica + And The service "hapi-fhir" should be started with 3 replicas + And There should be 4 services + And The service "hapi-fhir" should have healthy containers - Scenario: Init Message Bus Helper Hapi Proxy - Given I use parameters "init message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "hapi-proxy" should be started with 3 replicas - And There should be 5 services + Scenario: Init Message Bus Helper Hapi Proxy + Given I use parameters "package init -n=message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "hapi-proxy" should be started with 3 replicas + And There should be 5 services - Scenario: Destroy Hapi Fhir and its dependent packages - Given I use parameters "destroy fhir-datastore-hapi-fhir message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "postgres-1" should be removed - And The service "postgres-2" should be removed - And The service "postgres-3" should be removed - And The service "hapi-fhir" should be removed - And The service "hapi-proxy" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Hapi Fhir and its dependent packages + Given I use parameters "package destroy -n=fhir-datastore-hapi-fhir,message-bus-helper-hapi-proxy --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "postgres-1" should be removed + And The service "postgres-2" should be removed + And The service "postgres-3" should be removed + And The service "hapi-fhir" should be removed + And The service "hapi-proxy" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/kafka-packages.cluster.feature b/test/cucumber/features/cluster-mode/kafka-packages.cluster.feature index 4b7ab997..fd64d186 100644 --- a/test/cucumber/features/cluster-mode/kafka-packages.cluster.feature +++ b/test/cucumber/features/cluster-mode/kafka-packages.cluster.feature @@ -1,44 +1,44 @@ Feature: Kafka and its dependent packages? Does Kafka and its dependent packages work as expected - Scenario: Init Message Bus Kafka - Given I use parameters "init message-bus-kafka --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "zookeeper-1" should be started with 1 replica - And The service "zookeeper-2" should be started with 1 replica - And The service "zookeeper-3" should be started with 1 replica - And The service "kafka" should be started with 3 replicas - And The service "kafdrop" should be started with 1 replica - And The service "kafka-minion" should be started with 1 replica - And The service "message-bus-kafka-config-importer" should be removed - And There should be 6 services + Scenario: Init Message Bus Kafka + Given I use parameters "package init -n=message-bus-kafka --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "zookeeper-1" should be started with 1 replica + And The service "zookeeper-2" should be started with 1 replica + And The service "zookeeper-3" should be started with 1 replica + And The service "kafka" should be started with 3 replicas + And The service "kafdrop" should be started with 1 replica + And The service "kafka-minion" should be started with 1 replica + And The service "message-bus-kafka-config-importer" should be removed + And There should be 6 services - Scenario: Init Monitoring - Given I use parameters "init monitoring --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "grafana" should be started with 1 replica - And The service "prometheus" should be started with 1 replica - And The service "prometheus-kafka-adapter" should be started with 1 replica - And The service "prometheus_backup" should be started with 1 replica - And The service "cadvisor" should be started with 3 replicas - And The service "node-exporter" should be started with 3 replicas - And The service "cadvisor" should have healthy containers + Scenario: Init Monitoring + Given I use parameters "package init -n=monitoring --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "grafana" should be started with 1 replica + And The service "prometheus" should be started with 1 replica + And The service "prometheus-kafka-adapter" should be started with 1 replica + And The service "prometheus_backup" should be started with 1 replica + And The service "cadvisor" should be started with 3 replicas + And The service "node-exporter" should be started with 3 replicas + And The service "cadvisor" should have healthy containers - Scenario: Destroy Kafka and its dependent packages - Given I use parameters "destroy monitoring --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "zookeeper-1" should be removed - And The service "zookeeper-2" should be removed - And The service "zookeeper-3" should be removed - And The service "kafka" should be removed - And The service "kafdrop" should be removed - And The service "kafka-minion" should be removed - And The service "grafana" should be removed - And The service "prometheus" should be removed - And The service "prometheus-kafka-adapter" should be removed - And The service "prometheus_backup" should be removed - And The service "cadvisor" should be removed - And The service "node-exporter" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Kafka and its dependent packages + Given I use parameters "package destroy -n=monitoring --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "zookeeper-1" should be removed + And The service "zookeeper-2" should be removed + And The service "zookeeper-3" should be removed + And The service "kafka" should be removed + And The service "kafdrop" should be removed + And The service "kafka-minion" should be removed + And The service "grafana" should be removed + And The service "prometheus" should be removed + And The service "prometheus-kafka-adapter" should be removed + And The service "prometheus_backup" should be removed + And The service "cadvisor" should be removed + And The service "node-exporter" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/keycloak.cluster.feature b/test/cucumber/features/cluster-mode/keycloak.cluster.feature index 47194d9c..22774e8b 100644 --- a/test/cucumber/features/cluster-mode/keycloak.cluster.feature +++ b/test/cucumber/features/cluster-mode/keycloak.cluster.feature @@ -1,23 +1,23 @@ Feature: Identity Access Manager Keycloak? Does the Identity Access Manager Keycloak package work as expected - Scenario: Init Identity Access Manager Keycloak - Given I use parameters "init identity-access-manager-keycloak --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "keycloak-postgres-1" should be started with 1 replica - And The service "keycloak-postgres-2" should be started with 1 replica - And The service "keycloak-postgres-3" should be started with 1 replica - And The service "identity-access-manager-keycloak" should be started with 1 replicas - And There should be 4 services - And The service "identity-access-manager-keycloak" should have healthy containers + Scenario: Init Identity Access Manager Keycloak + Given I use parameters "package init -n=identity-access-manager-keycloak --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "keycloak-postgres-1" should be started with 1 replica + And The service "keycloak-postgres-2" should be started with 1 replica + And The service "keycloak-postgres-3" should be started with 1 replica + And The service "identity-access-manager-keycloak" should be started with 1 replicas + And There should be 4 services + And The service "identity-access-manager-keycloak" should have healthy containers - Scenario: Destroy Identity Access Manager Keycloak - Given I use parameters "destroy identity-access-manager-keycloak --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "keycloak-postgres-1" should be removed - And The service "keycloak-postgres-2" should be removed - And The service "keycloak-postgres-3" should be removed - And The service "identity-access-manager-keycloak" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Identity Access Manager Keycloak + Given I use parameters "package destroy -n=identity-access-manager-keycloak --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "keycloak-postgres-1" should be removed + And The service "keycloak-postgres-2" should be removed + And The service "keycloak-postgres-3" should be removed + And The service "identity-access-manager-keycloak" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/openhim-packages.cluster.feature b/test/cucumber/features/cluster-mode/openhim-packages.cluster.feature index c36d063f..07527839 100644 --- a/test/cucumber/features/cluster-mode/openhim-packages.cluster.feature +++ b/test/cucumber/features/cluster-mode/openhim-packages.cluster.feature @@ -1,26 +1,26 @@ Feature: Openhim and its dependent packages? Does Openhim and its dependent packages work as expected - Scenario: Init Interoperability Layer Openhim - Given I use parameters "init interoperability-layer-openhim --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "mongo-1" should be started with 1 replica - And The service "mongo-2" should be started with 1 replica - And The service "mongo-3" should be started with 1 replica - And The service "openhim-core" should be started with 3 replicas - And The service "openhim-console" should be started with 3 replicas - And The service "interoperability-layer-openhim-config-importer" should be removed - And There should be 5 services + Scenario: Init Interoperability Layer Openhim + Given I use parameters "package init -n=interoperability-layer-openhim --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "mongo-1" should be started with 1 replica + And The service "mongo-2" should be started with 1 replica + And The service "mongo-3" should be started with 1 replica + And The service "openhim-core" should be started with 3 replicas + And The service "openhim-console" should be started with 3 replicas + And The service "interoperability-layer-openhim-config-importer" should be removed + And There should be 5 services - Scenario: Destroy Openhim and its dependent packages - Given I use parameters "destroy interoperability-layer-openhim mpi-mediator --only --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "mongo-1" should be removed - And The service "mongo-2" should be removed - And The service "mongo-3" should be removed - And The service "openhim-core" should be removed - And The service "openhim-console" should be removed - And The service "mpi-mediator" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Openhim and its dependent packages + Given I use parameters "package destroy -n=interoperability-layer-openhim,mpi-mediator --only --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "mongo-1" should be removed + And The service "mongo-2" should be removed + And The service "mongo-3" should be removed + And The service "openhim-core" should be removed + And The service "openhim-console" should be removed + And The service "mpi-mediator" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/reverse-proxy.cluster.feature b/test/cucumber/features/cluster-mode/reverse-proxy.cluster.feature index 8144967b..77b22c79 100644 --- a/test/cucumber/features/cluster-mode/reverse-proxy.cluster.feature +++ b/test/cucumber/features/cluster-mode/reverse-proxy.cluster.feature @@ -1,16 +1,16 @@ Feature: Reverse Proxy Nginx? Does the Reverse Proxy Nginx package work as expected - Scenario: Init Reverse Proxy Nginx - Given I use parameters "init reverse-proxy-nginx --env-file=.env.cluster" - When I launch the platform with params - Then The service "reverse-proxy-nginx" should be started with 3 replicas - And There should be 1 service + Scenario: Init Reverse Proxy Nginx + Given I use parameters "package init -n=reverse-proxy-nginx --env-file=.env.cluster" + When I launch the platform with params + Then The service "reverse-proxy-nginx" should be started with 3 replicas + And There should be 1 service - Scenario: Destroy Reverse Proxy Nginx - Given I use parameters "destroy reverse-proxy-nginx --env-file=.env.cluster" - When I launch the platform with params - Then The service "reverse-proxy-nginx" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Reverse Proxy Nginx + Given I use parameters "package destroy -n=reverse-proxy-nginx --env-file=.env.cluster" + When I launch the platform with params + Then The service "reverse-proxy-nginx" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/cluster-mode/santempi.cluster.feature b/test/cucumber/features/cluster-mode/santempi.cluster.feature index ced8356f..b601cb4b 100644 --- a/test/cucumber/features/cluster-mode/santempi.cluster.feature +++ b/test/cucumber/features/cluster-mode/santempi.cluster.feature @@ -1,25 +1,24 @@ Feature: Client Registry JeMPI? Does the Client Registry JeMPI package work as expected - Scenario: Init Client Registry JeMPI - Given I use parameters "init client-registry-santempi --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "santempi-psql-1" should be started with 1 replica - And The service "santempi-psql-2" should be started with 1 replica - And The service "santempi-psql-3" should be started with 1 replica - And The service "santedb-www" should be started with 1 replica - And The service "santedb-mpi" should be started with 1 replica - And There should be 5 services - - Scenario: Destroy Client Registry JeMPI - Given I use parameters "destroy client-registry-santempi --dev --env-file=.env.cluster" - When I launch the platform with params - Then The service "santempi-psql-1" should be removed - And The service "santempi-psql-2" should be removed - And The service "santempi-psql-3" should be removed - And The service "santedb-www" should be removed - And The service "santedb-mpi" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Init Client Registry JeMPI + Given I use parameters "package init -n=client-registry-santempi --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "santempi-psql-1" should be started with 1 replica + And The service "santempi-psql-2" should be started with 1 replica + And The service "santempi-psql-3" should be started with 1 replica + And The service "santedb-www" should be started with 1 replica + And The service "santedb-mpi" should be started with 1 replica + And There should be 5 services + Scenario: Destroy Client Registry JeMPI + Given I use parameters "package destroy -n=client-registry-santempi --dev --env-file=.env.cluster" + When I launch the platform with params + Then The service "santempi-psql-1" should be removed + And The service "santempi-psql-2" should be removed + And The service "santempi-psql-3" should be removed + And The service "santedb-www" should be removed + And The service "santedb-mpi" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/clickhouse.feature b/test/cucumber/features/single-mode/clickhouse.feature index e5a3d2f3..d059f23e 100644 --- a/test/cucumber/features/single-mode/clickhouse.feature +++ b/test/cucumber/features/single-mode/clickhouse.feature @@ -1,18 +1,18 @@ Feature: Analytics Datastore Clickhouse? Does the Analytics Datastore Clickhouse package work as expected - Scenario: Init Analytics Datastore Clickhouse - Given I use parameters "init analytics-datastore-clickhouse --dev --env-file=.env.local" - When I launch the platform with params - Then The service "analytics-datastore-clickhouse" should be started with 1 replica - And The service "clickhouse-config-importer" should be removed - And There should be 1 service - And There should be 1 volume + Scenario: Init Analytics Datastore Clickhouse + Given I use parameters "package init -n=analytics-datastore-clickhouse --dev --env-file=.env.local" + When I launch the platform with params + Then The service "analytics-datastore-clickhouse" should be started with 1 replica + And The service "clickhouse-config-importer" should be removed + And There should be 1 service + And There should be 1 volume - Scenario: Destroy Analytics Datastore Clickhouse - Given I use parameters "destroy analytics-datastore-clickhouse --dev --env-file=.env.local" - When I launch the platform with params - Then The service "analytics-datastore-clickhouse" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Analytics Datastore Clickhouse + Given I use parameters "package destroy -n=analytics-datastore-clickhouse --dev --env-file=.env.local" + When I launch the platform with params + Then The service "analytics-datastore-clickhouse" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/elastic-packages.feature b/test/cucumber/features/single-mode/elastic-packages.feature index 6f631110..84f535a1 100644 --- a/test/cucumber/features/single-mode/elastic-packages.feature +++ b/test/cucumber/features/single-mode/elastic-packages.feature @@ -1,32 +1,32 @@ Feature: Analytics Datastore Elasticsearch - Dashboard Visualiser Kibana - Data Mapper Logstash ? Does the ELK stack work as expected - Scenario: Init Dashboard Visualiser Kibana - Given I use parameters "init dashboard-visualiser-kibana --dev --env-file=.env.local" - When I launch the platform with params - Then The service "analytics-datastore-elastic-search" should be started with 1 replica - And The service "dashboard-visualiser-kibana" should be started with 1 replica - And There should be 2 services - And The service "analytics-datastore-elastic-search" should have healthy containers - And The service "dashboard-visualiser-kibana" should have healthy containers - And The service "elastic-search-config-importer" should be removed - And The service "kibana-config-importer" should be removed - And There should be 1 volume + Scenario: Init Dashboard Visualiser Kibana + Given I use parameters "package init -n=dashboard-visualiser-kibana --dev --env-file=.env.local" + When I launch the platform with params + Then The service "analytics-datastore-elastic-search" should be started with 1 replica + And The service "dashboard-visualiser-kibana" should be started with 1 replica + And There should be 2 services + And The service "analytics-datastore-elastic-search" should have healthy containers + And The service "dashboard-visualiser-kibana" should have healthy containers + And The service "elastic-search-config-importer" should be removed + And The service "kibana-config-importer" should be removed + And There should be 1 volume - Scenario: Init Data Mapper Logstash - Given I use parameters "init data-mapper-logstash --only --dev --env-file=.env.local" - When I launch the platform with params - And The service "data-mapper-logstash" should be started with 1 replica - And There should be 3 services - And The service "data-mapper-logstash" should have healthy containers - And There should be 2 volumes + Scenario: Init Data Mapper Logstash + Given I use parameters "package init -n=data-mapper-logstash --only --dev --env-file=.env.local" + When I launch the platform with params + And The service "data-mapper-logstash" should be started with 1 replica + And There should be 3 services + And The service "data-mapper-logstash" should have healthy containers + And There should be 2 volumes - Scenario: Destroy ELK stack - Given I use parameters "destroy dashboard-visualiser-kibana data-mapper-logstash --dev --env-file=.env.local" - When I launch the platform with params - Then The service "analytics-datastore-elastic-search" should be removed - And The service "dashboard-visualiser-kibana" should be removed - And The service "data-mapper-logstash" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy ELK stack + Given I use parameters "package destroy -n=dashboard-visualiser-kibana,data-mapper-logstash --dev --env-file=.env.local" + When I launch the platform with params + Then The service "analytics-datastore-elastic-search" should be removed + And The service "dashboard-visualiser-kibana" should be removed + And The service "data-mapper-logstash" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/hapi-fhir.feature b/test/cucumber/features/single-mode/hapi-fhir.feature index c35f61f6..c7a9deb0 100644 --- a/test/cucumber/features/single-mode/hapi-fhir.feature +++ b/test/cucumber/features/single-mode/hapi-fhir.feature @@ -1,27 +1,27 @@ Feature: Fhir Datastore HAPI-FHIR? Does the Fhir Datastore HAPI-FHIR package work as expected - Scenario: Init Fhir Datastore HAPI-FHIR - Given I use parameters "init fhir-datastore-hapi-fhir --dev --env-file=.env.local" - When I launch the platform with params - Then The service "postgres-1" should be started with 1 replica - And The service "hapi-fhir" should be started with 1 replica - And There should be 2 services - And The service "hapi-fhir" should have healthy containers - And There should be 1 volume + Scenario: Init Fhir Datastore HAPI-FHIR + Given I use parameters "package init -n=fhir-datastore-hapi-fhir --dev --env-file=.env.local" + When I launch the platform with params + Then The service "postgres-1" should be started with 1 replica + And The service "hapi-fhir" should be started with 1 replica + And There should be 2 services + And The service "hapi-fhir" should have healthy containers + And There should be 1 volume - Scenario: Init Message Bus Helper Hapi Proxy - Given I use parameters "init message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "hapi-proxy" should be started with 1 replica - And There should be 3 services + Scenario: Init Message Bus Helper Hapi Proxy + Given I use parameters "package init -n=message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "hapi-proxy" should be started with 1 replica + And There should be 3 services - Scenario: Destroy Fhir Datastore HAPI-FHIR - Given I use parameters "destroy fhir-datastore-hapi-fhir message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "postgres-1" should be removed - And The service "hapi-fhir" should be removed - And The service "hapi-proxy" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Fhir Datastore HAPI-FHIR + Given I use parameters "package destroy -n=fhir-datastore-hapi-fhir,message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "postgres-1" should be removed + And The service "hapi-fhir" should be removed + And The service "hapi-proxy" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/hapi-packages.feature b/test/cucumber/features/single-mode/hapi-packages.feature index 1387c15e..d7a905a4 100644 --- a/test/cucumber/features/single-mode/hapi-packages.feature +++ b/test/cucumber/features/single-mode/hapi-packages.feature @@ -1,27 +1,27 @@ Feature: Hapi Fhir and its dependent packages? Does Hapi Fhir and its dependent packages package work as expected - Scenario: Init Fhir Datastore HAPI-FHIR - Given I use parameters "init fhir-datastore-hapi-fhir --dev --env-file=.env.local" - When I launch the platform with params - Then The service "postgres-1" should be started with 1 replica - And The service "hapi-fhir" should be started with 1 replica - And There should be 2 services - And The service "hapi-fhir" should have healthy containers - And There should be 1 volume + Scenario: Init Fhir Datastore HAPI-FHIR + Given I use parameters "package init -n=fhir-datastore-hapi-fhir --dev --env-file=.env.local" + When I launch the platform with params + Then The service "postgres-1" should be started with 1 replica + And The service "hapi-fhir" should be started with 1 replica + And There should be 2 services + And The service "hapi-fhir" should have healthy containers + And There should be 1 volume - Scenario: Init Message Bus Helper Hapi Proxy - Given I use parameters "init message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "hapi-proxy" should be started with 1 replica - And There should be 3 services + Scenario: Init Message Bus Helper Hapi Proxy + Given I use parameters "package init -n=message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "hapi-proxy" should be started with 1 replica + And There should be 3 services - Scenario: Destroy Hapi Fhir and its dependent packages - Given I use parameters "destroy fhir-datastore-hapi-fhir message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "postgres-1" should be removed - And The service "hapi-fhir" should be removed - And The service "hapi-proxy" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Hapi Fhir and its dependent packages + Given I use parameters "package destroy -n=fhir-datastore-hapi-fhir,message-bus-helper-hapi-proxy --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "postgres-1" should be removed + And The service "hapi-fhir" should be removed + And The service "hapi-proxy" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/jsreport.feature b/test/cucumber/features/single-mode/jsreport.feature index 03a8801d..5b9d696d 100644 --- a/test/cucumber/features/single-mode/jsreport.feature +++ b/test/cucumber/features/single-mode/jsreport.feature @@ -1,17 +1,17 @@ Feature: Dashboard Visualiser Jsreport? Does the Dashboard Visualiser Jsreport package work as expected - Scenario: Init Dashboard Visualiser Jsreport - Given I use parameters "init dashboard-visualiser-jsreport --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "dashboard-visualiser-jsreport" should be started with 1 replica - And There should be 1 service - And The service "dashboard-visualiser-jsreport" should have healthy containers + Scenario: Init Dashboard Visualiser Jsreport + Given I use parameters "package init -n=dashboard-visualiser-jsreport --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "dashboard-visualiser-jsreport" should be started with 1 replica + And There should be 1 service + And The service "dashboard-visualiser-jsreport" should have healthy containers - Scenario: Destroy Dashboard Visualiser Jsreport - Given I use parameters "destroy dashboard-visualiser-jsreport --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "dashboard-visualiser-jsreport" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Dashboard Visualiser Jsreport + Given I use parameters "package destroy -n=dashboard-visualiser-jsreport --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "dashboard-visualiser-jsreport" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/kafka-packages.feature b/test/cucumber/features/single-mode/kafka-packages.feature index 5c0853c3..caced467 100644 --- a/test/cucumber/features/single-mode/kafka-packages.feature +++ b/test/cucumber/features/single-mode/kafka-packages.feature @@ -1,52 +1,52 @@ Feature: Kafka and its dependent packages? Does Kafka and its dependent packages work as expected - Scenario: Init Message Bus Kafka - Given I use parameters "init message-bus-kafka --dev --env-file=.env.local" - When I launch the platform with params - Then The service "zookeeper-1" should be started with 1 replica - And The service "kafka" should be started with 1 replica - And The service "kafdrop" should be started with 1 replica - And The service "kafka-minion" should be started with 1 replica - And The service "message-bus-kafka-config-importer" should be removed - And There should be 4 services - And There should be 2 volumes + Scenario: Init Message Bus Kafka + Given I use parameters "package init -n=message-bus-kafka --dev --env-file=.env.local" + When I launch the platform with params + Then The service "zookeeper-1" should be started with 1 replica + And The service "kafka" should be started with 1 replica + And The service "kafdrop" should be started with 1 replica + And The service "kafka-minion" should be started with 1 replica + And The service "message-bus-kafka-config-importer" should be removed + And There should be 4 services + And There should be 2 volumes - Scenario: Init Kafka Mapper Consumer - Given I use parameters "init kafka-mapper-consumer --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "kafka-mapper-consumer" should be started with 1 replica + Scenario: Init Kafka Mapper Consumer + Given I use parameters "package init -n=kafka-mapper-consumer --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "kafka-mapper-consumer" should be started with 1 replica - Scenario: Init Message Bus Kafka - Given I use parameters "init kafka-unbundler-consumer --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "kafka-unbundler-consumer" should be started with 1 replica + Scenario: Init Message Bus Kafka + Given I use parameters "package init -n=kafka-unbundler-consumer --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "kafka-unbundler-consumer" should be started with 1 replica - Scenario: Init Monitoring - Given I use parameters "init monitoring --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "grafana" should be started with 1 replica - And The service "prometheus" should be started with 1 replica - And The service "prometheus-kafka-adapter" should be started with 1 replica - And The service "cadvisor" should be started with 1 replica - And The service "node-exporter" should be started with 1 replica - And The service "cadvisor" should have healthy containers - And There should be 4 volumes + Scenario: Init Monitoring + Given I use parameters "package init -n=monitoring --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "grafana" should be started with 1 replica + And The service "prometheus" should be started with 1 replica + And The service "prometheus-kafka-adapter" should be started with 1 replica + And The service "cadvisor" should be started with 1 replica + And The service "node-exporter" should be started with 1 replica + And The service "cadvisor" should have healthy containers + And There should be 4 volumes - Scenario: Destroy Kafka and its dependent packages - Given I use parameters "destroy kafka-mapper-consumer kafka-unbundler-consumer monitoring --dev --env-file=.env.local" - When I launch the platform with params - Then The service "zookeeper-1" should be removed - And The service "kafka" should be removed - And The service "kafdrop" should be removed - And The service "kafka-minion" should be removed - And The service "kafka-mapper-consumer" should be removed - And The service "kafka-unbundler-consumer" should be removed - And The service "grafana" should be removed - And The service "prometheus" should be removed - And The service "prometheus-kafka-adapter" should be removed - And The service "cadvisor" should be removed - And The service "node-exporter" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Kafka and its dependent packages + Given I use parameters "package destroy -n=kafka-mapper-consumer,kafka-unbundler-consumer,monitoring --dev --env-file=.env.local" + When I launch the platform with params + Then The service "zookeeper-1" should be removed + And The service "kafka" should be removed + And The service "kafdrop" should be removed + And The service "kafka-minion" should be removed + And The service "kafka-mapper-consumer" should be removed + And The service "kafka-unbundler-consumer" should be removed + And The service "grafana" should be removed + And The service "prometheus" should be removed + And The service "prometheus-kafka-adapter" should be removed + And The service "cadvisor" should be removed + And The service "node-exporter" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/keycloak.feature b/test/cucumber/features/single-mode/keycloak.feature index 0e904e26..54e18c63 100644 --- a/test/cucumber/features/single-mode/keycloak.feature +++ b/test/cucumber/features/single-mode/keycloak.feature @@ -1,21 +1,21 @@ Feature: Identity Access Manager Keycloak? Does the Identity Access Manager Keycloak package work as expected - Scenario: Init Identity Access Manager Keycloak - Given I use parameters "init identity-access-manager-keycloak --dev --env-file=.env.local" - When I launch the platform with params - Then The service "keycloak-postgres-1" should be started with 1 replica - And The service "identity-access-manager-keycloak" should be started with 1 replica - And There should be 2 services - And The service "identity-access-manager-keycloak" should have healthy containers - And There should be 1 volume + Scenario: Init Identity Access Manager Keycloak + Given I use parameters "package init -n=identity-access-manager-keycloak --dev --env-file=.env.local" + When I launch the platform with params + Then The service "keycloak-postgres-1" should be started with 1 replica + And The service "identity-access-manager-keycloak" should be started with 1 replica + And There should be 2 services + And The service "identity-access-manager-keycloak" should have healthy containers + And There should be 1 volume - Scenario: Destroy Identity Access Manager Keycloak - Given I use parameters "destroy identity-access-manager-keycloak --dev --env-file=.env.local" - When I launch the platform with params - Then The service "keycloak-postgres-1" should be removed - And The service "identity-access-manager-keycloak" should be removed - And The service "hapi-proxy" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Identity Access Manager Keycloak + Given I use parameters "package destroy -n=identity-access-manager-keycloak --dev --env-file=.env.local" + When I launch the platform with params + Then The service "keycloak-postgres-1" should be removed + And The service "identity-access-manager-keycloak" should be removed + And The service "hapi-proxy" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/mpi-mediator.feature b/test/cucumber/features/single-mode/mpi-mediator.feature index 4418fd68..32d6ea22 100644 --- a/test/cucumber/features/single-mode/mpi-mediator.feature +++ b/test/cucumber/features/single-mode/mpi-mediator.feature @@ -1,15 +1,15 @@ Feature: MPI mediator? Does the MPI mediator package work as expected - Scenario: Init MPI mediator - Given I use parameters "init message-bus-kafka interoperability-layer-openhim mpi-mediator --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "mpi-mediator" should be started with 1 replica + Scenario: Init MPI mediator + Given I use parameters "package init -n=message-bus-kafka,interoperability-layer-openhim,mpi-mediator --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "mpi-mediator" should be started with 1 replica - Scenario: Destroy MPI mediator - Given I use parameters "destroy message-bus-kafka interoperability-layer-openhim mpi-mediator --dev --env-file=.env.local" - When I launch the platform with params - Then The service "mpi-mediator" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy MPI mediator + Given I use parameters "package destroy -n=message-bus-kafka,interoperability-layer-openhim,mpi-mediator --dev --env-file=.env.local" + When I launch the platform with params + Then The service "mpi-mediator" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/openhim-packages.feature b/test/cucumber/features/single-mode/openhim-packages.feature index ae72b1ec..cd126ff0 100644 --- a/test/cucumber/features/single-mode/openhim-packages.feature +++ b/test/cucumber/features/single-mode/openhim-packages.feature @@ -1,68 +1,68 @@ Feature: Openhim and its dependent packages? Does Openhim and its dependent packages work as expected - Scenario: Init Interoperability Layer Openhim - Given I use parameters "init interoperability-layer-openhim --dev --env-file=.env.local" - When I launch the platform with params - Then The service "mongo-1" should be started with 1 replica - And The service "openhim-core" should be started with 1 replica - And The service "openhim-console" should be started with 1 replica - And The service "await-helper" should be removed - And The service "interoperability-layer-openhim-config-importer" should be removed - And There should be 3 services - And There should be 2 volumes + Scenario: Init Interoperability Layer Openhim + Given I use parameters "package init -n=interoperability-layer-openhim --dev --env-file=.env.local" + When I launch the platform with params + Then The service "mongo-1" should be started with 1 replica + And The service "openhim-core" should be started with 1 replica + And The service "openhim-console" should be started with 1 replica + And The service "await-helper" should be removed + And The service "interoperability-layer-openhim-config-importer" should be removed + And There should be 3 services + And There should be 2 volumes - Scenario: Init Openhim Mapping Mediator - Given I use parameters "init openhim-mapping-mediator --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "openhim-mapping-mediator" should be started with 1 replica - And There should be 4 services + Scenario: Init Openhim Mapping Mediator + Given I use parameters "package init -n=openhim-mapping-mediator --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "openhim-mapping-mediator" should be started with 1 replica + And There should be 4 services - Scenario: Init Client Registry JemMPI - Given I use parameters "init client-registry-jempi --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "jempi-kafka-01" should be started with 1 replica - And The service "jempi-kafka-02" should be started with 1 replica - And The service "jempi-kafka-03" should be started with 1 replica - And The service "jempi-ratel" should be started with 1 replica - And The service "jempi-alpha-01" should be started with 1 replica - And The service "jempi-alpha-02" should be started with 1 replica - And The service "jempi-alpha-03" should be started with 1 replica - And The service "jempi-async-receiver" should be started with 1 replica - And The service "jempi-sync-receiver" should be started with 1 replica - And The service "jempi-pre-processor" should be started with 1 replica - And The service "jempi-controller" should be started with 1 replica - And The service "jempi-em-calculator" should be started with 1 replica - And The service "jempi-linker" should be started with 1 replica - And The service "jempi-kafdrop" should be started with 1 replica - And The service "jempi-zero-01" should be started with 1 replica - And The service "jempi-api" should be started with 1 replica - And There should be 20 services - And There should be 9 volumes + Scenario: Init Client Registry JemMPI + Given I use parameters "package init -n=client-registry-jempi --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "jempi-kafka-01" should be started with 1 replica + And The service "jempi-kafka-02" should be started with 1 replica + And The service "jempi-kafka-03" should be started with 1 replica + And The service "jempi-ratel" should be started with 1 replica + And The service "jempi-alpha-01" should be started with 1 replica + And The service "jempi-alpha-02" should be started with 1 replica + And The service "jempi-alpha-03" should be started with 1 replica + And The service "jempi-async-receiver" should be started with 1 replica + And The service "jempi-sync-receiver" should be started with 1 replica + And The service "jempi-pre-processor" should be started with 1 replica + And The service "jempi-controller" should be started with 1 replica + And The service "jempi-em-calculator" should be started with 1 replica + And The service "jempi-linker" should be started with 1 replica + And The service "jempi-kafdrop" should be started with 1 replica + And The service "jempi-zero-01" should be started with 1 replica + And The service "jempi-api" should be started with 1 replica + And There should be 20 services + And There should be 9 volumes - Scenario: Destroy Openhim and its dependent packages - Given I use parameters "destroy interoperability-layer-openhim client-registry-jempi openhim-mapping-mediator --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "mongo-1" should be removed - And The service "openhim-core" should be removed - And The service "openhim-console" should be removed - And The service "jempi-kafka-01" should be removed - And The service "jempi-kafka-02" should be removed - And The service "jempi-kafka-03" should be removed - And The service "jempi-ratel" should be removed - And The service "jempi-alpha-01" should be removed - And The service "jempi-alpha-02" should be removed - And The service "jempi-alpha-03" should be removed - And The service "jempi-async-receiver" should be removed - And The service "jempi-sync-receiver" should be removed - And The service "jempi-pre-processor" should be removed - And The service "jempi-controller" should be removed - And The service "jempi-em-calculator" should be removed - And The service "jempi-linker" should be removed - And The service "jempi-kafdrop" should be removed - And The service "jempi-zero-01" should be removed - And The service "jempi-api" should be removed - And The service "openhim-mapping-mediator" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Openhim and its dependent packages + Given I use parameters "package destroy -n=interoperability-layer-openhim,client-registry-jempi,openhim-mapping-mediator --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "mongo-1" should be removed + And The service "openhim-core" should be removed + And The service "openhim-console" should be removed + And The service "jempi-kafka-01" should be removed + And The service "jempi-kafka-02" should be removed + And The service "jempi-kafka-03" should be removed + And The service "jempi-ratel" should be removed + And The service "jempi-alpha-01" should be removed + And The service "jempi-alpha-02" should be removed + And The service "jempi-alpha-03" should be removed + And The service "jempi-async-receiver" should be removed + And The service "jempi-sync-receiver" should be removed + And The service "jempi-pre-processor" should be removed + And The service "jempi-controller" should be removed + And The service "jempi-em-calculator" should be removed + And The service "jempi-linker" should be removed + And The service "jempi-kafdrop" should be removed + And The service "jempi-zero-01" should be removed + And The service "jempi-api" should be removed + And The service "openhim-mapping-mediator" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/reverse-proxy.feature b/test/cucumber/features/single-mode/reverse-proxy.feature index cb9b0644..2881eef4 100644 --- a/test/cucumber/features/single-mode/reverse-proxy.feature +++ b/test/cucumber/features/single-mode/reverse-proxy.feature @@ -1,16 +1,16 @@ Feature: Reverse Proxy Nginx? Does the Reverse Proxy Nginx package work as expected - Scenario: Init Reverse Proxy Nginx - Given I use parameters "init reverse-proxy-nginx --env-file=.env.local" - When I launch the platform with params - Then The service "reverse-proxy-nginx" should be started with 1 replica - And There should be 1 service + Scenario: Init Reverse Proxy Nginx + Given I use parameters "package init -n=reverse-proxy-nginx --env-file=.env.local" + When I launch the platform with params + Then The service "reverse-proxy-nginx" should be started with 1 replica + And There should be 1 service - Scenario: Destroy Reverse Proxy Nginx - Given I use parameters "destroy reverse-proxy-nginx --env-file=.env.local" - When I launch the platform with params - Then The service "reverse-proxy-nginx" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Reverse Proxy Nginx + Given I use parameters "package destroy -n=reverse-proxy-nginx --env-file=.env.local" + When I launch the platform with params + Then The service "reverse-proxy-nginx" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/santempi.feature b/test/cucumber/features/single-mode/santempi.feature index 745bc541..0a605f13 100644 --- a/test/cucumber/features/single-mode/santempi.feature +++ b/test/cucumber/features/single-mode/santempi.feature @@ -1,22 +1,21 @@ Feature: Client Registry JeMPI? Does the Client Registry JeMPI package work as expected - Scenario: Init Client Registry JeMPI - Given I use parameters "init client-registry-santempi --dev --env-file=.env.local" - When I launch the platform with params - Then The service "santempi-psql-1" should be started with 1 replica - And The service "santedb-www" should be started with 1 replica - And The service "santedb-mpi" should be started with 1 replica - And There should be 3 services - And There should be 2 volumes - - Scenario: Destroy Client Registry JeMPI - Given I use parameters "destroy client-registry-santempi --dev --env-file=.env.local" - When I launch the platform with params - Then The service "santempi-psql-1" should be removed - And The service "santedb-www" should be removed - And The service "santedb-mpi" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Init Client Registry JeMPI + Given I use parameters "package init -n=client-registry-santempi --dev --env-file=.env.local" + When I launch the platform with params + Then The service "santempi-psql-1" should be started with 1 replica + And The service "santedb-www" should be started with 1 replica + And The service "santedb-mpi" should be started with 1 replica + And There should be 3 services + And There should be 2 volumes + Scenario: Destroy Client Registry JeMPI + Given I use parameters "package destroy -n=client-registry-santempi --dev --env-file=.env.local" + When I launch the platform with params + Then The service "santempi-psql-1" should be removed + And The service "santedb-www" should be removed + And The service "santedb-mpi" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/features/single-mode/superset.feature b/test/cucumber/features/single-mode/superset.feature index 1e805931..b0063f77 100644 --- a/test/cucumber/features/single-mode/superset.feature +++ b/test/cucumber/features/single-mode/superset.feature @@ -1,19 +1,19 @@ Feature: Dashboard Visualiser Superset? Does the Dashboard Visualiser Superset package work as expected - Scenario: Init Dashboard Visualiser Superset - Given I use parameters "init dashboard-visualiser-superset --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "dashboard-visualiser-superset" should be started with 1 replica - And The service "superset-config-importer" should be removed - And The service "ddashboard-visualiser-superset" should have healthy containers - And There should be 1 service - And There should be 3 volumes + Scenario: Init Dashboard Visualiser Superset + Given I use parameters "package init -n=dashboard-visualiser-superset --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "dashboard-visualiser-superset" should be started with 1 replica + And The service "superset-config-importer" should be removed + And The service "ddashboard-visualiser-superset" should have healthy containers + And There should be 1 service + And There should be 3 volumes - Scenario: Destroy Dashboard Visualiser Superset - Given I use parameters "destroy dashboard-visualiser-superset --only --dev --env-file=.env.local" - When I launch the platform with params - Then The service "dashboard-visualiser-superset" should be removed - And There should be 0 service - And There should be 0 volume - And There should be 0 config + Scenario: Destroy Dashboard Visualiser Superset + Given I use parameters "package destroy -n=dashboard-visualiser-superset --only --dev --env-file=.env.local" + When I launch the platform with params + Then The service "dashboard-visualiser-superset" should be removed + And There should be 0 service + And There should be 0 volume + And There should be 0 config diff --git a/test/cucumber/util.js b/test/cucumber/util.js index c3ce41c4..8880ce76 100644 --- a/test/cucumber/util.js +++ b/test/cucumber/util.js @@ -6,7 +6,7 @@ const { exec } = require('child_process'); const execPromise = util.promisify(exec); async function launchPlatformWithParams(params) { - const { stdout, stderr } = await execPromise(`cd ../../ && ./platform-linux ${params}`); + const { stdout, stderr } = await execPromise(`cd ../../ && ./instant-linux ${params}`); console.log('\n', stdout); if (stderr) console.log('stderr', stderr); }