From 88a8475a57da1e7abd5b7b55c205b3e39a0bf166 Mon Sep 17 00:00:00 2001
From: Neil-Jocelyn Schark <neil.schark@h-da.de>
Date: Tue, 17 Sep 2024 14:32:31 +0000
Subject: [PATCH] wip

---
 Makefile                           |  12 ++-
 longevity-tests/docker-compose.yml | 128 +++++++++++++++++++++++++++++
 longevity-tests/run-curl.sh        |  31 +++++++
 3 files changed, 170 insertions(+), 1 deletion(-)
 create mode 100644 longevity-tests/docker-compose.yml
 create mode 100755 longevity-tests/run-curl.sh

diff --git a/Makefile b/Makefile
index d74cc804..4d554001 100644
--- a/Makefile
+++ b/Makefile
@@ -88,7 +88,7 @@ compose-up: generate-gokms-certs build-images install-gosdnc
 	docker compose down
 	docker compose up -d
 	echo "Will add devices, can take a while"
-	./config/controller/add_devices.sh
+	./config/controller/add_devices.s
 
 compose-down:
 	docker compose down
@@ -116,6 +116,16 @@ integration-test-debug-compose-up: generate-integration-test-certs build-images
 integration-test-debug-compose-down:
 	docker compose -f integration-tests/docker-compose.yml -f integration-tests/docker-compose.override.debug.yml down
 
+
+longevity-test: generate-gokms-certs build-images install-gosdnc
+	docker compose -f longevity-tests/docker-compose.yml down
+	docker compose -f longevity-tests/docker-compose.yml up -d
+	echo "Will add devices, can take a while"
+	./config/controller/add_devices.sh
+
+longevity-test-down:
+	docker compose -f longevity-tests/docker-compose.yml down
+
 generate-certs: generate-root-ca generate-gokms-certs generate-integration-test-certs
 
 generate-root-ca: pre
diff --git a/longevity-tests/docker-compose.yml b/longevity-tests/docker-compose.yml
new file mode 100644
index 00000000..b23c3a07
--- /dev/null
+++ b/longevity-tests/docker-compose.yml
@@ -0,0 +1,128 @@
+services:
+  kms01:
+    image: gokms
+    command: ["--log", "debug", "--kms_config", "/tmp/kms/config/kms01.yaml"]
+    volumes:
+        - ../config/goKMS/example01.yaml:/tmp/kms/config/kms01.yaml
+        - ../artifacts/ssl:/ssl
+    ports:
+        - "127.0.0.1:4401:1337"
+        - "127.0.0.1:9696:9696"
+
+  kms02:
+    image: gokms
+    command: ["--log", "debug", "--kms_config", "/tmp/kms/config/kms02.yaml"]
+    volumes:
+        - ../config/goKMS/example02.yaml:/tmp/kms/config/kms02.yaml
+        - ../artifacts/ssl:/ssl
+    ports:
+        - "127.0.0.1:4402:1337"
+
+  kms03:
+    image: gokms
+    command: ["--log", "debug", "--kms_config", "/tmp/kms/config/kms03.yaml"]
+    volumes:
+        - ../config/goKMS/example03.yaml:/tmp/kms/config/kms03.yaml
+        - ../artifacts/ssl:/ssl
+    ports:
+        - "127.0.0.1:4403:1337"
+
+  kms04:
+    image: gokms
+    command: ["--log", "debug", "--kms_config", "/tmp/kms/config/kms04.yaml"]
+    volumes:
+        - ../config/goKMS/example04.yaml:/tmp/kms/config/kms04.yaml
+        - ../artifacts/ssl:/ssl
+    ports:
+        - "127.0.0.1:4404:1337"
+        - "127.0.0.1:9697:9696"
+
+  qlayer01:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer01.yaml"]
+    volumes:
+        - ../config/quantumlayer/example01.yaml:/tmp/quantumlayer/config/quantumlayer01.yaml
+
+  qlayer02:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer02.yaml"]
+    volumes:
+        - ../config/quantumlayer/example02.yaml:/tmp/quantumlayer/config/quantumlayer02.yaml
+
+  qlayer03:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer03.yaml"]
+    volumes:
+        - ../config/quantumlayer/example03.yaml:/tmp/quantumlayer/config/quantumlayer03.yaml
+
+  qlayer04:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer04.yaml"]
+    volumes:
+        - ../config/quantumlayer/example04.yaml:/tmp/quantumlayer/config/quantumlayer04.yaml
+
+  qlayer05:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer05.yaml"]
+    volumes:
+        - ../config/quantumlayer/example05.yaml:/tmp/quantumlayer/config/quantumlayer05.yaml
+
+  qlayer06:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer06.yaml"]
+    volumes:
+        - ../config/quantumlayer/example06.yaml:/tmp/quantumlayer/config/quantumlayer06.yaml
+
+  qlayer07:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer07.yaml"]
+    volumes:
+        - ../config/quantumlayer/example07.yaml:/tmp/quantumlayer/config/quantumlayer07.yaml
+
+  qlayer08:
+    image: quantumlayer
+    command: ["--config", "/tmp/quantumlayer/config/quantumlayer08.yaml"]
+    volumes:
+        - ../config/quantumlayer/example08.yaml:/tmp/quantumlayer/config/quantumlayer08.yaml
+
+  akms-receiver01:
+    image: akms-simulator
+
+  akms-receiver02:
+    image: akms-simulator
+
+  qkdn-controller:
+    image: registry.code.fbi.h-da.de/demoquandt/qkdn-controller:qkdn-main
+    volumes:
+      - ../config/controller/qkdn-gosdn.toml:/app/configs/qkdn-gosdn.toml
+      - ../config/controller/gNMISubscriptions.txt:/app/configs/gNMISubscriptions.txt
+    command: --config ./configs/qkdn-gosdn.toml
+    ports:
+      - "127.0.0.1:55055:55055"
+    environment:
+      GOSDN_ADMIN_PASSWORD: TestPassword
+
+  gosdnc:
+    image: registry.code.fbi.h-da.de/demoquandt/qkdn-controller/gosdnc:qkdn-main
+    volumes:
+      - ../config/controller/add_devices.sh:/scripts/add_devices.sh
+    entrypoint: ["/scripts/add_devices.sh"]
+
+  plugin-registry:
+    image: registry.code.fbi.h-da.de/demoquandt/qkdn-controller/plugin-registry:qkdn-main
+
+  mongo:
+    image: mongo:7
+    environment:
+      MONGO_INITDB_ROOT_USERNAME: root
+      MONGO_INITDB_ROOT_PASSWORD: example
+
+  rabbitmq:
+    image: rabbitmq:3-management
+
+  routing-app:
+    image: registry.code.fbi.h-da.de/demoquandt/qkdn-controller/routing-app:qkdn-main
+    entrypoint: ["./start_ra_sleep.sh"]
+    volumes:
+      - ../config/controller/start_ra_sleep.sh:/app/start_ra_sleep.sh
+      - ../config/controller/routing-config.yaml:/new/routing-config.yaml
diff --git a/longevity-tests/run-curl.sh b/longevity-tests/run-curl.sh
new file mode 100755
index 00000000..349756a4
--- /dev/null
+++ b/longevity-tests/run-curl.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+kms1AkmsURL="127.0.0.1:9696"
+
+
+# Loop for ever and increase a requestId variable
+requestId=0
+while true; do
+    requestId=$((requestId+1))
+    echo "requestId: $requestId"
+    url="https://${kms1AkmsURL}/api/v1/keys/ksa_key_req"
+    data=$(cat <<EOF
+    {
+        "ReceivingCKMSID": "5e41c291-6121-4335-84f6-41e04b8bdaa2",
+        "RequestID": "${requestId}",
+        "KeyProperties": {
+            "Number": 1,
+            "KeyLength": 256,
+            "Timeout": 20,
+            "TTL": 24
+        }
+    }
+EOF
+    )
+
+    curl -X POST "$url" \
+             -H "Content-Type: application/json" \
+             -d "$data"
+
+    sleep 1
+done
-- 
GitLab