blob: fa238ce5bd6df1aae1c6ae7209db824f64b1adf8 [file] [log] [blame]
DR695Hccff30b2017-02-17 18:44:24 -05001*** Settings ***
2Documentation Validate A&AI Serivce Instance
3...
4... Validate A&AI Serivce Instance
5
6Resource aai_interface.robot
7Library Collections
8Library OperatingSystem
9Library RequestsLibrary
DR695H7aca1a42019-06-03 17:08:34 -040010Library ONAPLibrary.JSON
DR695H3bb6cf42019-06-20 15:04:04 -040011Library ONAPLibrary.Templating
DR695Hccff30b2017-02-17 18:44:24 -050012Resource ../stack_validation/validate_vlb.robot
13Resource ../stack_validation/validate_vfw.robot
14Resource ../stack_validation/validate_vvg.robot
jf986075010a42017-02-22 16:52:54 -050015Resource ../aai/aai_interface.robot
DR695Hccff30b2017-02-17 18:44:24 -050016
17*** Variables ***
Jerry Flood8a6b0b52017-11-12 15:44:21 -050018${INDEX PATH} /aai/v11
DR695Hccff30b2017-02-17 18:44:24 -050019${GENERIC_QUERY_PATH} /search/generic-query?
20${SYSTEM USER} robot-ete
21${CUSTOMER SPEC PATH} /business/customers/customer/
22${SERVICE SUBSCRIPTIONS} /service-subscriptions/service-subscription/
23${SERVICE INSTANCE} /service-instances?service-instance-id=
DR695H3bb6cf42019-06-20 15:04:04 -040024${SERVCE INSTANCE TEMPLATE} aai/service_subscription.jinja
DR695Hccff30b2017-02-17 18:44:24 -050025
26${GENERIC_VNF_PATH_TEMPLATE} /network/generic-vnfs/generic-vnf/\${vnf_id}/vf-modules/vf-module/\${vf_module_id}
jf9860de6a6e22017-03-04 13:14:09 -050027${GENERIC_VNF_QUERY_TEMPLATE} /network/generic-vnfs/generic-vnf/\${vnf_id}/vf-modules/vf-module?vf-module-name=\${vf_module_name}
DR695H3bb6cf42019-06-20 15:04:04 -040028${VLB_CLOSED_LOOP_HACK_BODY} aai/vlb_closed_loop_hack.jinja
jf986099c63292017-03-09 15:28:42 -050029
30#*************** Test Case Variables *************
jf986075010a42017-02-22 16:52:54 -050031${VLB_CLOSED_LOOP_DELETE}
jf9860de6a6e22017-03-04 13:14:09 -050032${VLB_CLOSED_LOOP_VNF_ID}
DR695Hccff30b2017-02-17 18:44:24 -050033
jf986099c63292017-03-09 15:28:42 -050034*** Keywords ***
DR695Hccff30b2017-02-17 18:44:24 -050035Validate Service Instance
jf986099c63292017-03-09 15:28:42 -050036 [Documentation] Query and Validates A&AI Service Instance
DR695Hccff30b2017-02-17 18:44:24 -050037 [Arguments] ${service_instance_name} ${service_type} ${customer_name}
jf986099c63292017-03-09 15:28:42 -050038 ${cust_resp}= Run A&AI Get Request ${INDEX PATH}/business/customers?subscriber-name=${customer_name}
DR695Hccff30b2017-02-17 18:44:24 -050039 ${resp}= Run A&AI Get Request ${INDEX PATH}${CUSTOMER SPEC PATH}${cust_resp.json()['customer'][0]['global-customer-id']}${SERVICE SUBSCRIPTIONS}${service_type}${SERVICE INSTANCE}${service_instance_name}
40 Dictionary Should Contain Value ${resp.json()['service-instance'][0]} ${service_instance_name}
jf986099c63292017-03-09 15:28:42 -050041
DR695Hccff30b2017-02-17 18:44:24 -050042Validate Generic VNF
jf986099c63292017-03-09 15:28:42 -050043 [Documentation] Query and Validates A&AI Service Instance
44 [Arguments] ${vnf_name} ${vnf_type} ${service_instance_id}
45 ${generic_vnf}= Run A&AI Get Request ${INDEX PATH}/network/generic-vnfs/generic-vnf?vnf-name=${vnf_name}
DR695Hccff30b2017-02-17 18:44:24 -050046 Dictionary Should Contain Value ${generic_vnf.json()} ${vnf_name}
47 ${returned_vnf_type}= Get From Dictionary ${generic_vnf.json()} vnf-type
48 Should Contain ${returned_vnf_type} ${vnf_type}
Jerry Floodfe79d7f2017-11-22 17:32:18 -050049 ${vnf_id}= Get From Dictionary ${generic_vnf.json()} vnf-id
50 ${generic_vnf}= Run A&AI Get Request ${INDEX PATH}/network/generic-vnfs/generic-vnf/${vnf_id}?depth=all
DR695Hccff30b2017-02-17 18:44:24 -050051 [Return] ${generic_vnf.json()}
jf986099c63292017-03-09 15:28:42 -050052
DR695Hccff30b2017-02-17 18:44:24 -050053VLB Closed Loop Hack
jf986099c63292017-03-09 15:28:42 -050054 [Arguments] ${service} ${generic_vnf} ${closedloop_vf_module}
DR695Hccff30b2017-02-17 18:44:24 -050055 Return From Keyword If '${service}' != 'vLB'
56 ${vnf_id}= Get From Dictionary ${generic_vnf} vnf-id
57 ${vf_modules}= Get From Dictionary ${generic_vnf} vf-modules
58 ${list}= Get From Dictionary ${vf_modules} vf-module
59 ${vfmodule}= Get From List ${list} 0
60 ${persona_model_id}= Get From Dictionary ${closedloop_vf_module} invariantUUID
61 ${persona_model_version}= Get From Dictionary ${closedloop_vf_module} version
jf9860de6a6e22017-03-04 13:14:09 -050062 ${dummy}= Catenate dummy_${vnf_id}
jf986099c63292017-03-09 15:28:42 -050063 ${dict}= Create Dictionary vnf_id=${vnf_id} vf_module_id=${dummy} persona_model_id=${persona_model_id} persona_model_version=${persona_model_version}
DR695Hccff30b2017-02-17 18:44:24 -050064 ${datapath}= Template String ${GENERIC_VNF_PATH_TEMPLATE} ${dict}
DR695H3bb6cf42019-06-20 15:04:04 -040065 Create Environment aai ${GLOBAL_TEMPLATE_FOLDER}
66 ${data}= Apply Template aai ${VLB_CLOSED_LOOP_HACK_BODY} ${dict}
DR695Hccff30b2017-02-17 18:44:24 -050067 ${put_resp}= Run A&AI Put Request ${INDEX PATH}${datapath} ${data}
68 ${status_string}= Convert To String ${put_resp.status_code}
jf986099c63292017-03-09 15:28:42 -050069 Should Match Regexp ${status_string} ^(201|412)$
70 Set Test Variable ${VLB_CLOSED_LOOP_DELETE} ${datapath}
71 Set Test Variable ${VLB_CLOSED_LOOP_VNF_ID} ${vnf_id}
jf9860de6a6e22017-03-04 13:14:09 -050072
73
74VLB Closed Loop Hack Update
75 [Documentation] Update the A&AI vDNS scaling vf module to have persona-model-version 1 rather than 1.0
76 [Arguments] ${stack_name}
77 ${dict}= Create Dictionary vnf_id=${VLB_CLOSED_LOOP_VNF_ID} vf_module_name=${stack_name}
jf986099c63292017-03-09 15:28:42 -050078 ${query}= Template String ${GENERIC_VNF_QUERY_TEMPLATE} ${dict}
jf9860de6a6e22017-03-04 13:14:09 -050079 ${get_resp}= Run A&AI Get Request ${INDEX_PATH}${query}
80 ${json}= Set Variable ${get_resp.json()}
81 Set to Dictionary ${json} persona-model-version 1
82 ${vf_module_id}= Get From Dictionary ${json} vf-module-id
83 Set to Dictionary ${dict} vf_module_id=${vf_module_id}
jf986099c63292017-03-09 15:28:42 -050084 ${uri}= Template String ${GENERIC_VNF_PATH_TEMPLATE} ${dict}
jf9860de6a6e22017-03-04 13:14:09 -050085 ${resp}= Run A&AI Put Request ${INDEX_PATH}${uri} ${json}
86 ${get_resp}= Run A&AI Get Request ${INDEX_PATH}${query}
87
jf986075010a42017-02-22 16:52:54 -050088
89Teardown VLB Closed Loop Hack
90 Return From Keyword If ' ${VLB_CLOSED_LOOP_DELETE}' == ''
91 Delete A&AI Entity ${VLB_CLOSED_LOOP_DELETE}
DR695Hccff30b2017-02-17 18:44:24 -050092
jf986099c63292017-03-09 15:28:42 -050093
94Validate VF Module
95 [Documentation] Query and Validates A&AI Service Instance
96 [Arguments] ${vf_module_name} ${stack_type}
97 Run Keyword If '${stack_type}'=='vLB' Validate vLB Stack ${vf_module_name}
98 Run Keyword If '${stack_type}'=='vFW' Validate Firewall Stack ${vf_module_name}
99 Run Keyword If '${stack_type}'=='vVG' Validate vVG Stack ${vf_module_name}
100
101*** Keywords ***
DR695Hccff30b2017-02-17 18:44:24 -0500102Create AAI Service Instance
jf986099c63292017-03-09 15:28:42 -0500103 [Documentation] Query and Validates A&AI Service Instance
104 [Arguments] ${customer_id} ${service_type} ${service_instance_id} ${service_instance_name}
DR695Hccff30b2017-02-17 18:44:24 -0500105 ${json_string}= Catenate { "service-type": "VDNS" , "service-subscriptions":[{"service-instance-id":"instanceid123","service-instance-name":"VDNS"}]}
106 ${put_resp}= Run A&AI Put Request ${INDEX PATH}${CUSTOMER SPEC PATH}${CUSTOMER ID}${SERVICE SUBSCRIPTIONS}/{service_type} ${json_string}
107 Should Be Equal As Strings ${put_resp.status_code} 201
jf986099c63292017-03-09 15:28:42 -0500108 [Return] ${put_resp.status_code}
109