Add test for logging level change in PRH based on configuration from CBS
Extracting config related tests to separate suit since they do not share common setup and teardown.
Small improvements in existing test for ad-hoc logging level change using rest endpoint.
Change-Id: I0b81680cc68cd210aad01b87f84856200cb4b88b
Issue-ID: DCAEGEN2-1544
Signed-off-by: grabinsk <maciej.grabinski@nokia.com>
diff --git a/tests/dcaegen2/prh-testcases/prh_config_tests.robot b/tests/dcaegen2/prh-testcases/prh_config_tests.robot
new file mode 100644
index 0000000..144504d
--- /dev/null
+++ b/tests/dcaegen2/prh-testcases/prh_config_tests.robot
@@ -0,0 +1,33 @@
+*** Settings ***
+Documentation Tests related to updating PRH app config based on CBS config
+Suite Setup Run keywords Create sessions
+Resource resources/prh_sessions.robot
+Resource resources/prh_config_library.robot
+Resource resources/prh_library.robot
+Test Timeout 15 seconds
+
+*** Test Cases ***
+CBS configuration forced refresh
+ [Documentation] It should be possible to force refresh PRH configuration from CBS
+ [Tags] PRH coniguration
+ ${some_random_value}= Generate random value
+ Put key-value to consul foo_${some_random_value} bar_${some_random_value}
+ Force PRH config refresh
+ Check key-value in PRH app environment foo_${some_random_value} bar_${some_random_value}
+
+CBS configuration scheduled refresh
+ [Documentation] PRH should pull for CBS configuration updates according to schedule
+ [Tags] PRH coniguration
+ Set scheduled CBS updates interval 1s
+ ${some_random_value}= Generate random value
+ Put key-value to consul spam_${some_random_value} ham_${some_random_value}
+ wait until keyword succeeds 20x 500ms
+ ... Check key-value in PRH app environment spam_${some_random_value} ham_${some_random_value}
+ [Teardown] Set scheduled CBS updates interval 0
+
+PRH log level change based on CBS config
+ [Documentation] It should be possible to change logging levels in PRH based on entries in CBS
+ [Tags] PRH coniguration logging
+ Set logging level in CBS org.onap.dcaegen2.services.prh.foo WARN
+ Force PRH config refresh
+ Verify logging level org.onap.dcaegen2.services.prh.foo WARN
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/prh_tests.robot b/tests/dcaegen2/prh-testcases/prh_tests.robot
index 43d3188..4e387b9 100644
--- a/tests/dcaegen2/prh-testcases/prh_tests.robot
+++ b/tests/dcaegen2/prh-testcases/prh_tests.robot
@@ -8,18 +8,10 @@
Library resources/PrhLibrary.py
Resource resources/prh_sessions.robot
Resource resources/prh_library.robot
-Resource resources/prh_config_tests.robot
*** Variables ***
${TEST_CASES_DIR} %{WORKSPACE}/tests/dcaegen2/prh-testcases/assets
-${DMAAP_SIMULATOR_SETUP_URL} http://${DMAAP_SIMULATOR_SETUP}
-${AAI_SIMULATOR_SETUP_URL} http://${AAI_SIMULATOR_SETUP}
-${CONSUL_SETUP_URL} http://${CONSUL_SETUP}
-${PRH_SETUP_URL} http://${PRH_SETUP}
-${TRACE_LOG_LEVEL_CONF} {"configuredLevel":"TRACE","effectiveLevel":"TRACE"}
-${WARN_LOG_LEVEL_CONF} {"configuredLevel":"WARN","effectiveLevel":"WARN"}
-
*** Test Cases ***
BBS case event - attachment point
[Documentation] PRH get from DMaaP valid event with valid attachment point
@@ -63,16 +55,6 @@
${TEST_CASES_DIR}/re-registration
PRH logging level change
- [Documentation] PRH logging level change from WARN to TRACE
+ [Documentation] ad-hoc PRH logging level change using rest endpoint
[Tags] PRH logging level
Verify change logging level
-
-CBS configuration forced refresh
- [Documentation] It should be possible to force refresh PRH configuration from CBS
- [Tags] PRH coniguration
- Verify PRH configuration forced refresh
-
-CBS configuration scheduled refresh
- [Documentation] PRH should pull for CBS configuration updates according to schedule
- [Tags] PRH coniguration
- Verify scheduled CBS config updates
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
index 2ca2c8d..ca94dfb 100644
--- a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
+++ b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml
@@ -57,6 +57,7 @@
"cbs.updates-interval": 0,
"logging.level.org.onap.dcaegen2.services.prh": "debug",
"logging.level.org.onap.dcaegen2.services.sdk": "debug",
+ "logging.level.org.onap.dcaegen2.services.prh.controllers.AppInfoController": "off",
"dmaap.dmaapConsumerConfiguration.dmaapUserName":"admin",
"dmaap.dmaapConsumerConfiguration.dmaapUserPassword":"admin",
"dmaap.dmaapConsumerConfiguration.dmaapContentType": "application/json",
diff --git a/tests/dcaegen2/prh-testcases/resources/prh_config_tests.robot b/tests/dcaegen2/prh-testcases/resources/prh_config_library.robot
similarity index 65%
rename from tests/dcaegen2/prh-testcases/resources/prh_config_tests.robot
rename to tests/dcaegen2/prh-testcases/resources/prh_config_library.robot
index 9044185..26a6270 100644
--- a/tests/dcaegen2/prh-testcases/resources/prh_config_tests.robot
+++ b/tests/dcaegen2/prh-testcases/resources/prh_config_library.robot
@@ -1,16 +1,10 @@
*** Settings ***
-Documentation Tests and keywords related to updating PRH app config based on CBS config
+Documentation Keywords related to checking and updating PRH app config based on CBS config
Library RequestsLibrary
Library Collections
*** Keywords ***
-Verify PRH configuration forced refresh
- ${some_random_value}= Generate random value
- Put key-value to consul foo_${some_random_value} bar_${some_random_value}
- Force PRH config refresh
- Check key-value in PRH app environment foo_${some_random_value} bar_${some_random_value}
-
Put key-value to consul
[Arguments] ${key} ${value}
${prh_config}= Get PRH config from consul
@@ -35,19 +29,15 @@
log ${env_response.content}
should be equal ${env_response.json()["property"]["value"]} ${expected_value}
-Verify scheduled CBS config updates
- Set scheduled CBS updates interval 1s
- ${some_random_value}= Generate random value
- Put key-value to consul spam_${some_random_value} ham_${some_random_value}
- wait until keyword succeeds 20x 500ms
- ... Check key-value in PRH app environment spam_${some_random_value} ham_${some_random_value}
- [Teardown] Set scheduled CBS updates interval 0
-
Set scheduled CBS updates interval
[Arguments] ${cbs_updates_interval}
Put key-value to consul cbs.updates-interval ${cbs_updates_interval}
Force PRH config refresh
+Set logging level in CBS
+ [Arguments] ${logger} ${level}
+ Put key-value to consul logging.level.${logger} ${level}
+
Generate random value
${some_random_value} evaluate random.randint(sys.maxint/10, sys.maxint) modules=random,sys
[Return] ${some_random_value}
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/resources/prh_library.robot b/tests/dcaegen2/prh-testcases/resources/prh_library.robot
index b52b27c..c00f012 100644
--- a/tests/dcaegen2/prh-testcases/resources/prh_library.robot
+++ b/tests/dcaegen2/prh-testcases/resources/prh_library.robot
@@ -2,7 +2,6 @@
Library RequestsLibrary
Library Collections
Library PrhLibrary.py
-Library OperatingSystem
Resource ../../../common.robot
*** Keywords ***
@@ -151,20 +150,25 @@
Verify change logging level
- Change logging level TRACE
+ ${logger}= Set Variable org.onap.dcaegen2.services.prh.controllers.AppInfoController
+ Change logging level ${logger} TRACE
+ Verify logging level ${logger} TRACE
Verify logs with heartbeat
- Change logging level INFO
+ [Teardown] Change logging level ${logger} INFO
Change logging level
- [Arguments] ${expected_log_level}
- Run curl -i -X POST -H 'Content-Type: application/json' -d '{"configuredLevel": "${expected_log_level}"}' http://localhost:8100/actuator/loggers/org.onap.dcaegen2.services.prh
+ [Arguments] ${logger} ${log_level}
+ ${request_body}= Create Dictionary configuredLevel=${log_level}
+ ${resp}= Post Request prh_session /actuator/loggers/${logger} json=${request_body}
+ Should Be Equal As Integers ${resp.status_code} 204
Verify logging level
- [Arguments] ${expected_log_level}
- ${resp}= Get Request prh_session /actuator/loggers/org.onap.dcaegen2.services.prh
- Should Be Equal As JSON ${resp.content} ${expected_log_level}
+ [Arguments] ${logger} ${expected_log_level}
+ ${resp}= Get Request prh_session /actuator/loggers/${logger}
+ Should Be Equal As Integers ${resp.status_code} 200
+ Log ${resp.content}
+ Should Be Equal As Strings ${resp.json()["configuredLevel"]} ${expected_log_level} ignore_case=true
Verify logs with heartbeat
- Verify logging level ${TRACE_LOG_LEVEL_CONF}
Get Request prh_session /heartbeat
Check PRH log Heartbeat request received
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot b/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot
index a795512..2fadbba 100644
--- a/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot
+++ b/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot
@@ -2,6 +2,12 @@
Library RequestsLibrary
Library Collections
+*** Variables ***
+${DMAAP_SIMULATOR_SETUP_URL} http://${DMAAP_SIMULATOR_SETUP}
+${AAI_SIMULATOR_SETUP_URL} http://${AAI_SIMULATOR_SETUP}
+${CONSUL_SETUP_URL} http://${CONSUL_SETUP}
+${PRH_SETUP_URL} http://${PRH_SETUP}
+
*** Keywords ***
Create sessions
Create Session dmaap_session ${DMAAP_SIMULATOR_SETUP_URL}