6d08c963491dd5bac287e84154d857bc18271a4d
[policy/docker.git] / csit / resources / tests / drools-applications-test.robot
1 *** Settings ***
2 Library     Collections
3 Library     String
4 Library     RequestsLibrary
5 Library     OperatingSystem
6 Library     Process
7 Library     json
8 Resource    common-library.robot
9
10 *** Test Cases ***
11 Alive
12     [Documentation]    Runs Policy PDP Alive Check
13     ${resp}=  PeformGetRequest  /policy/pdp/engine  ${DROOLS_IP_2}  200
14     Should Be Equal As Strings    ${resp.json()['alive']}  True
15
16 Metrics
17     [Documentation]    Verify drools-apps is exporting metrics
18     ${resp}=  PeformGetRequest  /metrics  ${DROOLS_IP_2}  200
19     Should Contain  ${resp.text}  jvm_threads_current
20
21 Healthcheck
22     [Documentation]    Runs Policy PDP-D Health check
23     ${resp}=  PeformGetRequest  /healthcheck  ${DROOLS_IP}  200
24     Should Be Equal As Strings    ${resp.json()['healthy']}  True
25
26 Controller
27     [Documentation]    Checks controller is up
28     Wait Until Keyword Succeeds  2 min  15 sec  VerifyController
29
30 MakeTopics
31     [Documentation]    Creates the Policy topics
32     GetTopic     POLICY-PDP-PAP
33     GetTopic     POLICY-CL-MGT
34
35 CreateVcpeXacmlPolicy
36     [Documentation]    Create VCPE Policy for Xacml
37     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vCPE.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
38
39 CreateVcpeDroolsPolicy
40     [Documentation]    Create VCPE Policy for Drools
41     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vCPE.policy.operational.input.tosca.yaml  ${DATA}  yaml  200
42
43 CreateVdnsXacmlPolicy
44     [Documentation]    Create VDNS Policy for Xacml
45     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vDNS.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
46
47 CreateVdnsDroolsPolicy
48     [Documentation]    Create VDNS Policy for Drools
49     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vDNS.policy.operational.input.tosca.json  ${DATA}  json  200
50
51 CreateVfwXacmlPolicy
52     [Documentation]    Create VFW Policy for Xacml
53     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vFirewall.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
54
55 CreateVfwDroolsPolicy
56     [Documentation]    Create VFW Policy for Drools
57     PerformPostRequest  /policy/api/v1/policies  null  ${POLICY_API_IP}  vFirewall.policy.operational.input.tosca.json  ${DATA}  json  200
58
59 DeployXacmlPolicies
60     [Documentation]    Deploys the Policies to Xacml
61     PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${POLICY_PAP_IP}  deploy.xacml.policies.json  ${CURDIR}/data  json  202
62     ${result}=    CheckTopic     POLICY-PDP-PAP    PDP_UPDATE
63     Sleep    5s
64     ${result}=    CheckTopic     POLICY-PDP-PAP    ACTIVE
65     Should Contain    ${result}    responseTo
66     Should Contain    ${result}    xacml
67     Should Contain    ${result}    restart
68     Should Contain    ${result}    onap.restart.tca
69     Should Contain    ${result}    onap.scaleout.tca
70     Should Contain    ${result}    onap.vfirewall.tca
71
72 DeployDroolsPolicies
73     [Documentation]    Deploys the Policies to Drools
74     PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${POLICY_PAP_IP}  deploy.drools.policies.json  ${CURDIR}/data  json  202
75     ${result}=    CheckTopic     POLICY-PDP-PAP    PDP_UPDATE
76     Sleep    5s
77     ${result}=    CheckTopic     POLICY-PDP-PAP    ACTIVE
78     Should Contain    ${result}    responseTo
79     Should Contain    ${result}    drools
80     Should Contain    ${result}    operational.restart
81     Should Contain    ${result}    operational.scaleout
82     Should Contain    ${result}    operational.modifyconfig
83
84 VcpeExecute
85     [Documentation]    Executes VCPE Policy
86     OnSet     ${CURDIR}/data/vcpeOnset.json
87     ${result}=    CheckTopic     POLICY-CL-MGT    ACTIVE
88     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
89     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
90     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
91     Should Contain    ${result}    Sending guard query for APPC Restart
92     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
93     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
94     Should Contain    ${result}    Guard result for APPC Restart is Permit
95     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
96     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
97     Should Contain    ${result}    actor=APPC,operation=Restart
98     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION: SUCCESS
99     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
100     Should Contain    ${result}    actor=APPC,operation=Restart
101     ${result}=    CheckTopic     POLICY-CL-MGT    FINAL: SUCCESS
102     Should Contain    ${result}    ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
103     Should Contain    ${result}    APPC
104     Should Contain    ${result}    Restart
105
106 VdnsExecute
107     [Documentation]    Executes VDNS Policy
108     OnSet     ${CURDIR}/data/vdnsOnset.json
109     ${result}=    CheckTopic     POLICY-CL-MGT    ACTIVE
110     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
111     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
112     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
113     Should Contain    ${result}    Sending guard query for SO VF Module Create
114     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
115     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
116     Should Contain    ${result}    Guard result for SO VF Module Create is Permit
117     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
118     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
119     Should Contain    ${result}    actor=SO,operation=VF Module Create
120     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION: SUCCESS
121     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
122     Should Contain    ${result}    actor=SO,operation=VF Module Create
123     ${result}=    CheckTopic     POLICY-CL-MGT    FINAL: SUCCESS
124     Should Contain    ${result}    ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
125     Should Contain    ${result}    SO
126     Should Contain    ${result}    VF Module Create
127
128 VfwExecute
129     [Documentation]    Executes VFW Policy
130     OnSet     ${CURDIR}/data/vfwOnset.json
131     ${result}=    CheckTopic     POLICY-CL-MGT    ACTIVE
132     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
133     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
134     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
135     Should Contain    ${result}    Sending guard query for APPC ModifyConfig
136     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
137     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
138     Should Contain    ${result}    Guard result for APPC ModifyConfig is Permit
139     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION
140     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
141     Should Contain    ${result}    actor=APPC,operation=ModifyConfig
142     ${result}=    CheckTopic     POLICY-CL-MGT    OPERATION: SUCCESS
143     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
144     Should Contain    ${result}    actor=APPC,operation=ModifyConfig
145     ${result}=    CheckTopic     POLICY-CL-MGT    FINAL: SUCCESS
146     Should Contain    ${result}    ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
147     Should Contain    ${result}    APPC
148     Should Contain    ${result}    ModifyConfig
149
150 *** Keywords ***
151
152 VerifyController
153     ${resp}=  PeformGetRequest  /policy/pdp/engine/controllers/usecases/drools/facts  ${DROOLS_IP_2}  200
154     Should Be Equal As Strings  ${resp.json()['usecases']}  1
155
156 PeformGetRequest
157      [Arguments]  ${url}  ${domain}  ${expectedstatus}
158      ${auth}=  Create List  demo@people.osaaf.org  demo123456!
159      Log  Creating session http://${domain}
160      ${session}=  Create Session  policy  http://${domain}  auth=${auth}
161      ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
162      ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
163      Log  Received response from policy ${resp.text}
164      [return]  ${resp}
165
166 PerformPostRequest
167      [Arguments]  ${url}  ${params}  ${domain}  ${jsonfile}  ${filepath}  ${contenttype}  ${expectedstatus}
168      ${auth}=  Create List  policyadmin  zb!XztG34
169      ${postjson}=  Get file  ${filepath}/${jsonfile}
170      Log  Creating session http://${domain}
171      ${session}=  Create Session  policy  http://${domain}  auth=${auth}
172      ${headers}=  Create Dictionary  Accept=application/${contenttype}  Content-Type=application/${contenttype}
173      ${resp}=  POST On Session  policy  ${url}  params=${params}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
174      Log  Received response from policy ${resp.text}
175      [return]  ${resp}
176
177 OnSet
178     [Arguments]    ${file}
179     ${data}=    Get File    ${file}
180     Create Session   session  http://${DMAAP_IP}   max_retries=1
181     ${headers}=  Create Dictionary  Content-Type=application/json
182     ${resp}=  POST On Session    session    /events/unauthenticated.DCAE_CL_OUTPUT    headers=${headers}    data=${data}
183     Log    Response from dmaap ${resp.text}
184     Status Should Be    OK
185     [Return]    ${resp.text}