Minor bugs fix in ORU-app simulator
Add docker-compose file for oru-app
Signed-off-by: ecaiyanlinux <martin.c.yan@est.tech>
Change-Id: Ifead8b18fe103ef64cba4e4d0370880802c2b11d
Issue-ID: NONRTRIC-727
diff --git a/test/usecases/oruclosedlooprecovery/goversion/Dockerfile b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile
index 2462c44..97beddd 100644
--- a/test/usecases/oruclosedlooprecovery/goversion/Dockerfile
+++ b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile
@@ -22,7 +22,7 @@
## Copy from "build" stage
COPY --from=build /docker-oruclosedloop .
-
+COPY --from=build /app/security/ ./security/
COPY --from=build /app/o-ru-to-o-du-map.csv .
USER nonroot:nonroot
diff --git a/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-ics b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-ics
new file mode 100644
index 0000000..9c299f1
--- /dev/null
+++ b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-ics
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+##
+## Build
+##
+FROM golang:1.17.1-bullseye AS build
+
+WORKDIR /app
+
+COPY . ./
+
+RUN go build -o /ics ./stub/ics/
+
+##
+## Deploy
+##
+FROM gcr.io/distroless/base-debian10
+
+WORKDIR /
+
+## Copy from "build" stage
+COPY --from=build /ics .
+
+USER nonroot:nonroot
+
+ENTRYPOINT ["/ics"]
diff --git a/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-producer b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-producer
new file mode 100644
index 0000000..8693bbb
--- /dev/null
+++ b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-producer
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+##
+## Build
+##
+FROM golang:1.17.1-bullseye AS build
+
+WORKDIR /app
+
+COPY . ./
+
+RUN go build -o /producer ./stub/producer/
+
+##
+## Deploy
+##
+FROM gcr.io/distroless/base-debian10
+
+WORKDIR /
+
+## Copy from "build" stage
+COPY --from=build /producer .
+
+USER nonroot:nonroot
+
+ENTRYPOINT ["/producer"]
diff --git a/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-sdnr b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-sdnr
new file mode 100644
index 0000000..49cb444
--- /dev/null
+++ b/test/usecases/oruclosedlooprecovery/goversion/Dockerfile-sdnr
@@ -0,0 +1,40 @@
+# Copyright (C) 2022 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+
+##
+## Build
+##
+FROM golang:1.17.1-bullseye AS build
+
+WORKDIR /app
+
+COPY . ./
+
+RUN go build -o /sdnrstub ./stub/sdnr/
+
+##
+## Deploy
+##
+FROM gcr.io/distroless/base-debian10
+
+WORKDIR /
+
+## Copy from "build" stage
+COPY --from=build /sdnrstub .
+
+USER nonroot:nonroot
+
+ENTRYPOINT ["/sdnrstub"]
diff --git a/test/usecases/oruclosedlooprecovery/goversion/README.md b/test/usecases/oruclosedlooprecovery/goversion/README.md
index 06c44b2..15c5336 100644
--- a/test/usecases/oruclosedlooprecovery/goversion/README.md
+++ b/test/usecases/oruclosedlooprecovery/goversion/README.md
@@ -11,7 +11,7 @@
>- CONSUMER_CERT_PATH **Required**. The path to the certificate to use for https. Defaults to `security/producer.crt`
>- CONSUMER_KEY_PATH **Required**. The path to the key to the certificate to use for https. Defaults to `security/producer.key`
>- INFO_COORD_ADDR Optional. The address of the Information Coordinator. Defaults to `http://enrichmentservice:8083`.
->- SDNR_ADDRESS Optional. The address for SDNR. Defaults to `http://localhost:3904`.
+>- SDNR_ADDR Optional. The address for SDNR. Defaults to `http://localhost:3904`.
>- SDNR_USER Optional. The user for the SDNR. Defaults to `admin`.
>- SDNR_PASSWORD Optional. The password for the SDNR user. Defaults to `Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U`.
>- ORU_TO_ODU_MAP_FILE Optional. The file containing the mapping from O-RU ID to O-DU ID. Defaults to `o-ru-to-o-du-map.csv`.
diff --git a/test/usecases/oruclosedlooprecovery/goversion/docker-compose.yaml b/test/usecases/oruclosedlooprecovery/goversion/docker-compose.yaml
new file mode 100644
index 0000000..ef5340b
--- /dev/null
+++ b/test/usecases/oruclosedlooprecovery/goversion/docker-compose.yaml
@@ -0,0 +1,82 @@
+# Copyright (C) 2022 Nordix Foundation. All rights reserved.
+# ========================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=================================================
+#
+version: '3.5'
+
+networks:
+ default:
+ driver: bridge
+ name: nonrtric-docker-net
+
+services:
+ ics:
+ build:
+ context: .
+ dockerfile: Dockerfile-ics
+ container_name: ics-sim
+ networks:
+ default:
+ aliases:
+ - ics-sim
+ ports:
+ - 8083:8083
+ environment:
+ - PRODUCER_ADDR=http://producer-sim:8085/
+
+ sdnr-simulator:
+ build:
+ context: .
+ dockerfile: Dockerfile-sdnr
+ container_name: sdnr-sim
+ networks:
+ default:
+ aliases:
+ - sdnr-sim
+ ports:
+ - 3904:3904
+
+ producer:
+ build:
+ context: .
+ dockerfile: Dockerfile-producer
+ container_name: producer-sim
+ networks:
+ default:
+ aliases:
+ - producer-sim
+ ports:
+ - 8085:8085
+ environment:
+ - ORU_ADDR=http://oru-app:8086
+
+ oru-app:
+ build:
+ context: .
+ dockerfile: Dockerfile
+ container_name: oru-app
+ networks:
+ default:
+ aliases:
+ - oru-app
+ ports:
+ - 8086:8086
+ environment:
+ - CONSUMER_HOST=http://producer-sim
+ - CONSUMER_PORT=8086
+ - INFO_COORD_ADDR=http://ics-sim:8083
+ - SDNR_ADDR=http://sdnr-sim:3904
+ - CONSUMER_CERT_PATH=security/consumer.crt
+ - CONSUMER_KEY_PATH=security/consumer.key
+ - LOG_LEVEL=Debug
\ No newline at end of file
diff --git a/test/usecases/oruclosedlooprecovery/goversion/stub/ics/ics.go b/test/usecases/oruclosedlooprecovery/goversion/stub/ics/ics.go
index 83170e0..ee979fd 100644
--- a/test/usecases/oruclosedlooprecovery/goversion/stub/ics/ics.go
+++ b/test/usecases/oruclosedlooprecovery/goversion/stub/ics/ics.go
@@ -24,6 +24,7 @@
"flag"
"fmt"
"net/http"
+ "os"
"time"
"github.com/gorilla/mux"
@@ -43,13 +44,22 @@
fmt.Println(http.ListenAndServe(fmt.Sprintf(":%v", *port), r))
}
+func getEnv(key string, defaultVal string) string {
+ if value, exists := os.LookupEnv(key); exists {
+ return value
+ }
+
+ return defaultVal
+}
+
func handleCalls(w http.ResponseWriter, r *http.Request) {
+ producer_addr := getEnv("PRODUCER_ADDR", "http://producer-sim:8085/")
vars := mux.Vars(r)
id, ok := vars["jobId"]
if ok {
fmt.Println(r.Method, " of job ", id)
if r.Method == http.MethodPut {
- req, _ := http.NewRequest(http.MethodPut, "http://localhost:8085/create/"+id, nil)
+ req, _ := http.NewRequest(http.MethodPut, producer_addr+"create/"+id, nil)
r, err := client.Do(req)
if err != nil {
fmt.Println("Failed to create job in producer ", err)
@@ -57,7 +67,7 @@
}
fmt.Println("Created job in producer ", r.Status)
} else {
- req, _ := http.NewRequest(http.MethodDelete, "http://localhost:8085/delete/"+id, nil)
+ req, _ := http.NewRequest(http.MethodDelete, producer_addr+"delete/"+id, nil)
r, err := client.Do(req)
if err != nil {
fmt.Println("Failed to delete job in producer ", err)
diff --git a/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go b/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go
index e219e19..7994714 100644
--- a/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go
+++ b/test/usecases/oruclosedlooprecovery/goversion/stub/producer/producerstub.go
@@ -25,6 +25,7 @@
"encoding/json"
"fmt"
"net/http"
+ "os"
"time"
"github.com/gorilla/mux"
@@ -67,6 +68,14 @@
started = false
}
+func getEnv(key string, defaultVal string) string {
+ if value, exists := os.LookupEnv(key); exists {
+ return value
+ }
+
+ return defaultVal
+}
+
func startPushingMessages() {
message := ves.FaultMessage{
Event: ves.Event{
@@ -99,7 +108,8 @@
m, _ := json.Marshal(message)
msgToSend, _ := json.Marshal([]string{string(m)})
- req, _ := http.NewRequest(http.MethodPost, "http://localhost:40935", bytes.NewBuffer(msgToSend))
+ oru_addr := getEnv("ORU_ADDR", "http://oru-app:8086")
+ req, _ := http.NewRequest(http.MethodPost, oru_addr, bytes.NewBuffer(msgToSend))
req.Header.Set("Content-Type", "application/json; charset=utf-8")
r, err := client.Do(req)