Move CSIT to integration/csit repo
[integration/csit.git] / tests / aai / resources / db_edge_rule / edge_multiplicity_one_2_one.robot
1 *** Settings ***
2 Library       OperatingSystem
3 Library       RequestsLibrary
4 Library       requests
5 Library       Collections
6
7 *** Variables ***
8 ${CRKEYVALUE1}         cr-integration-test1
9 ${CRKEYVALUE2}         cr-integration-test2
10 ${TENANTKEYVALUE}     tenant-integration-test1
11 ${VSERVERKEYVALUE1}   vserver-integration-test1
12 ${VSERVERKEYVALUE2}   vserver-integration-test2
13 ${SNAPSHOTKEYVALUE1}  snapshot-integration-test1
14 ${SNAPSHOTKEYVALUE2}  snapshot-integration-test2
15
16 ${CRURL}                  https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}
17 ${TENANTURL}              https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/tenants/tenant/${TENANTKEYVALUE}
18 ${VSERVERURL1}            https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/tenants/tenant/${TENANTKEYVALUE}/vservers/vserver/${VSERVERKEYVALUE1}
19 ${VSERVERURL2}            https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/tenants/tenant/${TENANTKEYVALUE}/vservers/vserver/${VSERVERKEYVALUE2}
20 ${SNAPSHOTURL1}           https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/snapshots/snapshot/${SNAPSHOTKEYVALUE1}
21 ${SNAPSHOTURL2}           https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/snapshots/snapshot/${SNAPSHOTKEYVALUE2}
22 ${RELATIONSHIPURL1}       https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/tenants/tenant/${TENANTKEYVALUE}/vservers/vserver/${VSERVERKEYVALUE1}/relationship-list/relationship
23 ${RELATIONSHIPURL2}       https://${HOST_IP}:8443/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/${CRKEYVALUE1}/${CRKEYVALUE2}/snapshots/snapshot/${SNAPSHOTKEYVALUE1}/relationship-list/relationship
24 ${CRDATA}  {"cloud-owner":"${CRKEYVALUE1}","cloud-region-id":"${CRKEYVALUE2}","owner-defined-type":"example-owner-defined-type-987654321-09","cloud-region-version":"example-cloud-region-version-987654321-09","identity-url":"example-identity-url-987654321-09","cloud-zone":"example-cloud-zone-987654321-09","complex-name":"example-complex-name-987654321-09"}
25 ${TENANTDATA}  {"tenant-id":"${TENANTKEYVALUE}","tenant-name":"tenant-name-0999"}
26 ${VSERVERDATA1}  {"vserver-id":"${VSERVERKEYVALUE1}","vserver-name":"example-vserver-name-val-7367","vserver-name2":"example-vserver-name2-val-7367","prov-status":"example-prov-status-val-7367","vserver-selflink":"example-vserver-selflink-val-7367"}
27 ${VSERVERDATA2}  {"vserver-id":"${VSERVERKEYVALUE2}","vserver-name":"example-vserver-name-val-73678","vserver-name2":"example-vserver-name2-val-73867","prov-status":"example-prov-status-val-73867","vserver-selflink":"example-vserver-selflink-val-73687"}
28 ${SNAPSHOTDATA1}  {"snapshot-id":"${SNAPSHOTKEYVALUE1}"}
29 ${SNAPSHOTDATA2}  {"snapshot-id":"${SNAPSHOTKEYVALUE2}"}
30 ${RELATIONSHIPDATA1}  {"related-to":"snapshot","relationship-data":[{"relationship-key":"snapshot.snapshot-id","relationship-value":"${SNAPSHOTKEYVALUE1}"},{"relationship-key":"cloud-region.cloud-owner","relationship-value":"${CRKEYVALUE1}"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"${CRKEYVALUE2}"}]}
31 ${RELATIONSHIPDATA2}  {"related-to":"snapshot","relationship-data":[{"relationship-key":"snapshot.snapshot-id","relationship-value":"${SNAPSHOTKEYVALUE2}"},{"relationship-key":"cloud-region.cloud-owner","relationship-value":"${CRKEYVALUE1}"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"${CRKEYVALUE2}"}]}
32 ${RELATIONSHIPDATA3}  {"related-to":"vserver","relationship-data":[{"relationship-key":"vserver.vserver-id","relationship-value":"${VSERVERKEYVALUE2}"},{"relationship-key":"tenant.tenant-id","relationship-value":"${TENANTKEYVALUE}"},{"relationship-key":"cloud-region.cloud-owner","relationship-value":"${CRKEYVALUE1}"},{"relationship-key":"cloud-region.cloud-region-id","relationship-value":"${CRKEYVALUE2}"}]}
33
34 *** Test Cases ***
35 Run AAI Put cloud-region
36     [Documentation]             Create an cloud-region object
37     ${resp}=                    PutWithCert              ${CRURL}              ${CRDATA}
38     log                         ${CRURL}
39     log                         ${resp.text}
40     Should Be Equal As Strings  ${resp.status_code}      201
41         
42 Run AAI Put tenant
43     [Documentation]             Create an tenant object
44     ${resp}=                    PutWithCert              ${TENANTURL}              ${TENANTDATA}
45     log                         ${TENANTURL}
46     log                         ${resp.text}
47     Should Be Equal As Strings  ${resp.status_code}      201
48
49 Run AAI Put vserver1
50     [Documentation]             Create an vserver1 object
51     ${resp}=                    PutWithCert              ${VSERVERURL1}              ${VSERVERDATA1}
52     log                         ${VSERVERURL1}
53     log                         ${resp.text}
54     Should Be Equal As Strings  ${resp.status_code}      201
55
56 Run AAI Put vserver2
57     [Documentation]             Create an vserver2 object
58     ${resp}=                    PutWithCert              ${VSERVERURL2}              ${VSERVERDATA2}
59     log                         ${VSERVERURL2}
60     log                         ${resp.text}
61     Should Be Equal As Strings  ${resp.status_code}      201
62
63 Run AAI Put snapshot1
64     [Documentation]             Create an snapshot1 object
65     ${resp}=                    PutWithCert              ${SNAPSHOTURL1}              ${SNAPSHOTDATA1}
66     log                         ${SNAPSHOTURL1}
67     log                         ${resp.text}
68     Should Be Equal As Strings  ${resp.status_code}      201
69
70 Run AAI Put snapshot2
71     [Documentation]             Create an snapshot2 object
72     ${resp}=                    PutWithCert              ${SNAPSHOTURL2}              ${SNAPSHOTDATA2}
73     log                         ${SNAPSHOTURL2}
74     log                         ${resp.text}
75     Should Be Equal As Strings  ${resp.status_code}      201    
76         
77 Run AAI Put relationship vserver1 and snapshot1
78     [Documentation]             Create relationship vserver1 and snapshot1
79     ${resp}=                    PutWithCert              ${RELATIONSHIPURL1}              ${RELATIONSHIPDATA1}
80     log                         ${RELATIONSHIPURL1}
81     log                         ${resp.text}
82     Should Be Equal As Strings  ${resp.status_code}      200    
83         
84 Run AAI Put relationship vserver1 and snapshot2 (NOT ALLOW)
85     [Documentation]             Create relationship vserver1 and snapshot2 (NOT ALLOW)
86     ${resp}=                    PutWithCert              ${RELATIONSHIPURL1}              ${RELATIONSHIPDATA2}
87     log                         ${RELATIONSHIPURL1}
88     log                         ${resp.text}
89     Should Be Equal As Strings  ${resp.status_code}      400    
90         
91 Run AAI Put relationship snapshot1 and vserver2 (NOT ALLOW)
92     [Documentation]             Create relationship snapshot1 and vserver2 (NOT ALLOW)
93     ${resp}=                    PutWithCert              ${RELATIONSHIPURL2}              ${RELATIONSHIPDATA3}
94     log                         ${RELATIONSHIPURL2}
95     log                         ${resp.text}
96     Should Be Equal As Strings  ${resp.status_code}      400
97         
98 Run AAI Get vserver1 to delete
99     [Documentation]             Get vserver1 object to delete
100     ${resp}                     GetWithCert              ${VSERVERURL1}
101     log                         ${resp}
102     log                         ${resp.json()}
103     Should Be Equal As Strings  ${resp.status_code}      200
104     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
105     Set Global Variable                 ${resource_version}
106
107 Run AAI Delete vserver1
108     [Documentation]             Delete the vserver1
109     ${resp}=                    DeleteWithCert           ${VSERVERURL1}?resource-version=${resource_version}
110     log                         ${resp.text}
111     Should Be Equal As Strings  ${resp.status_code}      204
112         
113 Run AAI Get vserver2 to delete
114     [Documentation]             Get vserver2 object to delete
115     ${resp}                     GetWithCert              ${VSERVERURL2}
116     log                         ${resp}
117     log                         ${resp.json()}
118     Should Be Equal As Strings  ${resp.status_code}      200
119     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
120     Set Global Variable                 ${resource_version}
121
122 Run AAI Delete vserver2
123     [Documentation]             Delete the vserver2
124     ${resp}=                    DeleteWithCert           ${VSERVERURL2}?resource-version=${resource_version}
125     log                         ${resp.text}
126     Should Be Equal As Strings  ${resp.status_code}      204
127
128 Run AAI Get snapshot1 to delete
129     [Documentation]             Get snapshot1 object to delete
130     ${resp}                     GetWithCert              ${SNAPSHOTURL1}
131     log                         ${resp}
132     log                         ${resp.json()}
133     Should Be Equal As Strings  ${resp.status_code}      200
134     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
135     Set Global Variable                 ${resource_version}
136
137 Run AAI Delete snapshot1
138     [Documentation]             Delete the snapshot1
139     ${resp}=                    DeleteWithCert           ${SNAPSHOTURL1}?resource-version=${resource_version}
140     log                         ${resp.text}
141     Should Be Equal As Strings  ${resp.status_code}      204    
142         
143 Run AAI Get snapshot2 to delete
144     [Documentation]             Get snapshot2 object to delete
145     ${resp}                     GetWithCert              ${SNAPSHOTURL2}
146     log                         ${resp}
147     log                         ${resp.json()}
148     Should Be Equal As Strings  ${resp.status_code}      200
149     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
150     Set Global Variable                 ${resource_version}
151
152 Run AAI Delete snapshot2
153     [Documentation]             Delete the snapshot2
154     ${resp}=                    DeleteWithCert           ${SNAPSHOTURL2}?resource-version=${resource_version}
155     log                         ${resp.text}
156     Should Be Equal As Strings  ${resp.status_code}      204    
157         
158 Run AAI Get tenant to delete
159     [Documentation]             Get tenant object to delete
160     ${resp}                     GetWithCert              ${TENANTURL}
161     log                         ${resp}
162     log                         ${resp.json()}
163     Should Be Equal As Strings  ${resp.status_code}      200
164     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
165     Set Global Variable                 ${resource_version}
166
167 Run AAI Delete tenant
168     [Documentation]             Delete the tenant
169     ${resp}=                    DeleteWithCert           ${TENANTURL}?resource-version=${resource_version}
170     log                         ${resp.text}
171     Should Be Equal As Strings  ${resp.status_code}      204    
172         
173 Run AAI Get cr to delete
174     [Documentation]             Get cr object to delete
175     ${resp}                     GetWithCert              ${CRURL}
176     log                         ${resp}
177     log                         ${resp.json()}
178     Should Be Equal As Strings  ${resp.status_code}      200
179     ${resource_version}=        Evaluate                 $resp.json().get('resource-version')
180     Set Global Variable                 ${resource_version}
181
182 Run AAI Delete cr
183     [Documentation]             Delete the cr
184     ${resp}=                    DeleteWithCert           ${CRURL}?resource-version=${resource_version}
185     log                         ${resp.text}
186     Should Be Equal As Strings  ${resp.status_code}      204    
187         
188 *** Keywords ***
189 PutWithCert
190     [Arguments]      ${url}      ${data}
191     ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
192     ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
193     ${resp}=         Evaluate    requests.put('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
194     [return]         ${resp}
195         
196 PatchWithCert
197     [Arguments]      ${url}      ${data}
198     ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/merge-patch+json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
199     ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
200     ${resp}=         Evaluate    requests.patch('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
201     [return]         ${resp}    
202
203 PostWithCert
204     [Arguments]      ${url}      ${data}
205     ${auth}=         Create List  AAI AAI
206     ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
207     ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
208     ${resp}=         Evaluate    requests.post('${url}', data='${data}', headers=${headers}, cert=${certinfo}, verify=False)    requests
209     [return]         ${resp}
210
211 GetWithCert
212     [Arguments]      ${url}
213     ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
214     ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
215     ${resp}=         Evaluate    requests.get('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
216     [return]         ${resp}
217
218 DeleteWithCert
219     [Arguments]      ${url}
220     ${auth}=         Create List  AAI AAI
221     ${headers}=      Create Dictionary     Accept=application/json    Content-Type=application/json    X-TransactionId=integration-aai    X-FromAppId=integration-aai   Authorization=Basic QUFJOkFBSQ==
222     ${certinfo}=     Evaluate    ('${CURDIR}/aai.crt', '${CURDIR}/aai.key')
223     ${resp}=         Evaluate    requests.delete('${url}', headers=${headers}, cert=${certinfo}, verify=False)    requests
224     [return]         ${resp}