summaryrefslogtreecommitdiffstats
path: root/csit/resources/tests/apex-pdp-test.robot
blob: 5e4ea34bc5beea2447517dd82f12a80b17940171 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
*** Settings ***
Library     Collections
Library     RequestsLibrary
Library     OperatingSystem
Library     json
Library     Process
Resource    ${CURDIR}/common-library.robot
Resource    ${CURDIR}/apex-pdp-common.robot

*** Test Cases ***

Healthcheck
     [Documentation]    Runs Apex PDP Health check
     ${hcauth}=  PolicyAdminAuth
     ${resp}=  PerformGetRequest  ${APEX_IP}  /policy/apex-pdp/v1/healthcheck  200  null  ${hcauth}
     Should Be Equal As Strings    ${resp.json()['code']}    200
     Set Suite Variable    ${pdpName}    ${resp.json()['name']}

ExecuteApexSampleDomainPolicy
     # [Tags]    docker
     Set Test Variable    ${policyName}    onap.policies.native.apex.Sampledomain
     ${postjson}=  Get File  ${CURDIR}/data/${policyName}.json
     CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
     DeployPolicy
     Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
     Wait Until Keyword Succeeds    4 min    5 sec    RunEventOnApexEngine

ExecuteApexTestPnfPolicy
     Set Test Variable    ${policyName}    onap.policies.apex.pnf.Test
     ${postjson}=  Get File  ${CURDIR}/data/${policyName}.json
     CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
     DeployPolicy
     Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
     GetKafkaTopic    apex-cl-mgt
     Wait Until Keyword Succeeds    2 min    5 sec    TriggerAndVerifyTestPnfPolicy    apex-cl-mgt

#ExecuteApexTestVnfPolicy
#     Set Test Variable    ${policyName}    onap.policies.apex.vnf.Test
#     ${postjson}=  Get File  ${CURDIR}/data/${policyName}.json
#     CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
#     DeployPolicy
#     Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
#     GetTopic     apex-cl-mgt
#     Wait Until Keyword Succeeds    2 min    5 sec    TriggerAndVerifyTestVnfPolicy

ExecuteApexTestPnfPolicyWithMetadataSet
      Set Test Variable    ${policyName}    onap.policies.apex.pnf.metadataSet.Test
      ${postjson}=  Get File  ${CURDIR}/data/${policyName}.json
      CreatePolicy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  200  ${postjson}  ${policyName}  1.0.0
      ${postjson}=  Get File  ${CURDIR}/data/onap.pnf.metadataSet.Test.json
      CreateNodeTemplate  /policy/api/v1/nodetemplates  200  ${postjson}  1
      DeployPolicy
      Wait Until Keyword Succeeds    2 min    5 sec    QueryPolicyStatus  ${policyName}  defaultGroup  apex  ${pdpName}  onap.policies.native.Apex
      GetKafkaTopic     apex-cl-mgt2
      Wait Until Keyword Succeeds    2 min    5 sec    TriggerAndVerifyTestPnfPolicy    apex-cl-mgt2

Metrics
     [Documentation]  Verify policy-apex-pdp is exporting prometheus metrics
     ${auth}=  PolicyAdminAuth
     ${resp}=  PerformGetRequest  ${APEX_IP}  /metrics  200  null  ${auth}
     Should Contain  ${resp.text}  pdpa_policy_deployments_total{operation="deploy",status="TOTAL",} 3.0
     Should Contain  ${resp.text}  pdpa_policy_deployments_total{operation="deploy",status="SUCCESS",} 3.0
     Should Contain  ${resp.text}  pdpa_policy_executions_total{status="SUCCESS",} 6.0
     Should Contain  ${resp.text}  pdpa_policy_executions_total{status="TOTAL",} 6.0
     Should Match  ${resp.text}  *pdpa_engine_event_executions{engine_instance_id="NSOApexEngine-*:0.0.1",}*
     Should Match  ${resp.text}  *pdpa_engine_event_executions{engine_instance_id="MyApexEngine-*:0.0.1",}*
     Should Match  ${resp.text}  *pdpa_engine_state{engine_instance_id=*,} 2.0*
     Should Contain  ${resp.text}  pdpa_engine_event_executions
     Should Contain  ${resp.text}  pdpa_engine_average_execution_time_seconds
     Should Contain  ${resp.text}  pdpa_engine_last_execution_time_bucket
     Should Contain  ${resp.text}  pdpa_engine_last_execution_time_count
     Should Contain  ${resp.text}  pdpa_engine_last_execution_time_sum
     Should Match  ${resp.text}  *pdpa_engine_last_start_timestamp_epoch{engine_instance_id="NSOApexEngine-*:0.0.1",}*E12*
     Should Match  ${resp.text}  *pdpa_engine_last_start_timestamp_epoch{engine_instance_id="MyApexEngine-*:0.0.1",}*E12*
     Should Contain  ${resp.text}  jvm_threads_current

*** Keywords ***

TriggerAndVerifyTestPnfPolicy
    [Documentation]    Send TestPnf policy trigger event to DMaaP and read notifications to verify policy execution
    [Arguments]    ${topic}
    ${data}=    Get Binary File     ${CURDIR}/data/VesEventForPnfPolicy.json
    ${resp}=    Run Process    ${CURDIR}/kafka_producer.py    unauthenticated.dcae_cl_output    ${data}
    Run Keyword    CheckLogMessage    ${topic}    ACTIVE    VES event has been received. Going to fetch details from AAI.
    Run Keyword    CheckLogMessage    ${topic}    SUCCESS    Received response from AAI successfully. Hostname in AAI matches with the one in Ves event. Going to make the update-config request to CDS.
    Run Keyword    CheckLogMessage    ${topic}    FINAL_SUCCESS    Successfully processed the VES event. Hostname is updated.

TriggerAndVerifyTestVnfPolicy
    [Documentation]    Send TestVnf policy trigger event to DMaaP and read notifications to verify policy execution
    Create Session   apexSession  http://${KAFKA_IP}   max_retries=1
    ${data}=    Get Binary File     ${CURDIR}/data/VesEventForVnfPolicy.json
    &{headers}=  Create Dictionary    Content-Type=application/json    Accept=application/json
    ${resp}=    POST On Session    apexSession    /events/unauthenticated.DCAE_POLICY_EXAMPLE_OUTPUT    data=${data}   headers=${headers}
    Should Be Equal As Strings    ${resp.status_code}   200
    Run Keyword    CheckLogMessage    ACTIVE    VES event has been received. Going to fetch VNF details from AAI.
    Run Keyword    CheckLogMessage    SUCCESS    VNF details are received from AAI successfully. Sending ConfigModify request to CDS.
    Run Keyword    CheckLogMessage    SUCCESS    ConfigModify request is successful. Sending restart request to CDS.
    Run Keyword    CheckLogMessage    FINAL_SUCCESS    Successfully processed the VES Event. Restart is complete.