Fix simulator docker file and startup script 25/129725/1
authorliamfallon <liam.fallon@est.tech>
Wed, 29 Jun 2022 13:04:09 +0000 (14:04 +0100)
committerliamfallon <liam.fallon@est.tech>
Thu, 30 Jun 2022 13:07:23 +0000 (14:07 +0100)
The nmodels-simulator startup script is updated to:
- enable logging
- allow overriding of keystore and truststore
- allow overriding of configuration parameters
- Follow the same conventions as other docker files and startup scripts
- Add labelling
- Provide default configuration

Issue-ID: POLICY-4233
Change-Id: I6c25dc77c510a52ec298883f2534428807b1c253
Signed-off-by: liamfallon <liam.fallon@est.tech>
models-sim/packages/models-simulator-docker/src/main/docker/Dockerfile
models-sim/packages/models-simulator-docker/src/main/docker/simulators.sh
models-sim/packages/models-simulator-tarball/src/main/assembly.xml
models-sim/packages/models-simulator-tarball/src/main/resources/etc/simParameters.json [new file with mode: 0644]

index 50f84d9..c5832bf 100644 (file)
 # ============LICENSE_END=========================================================
 #
 
-#
-# Docker file to build an image that runs the simulators
-#
-
-FROM onap/policy-jre-alpine:2.3.1
+FROM onap/policy-jre-alpine:2.4.3
 
 LABEL maintainer="Policy Team"
 LABEL org.opencontainers.image.title="Policy Models Simulator"
@@ -40,30 +36,22 @@ LABEL org.opencontainers.image.revision="${git.commit.id.abbrev}"
 
 ARG POLICY_LOGS=/var/log/onap/policy/simulators
 
-ENV POLICY_HOME /opt/app/policy
-ENV POLICY_LOGS ${POLICY_LOGS}
+ENV POLICY_LOGS=$POLICY_LOGS
+ENV POLICY_HOME=$POLICY_HOME/simulators
 
-# Create DMaaP simulator user and group
-# Add simulator-specific directories and set ownership as the simulator user
-RUN mkdir -p ${POLICY_HOME}/simulators \
-    && mkdir -p ${POLICY_HOME}/simulators/bin \
-    && mkdir -p ${POLICY_LOGS} \
-    && mkdir /packages
+RUN mkdir -p $POLICY_HOME $POLICY_LOGS $POLICY_HOME/bin && \
+    chown  -R policy:policy $POLICY_HOME $POLICY_LOGS && \
+    mkdir /packages
+COPY /maven/lib/models-simulator.tar.gz /packages
 
-# Unpack the tarball
-COPY /maven/* /packages
-RUN tar xvfz /packages/models-simulator.tar.gz --directory ${POLICY_HOME}/simulators \
+RUN tar xvfz /packages/models-simulator.tar.gz --directory ${POLICY_HOME} \
     && rm /packages/models-simulator.tar.gz
 
-# Ensure everything has the correct permissions
-# Copy scripts simulator user area
-COPY simulators.sh ${POLICY_HOME}/simulators/bin
-RUN find /opt/app -type d -perm 755 \
-    && find /opt/app -type f -perm 644 \
-    && chmod 755 ${POLICY_HOME}/simulators/bin/* \
-    && chown -R policy:policy $POLICY_HOME $POLICY_LOGS
+WORKDIR $POLICY_HOME
+COPY simulators.sh bin/.
 
-USER policy:policy
+RUN chown -R policy:policy * && chmod 755 bin/*.sh && chown -R policy:policy /app
 
-ENV PATH ${POLICY_HOME}/simulators/bin:$PATH
-ENTRYPOINT [ "simulators.sh" ]
+USER policy
+WORKDIR $POLICY_HOME/bin
+ENTRYPOINT [ "./simulators.sh" ]
index fdf6805..3d382a8 100644 (file)
 # ============LICENSE_END=========================================================
 #
 
-if [ -z "$SIMULATOR_HOME" ]
-then
-    SIMULATOR_HOME=${POLICY_HOME}/simulators
+KEYSTORE="${KEYSTORE:-$POLICY_HOME/etc/ssl/policy-keystore}"
+TRUSTSTORE="${TRUSTSTORE:-$POLICY_HOME/etc/ssl/policy-truststore}"
+KEYSTORE_PASSWD="${KEYSTORE_PASSWD:-Pol1cy_0nap}"
+TRUSTSTORE_PASSWD="${TRUSTSTORE_PASSWD:-Pol1cy_0nap}"
+
+if [ "$#" -ge 1 ]; then
+    CONFIG_FILE=$1
+else
+    CONFIG_FILE=${CONFIG_FILE}
+fi
+
+if [ -z "$CONFIG_FILE" ]; then
+    CONFIG_FILE="${POLICY_HOME}/etc/simParameters.json"
 fi
 
-KEYSTORE="${SIMULATOR_HOME}/etc/ssl/policy-keystore"
-KEYSTORE_PASSWD="Pol1cy_0nap"
-TRUSTSTORE="${SIMULATOR_HOME}/etc/ssl/policy-truststore"
-TRUSTSTORE_PASSWD="Pol1cy_0nap"
+echo "Policy simulator config file: $CONFIG_FILE"
+
+if [ -f "${POLICY_HOME}/etc/mounted/policy-truststore" ]; then
+    echo "overriding policy-truststore"
+    cp -f "${POLICY_HOME}"/etc/mounted/policy-truststore "${TRUSTSTORE}"
+fi
+
+if [ -f "${POLICY_HOME}/etc/mounted/policy-keystore" ]; then
+    echo "overriding policy-keystore"
+    cp -f "${POLICY_HOME}"/etc/mounted/policy-keystore "${KEYSTORE}"
+fi
+
+if [ -f "${POLICY_HOME}/etc/mounted/logback.xml" ]; then
+    echo "overriding logback.xml"
+    cp -f "${POLICY_HOME}"/etc/mounted/logback.xml "${POLICY_HOME}"/etc/
+fi
 
 ${JAVA_HOME}/bin/java \
-    -cp "${SIMULATOR_HOME}/etc:${SIMULATOR_HOME}/lib/*" \
+    -cp "${POLICY_HOME}/etc:${POLICY_HOME}/lib/*" \
+    -Dlogging.config="${POLICY_HOME}/etc/logback.xml" \
     -Djavax.net.ssl.keyStore="${KEYSTORE}" \
     -Djavax.net.ssl.keyStorePassword="${KEYSTORE_PASSWD}" \
     -Djavax.net.ssl.trustStore="${TRUSTSTORE}" \
     -Djavax.net.ssl.trustStorePassword="${TRUSTSTORE_PASSWD}" \
-    org.onap.policy.models.simulators.Main \
-        ${SIMULATOR_HOME}/etc/mounted/simParameters.json
+    org.onap.policy.models.simulators.Main ${CONFIG_FILE}
index 47395e1..430728b 100644 (file)
@@ -51,6 +51,7 @@
             </directory>
             <includes>
                 <include>*.xml</include>
+                <include>*.json</include>
             </includes>
             <outputDirectory>etc</outputDirectory>
             <lineEnding>unix</lineEnding>
diff --git a/models-sim/packages/models-simulator-tarball/src/main/resources/etc/simParameters.json b/models-sim/packages/models-simulator-tarball/src/main/resources/etc/simParameters.json
new file mode 100644 (file)
index 0000000..41fc905
--- /dev/null
@@ -0,0 +1,110 @@
+{
+    "dmaapProvider": {
+        "name": "DMaaP simulator",
+        "topicSweepSec": 300
+    },
+    "restServers": [
+        {
+            "name": "DMaaP simulator",
+            "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1",
+            "host": "0.0.0.0",
+            "port": 3904,
+            "https": false
+        },
+        {
+            "name": "A&AI simulator",
+            "providerClass": "org.onap.policy.simulators.AaiSimulatorJaxRs",
+            "host": "0.0.0.0",
+            "port": 6666,
+            "https": false,
+            "userName": "policy@policy.onap.org",
+            "password": "demo123456!",
+            "resourceLocation": "/opt/app/policy/simulators/etc/mounted/aairesponse/"
+        },
+        {
+            "name": "SDNC simulator",
+            "providerClass": "org.onap.policy.simulators.SdncSimulatorJaxRs",
+            "host": "0.0.0.0",
+            "port": 6668,
+            "https": false
+        },
+        {
+            "name": "SO simulator",
+            "providerClass": "org.onap.policy.simulators.SoSimulatorJaxRs",
+            "host": "0.0.0.0",
+            "port": 6669,
+            "https": false,
+            "userName": "InfraPortalClient",
+            "password": "password1$"
+        },
+        {
+            "name": "VFC simulator",
+            "providerClass": "org.onap.policy.simulators.VfcSimulatorJaxRs",
+            "host": "0.0.0.0",
+            "port": 6670,
+            "https": false
+        }
+    ],
+    "topicSinks": [
+        {
+            "topic": "APPC-CL",
+            "servers": ["${HOST_NAME}"],
+            "topicCommInfrastructure": "DMAAP",
+            "useHttps": false,
+            "apiKey": "some-key",
+            "apiSecret": "some-secret"
+        },
+        {
+            "topic": "APPC-LCM-WRITE",
+            "servers": ["${HOST_NAME}"],
+            "topicCommInfrastructure": "DMAAP",
+            "useHttps": false,
+            "apiKey": "some-key",
+            "apiSecret": "some-secret"
+        }
+    ],
+    "topicSources": [
+        {
+            "topic": "APPC-CL",
+            "servers": ["${HOST_NAME}"],
+            "topicCommInfrastructure": "DMAAP",
+            "useHttps": false,
+            "apiKey": "some-key",
+            "apiSecret": "some-secret"
+        },
+        {
+            "topic": "APPC-LCM-READ",
+            "servers": ["${HOST_NAME}"],
+            "topicCommInfrastructure": "DMAAP",
+            "useHttps": false,
+            "apiKey": "some-key",
+            "apiSecret": "some-secret"
+        }
+    ],
+    "topicServers": [
+        {
+            "name": "APPC Legacy simulator",
+            "providerClass": "org.onap.policy.simulators.AppcLegacyTopicServer",
+            "sink": "APPC-CL",
+            "source": "APPC-CL"
+        },
+        {
+            "name": "APPC-LCM simulator",
+            "providerClass": "org.onap.policy.simulators.AppcLcmTopicServer",
+            "sink": "APPC-LCM-WRITE",
+            "source": "APPC-LCM-READ"
+        }
+    ],
+    "grpcServer": {
+        "name": "CDS simulator",
+        "providerClass": "org.onap.policy.simulators.CdsSimulator",
+        "host": "0.0.0.0",
+        "port": 6680,
+        "timeout": 30,
+        "username": "ccsdkapps",
+        "password": "ccsdkapps",
+        "resourceLocation": "/opt/app/policy/simulators/etc/mounted/cdsresponse/",
+        "successRepeatCount": 0,
+        "requestedResponseDelayMs": 0
+    }
+}