Use configMap instead of Consul to configure hv-ves 64/123764/2
authorJoanna Jeremicz <joanna.jeremicz@nokia.com>
Wed, 1 Sep 2021 14:03:41 +0000 (16:03 +0200)
committerJoanna Jeremicz <joanna.jeremicz@nokia.com>
Thu, 2 Sep 2021 10:44:39 +0000 (12:44 +0200)
Issue-ID: DCAEGEN2-2718
Signed-off-by: Joanna Jeremicz <joanna.jeremicz@nokia.com>
Change-Id: I58a5639e7bc224afb9e30ae4ea97518faa3bd42f

robot/assets/dcae/hvves_test_config.yaml [new file with mode: 0644]
robot/resources/dcae/hvves.robot
robot/testsuites/hvves-ci.robot
robot/testsuites/hvves.robot

diff --git a/robot/assets/dcae/hvves_test_config.yaml b/robot/assets/dcae/hvves_test_config.yaml
new file mode 100644 (file)
index 0000000..8e0733c
--- /dev/null
@@ -0,0 +1,20 @@
+data:
+  application_config.yaml: |
+    security.sslDisable: false
+    logLevel: INFO
+    security.keys.trustStoreFile: /tmp/ca.p12
+    server.listenPort: 6061
+    server.idleTimeoutSec: 300
+    cbs.requestIntervalSec: 5
+    streams_publishes:
+      perf3gpp:
+        type: kafka
+        aaf_credentials:
+          username: admin
+          password: admin_secret
+        kafka_info:
+          bootstrap_servers: message-router-kafka:9092
+          topic_name: HV_VES_PERF3GPP_SSL
+    security.keys.keyStoreFile: /tmp/server.p12
+    security.keys.trustStorePasswordFile: /dev/null
+    security.keys.keyStorePasswordFile: /dev/null
index ac43bae..e8a0e6e 100644 (file)
@@ -8,16 +8,27 @@ Library    ONAPLibrary.Utilities
 Library    String
 Library    ONAPLibrary.Kafka
 Resource    ../mr_interface.robot
-Resource    ../consul_interface.robot
 
 *** Variables ***
 ${HVVES_MESSAGE}    \xaa\x01\x00\x00\x00\x00\x00\x01\x00\x00\x01'\n\x94\x02\n\x0esample-version\x12\x08perf3gpp\x18\x01 \x01*\nperf3GPP222\x11sample-event-name:\x11sample-event-type@\xf1\x9a\xfd\xdd\x05H\xf1\x9a\xfd\xdd\x05R\x15sample-nf-naming-codeZ\x16sample-nfc-naming-codeb\x15sample-nf-vendor-namej\x1asample-reporting-entity-idr\x1csample-reporting-entity-namez\x10sample-source-id\x82\x01\x0fsample-xnf-name\x8a\x01\tUTC+02:00\x92\x01\x057.0.2\x12\x0etest test test
-${HVVES_CONFIG_SSL}    {"security.sslDisable": false, "logLevel": "INFO", "security.keys.trustStoreFile": "/tmp/ca.p12", "server.listenPort": 6061, "server.idleTimeoutSec": 300, "cbs.requestIntervalSec": 5, "streams_publishes": {"perf3gpp": {"type": "kafka", "aaf_credentials": {"username": "admin", "password": "admin_secret"}, "kafka_info": {"bootstrap_servers": "message-router-kafka:9092", "topic_name": "HV_VES_PERF3GPP_SSL"}}}, "security.keys.keyStoreFile": "/tmp/server.p12", "security.keys.trustStorePasswordFile": "/dev/null", "security.keys.keyStorePasswordFile": "/dev/null"}
-${HVVES_CONFIG}     {"security.sslDisable": false, "logLevel": "INFO", "security.keys.trustStoreFile": "/etc/ves-hv/ssl/trust.jks", "server.listenPort": 6061, "server.idleTimeoutSec": 300, "cbs.requestIntervalSec": 5, "streams_publishes": {"perf3gpp": {"type": "kafka", "aaf_credentials": {"username": "admin", "password": "admin_secret"}, "kafka_info": {"bootstrap_servers": "message-router-kafka:9092", "topic_name": "HV_VES_PERF3GPP"}}}, "security.keys.keyStoreFile": "/etc/ves-hv/ssl/cert.jks", "security.keys.trustStorePasswordFile": "/etc/ves-hv/ssl/trust.pass", "security.keys.keyStorePasswordFile": "/etc/ves-hv/ssl/jks.pass"}
 ${CA_CERT}    /tmp/ca.pem
 ${CLIENT_CERT}    /tmp/client.pem
 ${CLIENT_KEY}    /tmp/client.key
 
+${PREV_CM_FILE}                   /tmp/prevCm.json
+${CURRENT_CONFIG_FILE}            /tmp/currentConfig.yaml
+${CM_NAME}                        dev-dcae-hv-ves-collector-application-config-configmap
+${GET_PREV_CM}                    kubectl -n onap get cm ${CM_NAME} -o json
+
+${TEST_TRUSTSTORE_PASS_PATH}      security.keys.trustStorePasswordFile: /dev/null
+
+${COPY_CURRENT_CONFIG}            kubectl -n onap cp $(kubectl get pods -n onap | grep hv-ves | awk '{print $1}' | grep -v NAME):/app-config-input/..data/application_config.yaml ${CURRENT_CONFIG_FILE}
+${GET_TRUSTSTORE_PASS_PATH}       cat ${CURRENT_CONFIG_FILE} | grep security.keys.trustStorePasswordFile
+
+${GET_CONFIG_FROM_CM}             kubectl -n onap get cm ${CM_NAME} -o jsonpath="{.data.application_config\\.yaml}"
+${TEST_CONFIG_YAML_PATH}          ${EXECDIR}/robot/assets/dcae/hvves_test_config.yaml
+
+
 *** Keywords ***
 Check Message Router Api
     [Documentation]    Checks message via message router API.
@@ -54,9 +65,52 @@ Decode Last Message From Topic
     ${msg}=     Consume    kafka    ${kafka_topic}
     [Return]    ${msg}
 
-Mode
+Set Test Config
     [Documentation]     Changes HV-VES config.
-    [Arguments]     ${config}
-    ${resp}=    Run Consul Put Request      /v1/kv/dcae-hv-ves-collector?dc=dc1     ${config}
-    Should Be Equal As Strings      ${resp.status_code}     200
-    Sleep   10s
+
+    ${TEST_CONFIG}=                            Get File                                       ${TEST_CONFIG_YAML_PATH}    encoding=UTF-8
+
+    ${rc}    ${prev_conf} =                    Run and Return RC and Output                   ${GET_PREV_CM}
+    Should Be Equal As Integers                ${rc}                                          0
+    Create File                                ${PREV_CM_FILE}                                ${prev_conf}
+
+    ${rc}    ${prev_conf_yaml} =               Run and Return RC and Output                   ${GET_CONFIG_FROM_CM}
+    Should Be Equal As Integers                ${rc}                                          0
+    Set Environment Variable                   OLD_CONFIG_YAML                                ${prev_conf_yaml}
+
+    Set Environment Variable                   TEST_CONFIG                                    ${TEST_CONFIG}
+
+    ${rc} =                                    Run and Return RC                              kubectl -n onap patch cm ${CM_NAME} --type strategic -p "%{TEST_CONFIG}"
+    Should Be Equal As Integers                ${rc}                                          0
+
+    Wait Until Keyword Succeeds                2 min                5 sec                    Check If Config Is Applied    ${TEST_TRUSTSTORE_PASS_PATH}
+    Sleep                                      5s
+
+
+Check If Config Is Applied
+    [Documentation]    Checks if the config is applied.
+    [Arguments]        ${truststore_pass_path}
+
+    ${rc} =                                    Run and Return RC                              ${COPY_CURRENT_CONFIG}
+    Should Be Equal As Integers                ${rc}                                          0
+
+    ${rc}      ${current_trust_pass_path} =    Run and Return RC and Output                   ${GET_TRUSTSTORE_PASS_PATH}
+    Should Be Equal As Integers                ${rc}                                          0
+
+    Should Be Equal As Strings                 ${truststore_pass_path}                        ${current_trust_pass_path}
+
+Set Old Config
+    [Documentation]     Changes HV-VES config back to normal mode.
+
+    ${rc} =                                    Run and Return RC                              kubectl -n onap replace --force -f ${PREV_CM_FILE}
+    Should Be Equal As Integers                ${rc}                                          0
+
+    ${rc}    ${old_trust_pass_path} =          Run and Return RC and Output                   echo "%{OLD_CONFIG_YAML}" | grep security.keys.trustStorePasswordFile
+    Should Be Equal As Integers                ${rc}                                          0
+
+    Remove File                                ${PREV_CM_FILE}
+    Remove File                                ${CURRENT_CONFIG_FILE}
+
+    Wait Until Keyword Succeeds                2 min                5 sec                    Check If Config Is Applied    ${old_trust_pass_path}
+
+    Sleep                                      10s
index ac33090..0e08ff6 100644 (file)
@@ -14,11 +14,11 @@ ${HVVES_KAFKA_TOPIC_SSL}    HV_VES_PERF3GPP_SSL
 *** Test Cases ***
 HV-VES SSL test case
     [Setup]    Run Process    /app/setup-hvves.sh    shell=yes
-    Mode    ${HVVES_CONFIG_SSL}
+    Set Test Config
     Send Message Over Ssl    ${GLOBAL_DCAE_HVVES_SERVER_NAME}    ${GLOBAL_DCAE_HVVES_SERVER_PORT}
     Wait Until Keyword Succeeds    10s    2s    Check If Topic Exists    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_NAME}    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}
     Check Message Router Api    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_NAME}    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}
     ${msg}=    Decode Last Message From Topic    ${GLOBAL_DMAAP_KAFKA_SERVER_NAME}    ${GLOBAL_DMAAP_KAFKA_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}    ${GLOBAL_DMAAP_KAFKA_JAAS_USERNAME}    ${GLOBAL_DMAAP_KAFKA_JAAS_PASSWORD}
     ${results}=    Compare File To Message    ${EXECDIR}/robot/assets/dcae/hvves_msg.raw    ${msg}
     Should Be True    ${results}
-    [Teardown]      Mode    ${HVVES_CONFIG}
+    [Teardown]      Set Old Config
index 4bb6d4a..417454a 100644 (file)
@@ -1,7 +1,7 @@
 *** Settings ***
 Documentation   HV-VES 'Sunny Scenario' Robot Framework test - message is sent to the collector and Kafka topic is checked if the message has been published. Content is decoded and checked.
 Default Tags    hvves   ete
-Test Timeout    1m
+Test Timeout    5m
 Resource    ../resources/global_properties.robot
 Resource    ../resources/dcae/hvves.robot
 Library    OperatingSystem
@@ -13,11 +13,11 @@ ${HVVES_KAFKA_TOPIC_SSL}    HV_VES_PERF3GPP_SSL
 
 *** Test Cases ***
 HV-VES SSL test case
-    Mode    ${HVVES_CONFIG_SSL}
+    Set Test Config
     Send Message Over Ssl    ${GLOBAL_DCAE_HVVES_SERVER_NAME}    ${GLOBAL_DCAE_HVVES_SERVER_PORT}
     Wait Until Keyword Succeeds    10s    2s    Check If Topic Exists    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_NAME}    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}
     Check Message Router Api    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_NAME}    ${GLOBAL_DMAAP_MESSAGE_ROUTER_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}
     ${msg}=    Decode Last Message From Topic    ${GLOBAL_DMAAP_KAFKA_SERVER_NAME}    ${GLOBAL_DMAAP_KAFKA_SERVER_PORT}    ${HVVES_KAFKA_TOPIC_SSL}    ${GLOBAL_DMAAP_KAFKA_JAAS_USERNAME}    ${GLOBAL_DMAAP_KAFKA_JAAS_PASSWORD}
     ${results}=    Compare File To Message    ${EXECDIR}/robot/assets/dcae/hvves_msg.raw    ${msg}
     Should Be True    ${results}
-    [Teardown]      Mode    ${HVVES_CONFIG}
+    [Teardown]      Set Old Config