blob: 56cd0b96cbad0cbd339a302c6c10af3e97306e5f (
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
*** Settings ***
Documentation This test template encapsulates the VNF Orchestration use case.
Library OperatingSystem
Library ArchiveLibrary
Library Collections
Library ONAPLibrary.Templating WITH NAME Templating
Resource ../global_properties.robot
Resource ../vnfsdk_interface.robot
Resource ../sdc_interface.robot
*** Variables ***
${VNFSDK_TEST} vnfsdk/vnfsdk_validation_request.jinja
*** Variables ***
${VNFSDK_TOSCA_ONBOARDING_PACKAGES_DIRECTORY} ${GLOBAL_TOSCA_ONBOARDING_PACKAGES_FOLDER}/vnfsdk
${VNFSDK_CSAR_DIRECTORY} ${VNFSDK_TOSCA_ONBOARDING_PACKAGES_DIRECTORY}/temp
@{empty_list}
*** Keywords ***
Validate Onboarding Package
[Arguments] ${package_folder} ${scenario}=onap-vtp ${test_suite_name}=validation ${test_case_name}=csar-validate ${pnf}=TRUE ${secured_package}=FALSE ${negative_test_case}=TRUE ${failed_vnfreqNames}=@{empty_list} ${sdc_response}=@{empty_list} ${secure_type}=CMS ${sdc_cert}=sdc-valid
Create Directory ${VNFSDK_CSAR_DIRECTORY}
${onboarding_package_path}= Run Keyword If "${secured_package}"=='FALSE' Create CSAR Package ${package_folder}
... ELSE Create Secured CSAR ZIP Package ${package_folder} ${secure_type} ${sdc_cert}
Run Keyword If "${negative_test_case}"=='FALSE' Validate Valid Onboarding Package ${package_folder} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf} ${secured_package}
... ELSE Validate Not Valid Onboarding Package ${package_folder} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf} ${failed_vnfreqNames} ${secured_package}
Validate Onboarding Package In SDC ${onboarding_package_path} ${package_folder} ${sdc_cert} ${negative_test_case} ${sdc_response} ${sdc_cert}
Create CSAR Package
[Arguments] ${package_folder}
Empty Directory ${VNFSDK_CSAR_DIRECTORY}
${csar}= Catenate ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.csar
Copy File ${GLOBAL_TOSCA_ONBOARDING_PACKAGES_FOLDER}/vnfsdk/${package_folder}.csar ${csar}
[Return] ${csar}
Create Secured CSAR ZIP Package
[Arguments] ${package_folder} ${secure_type} ${sdc_cert}
${zip}= Run Keyword If "${secure_type}"=='CMS' Create Secured CSAR ZIP Package with CMS ${package_folder} ${sdc_cert}
... ELSE Create Secured CSAR ZIP Package with CMS and CERT ${package_folder} ${sdc_cert}
[Return] ${zip}
Create Secured CSAR ZIP Package with CMS
[Arguments] ${package_folder} ${cert}
${zip}= Catenate ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.zip
${cms}= Catenate ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.cms
${csar}= Create CSAR Package ${package_folder}
${rc} = Run and Return RC openssl cms -sign -signer /tmp/package-robot-${cert}.cert -inkey /tmp/package-private-robot-${cert}.key -outform PEM -binary -in ${csar} -out ${cms}
Should Be Equal As Integers ${rc} 0
${rc} = Run and Return RC cd ${VNFSDK_CSAR_DIRECTORY}; zip -r ${zip} *
Should Be Equal As Integers ${rc} 0
[Return] ${zip}
Create Secured CSAR ZIP Package with CMS and CERT
[Arguments] ${package_folder} ${cert}
${zip}= Catenate ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.zip
${cms}= Catenate ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.cms
${csar}= Create CSAR Package ${package_folder}
Copy File /tmp/package-robot-${cert}.cert ${VNFSDK_CSAR_DIRECTORY}/${package_folder}.cert
${rc} = Run and Return RC openssl cms -sign -signer /tmp/package-robot-${cert}.cert -inkey /tmp/package-private-robot-${cert}.key -outform PEM -binary -nocerts -in ${csar} -out ${cms}
Should Be Equal As Integers ${rc} 0
${rc} = Run and Return RC cd ${VNFSDK_CSAR_DIRECTORY}; zip -r ${zip} *
Should Be Equal As Integers ${rc} 0
[Return] ${zip}
Validate Valid Onboarding Package
[Arguments] ${package_folder} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf} ${secured_package}
${onboarding_package_name}= Run Keyword If "${secured_package}"=='FALSE' Catenate ${package_folder}.csar
... ELSE Catenate ${package_folder}.zip
${result}= Run VNFSDK Validate Request ${onboarding_package_name} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf}
Log ${result.json()}
${json}= Set Variable ${result.json()}
${status}= Set Variable ${json[0]['results']['criteria']}
Should Be Equal As Strings ${status} PASS
Run VNFSDK Validate Request
[Arguments] ${onboarding_package_name} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf}
${arguments}= Create Dictionary scenario=${scenario} onboarding_package_path=${onboarding_package_path} test_suite_name=${test_suite_name} test_case_name=${test_case_name} pnf=${pnf} file_name=${onboarding_package_name}
Templating.Create Environment vnfsdk ${GLOBAL_TEMPLATE_FOLDER}
${executions}= Templating.Apply Template vnfsdk ${VNFSDK_TEST} ${arguments}
${fileData}= Get Binary File ${onboarding_package_path}
${fileDir} ${fileName}= Split Path ${onboarding_package_path}
${file_part}= Create List ${fileName} ${fileData} application/octet-stream
${executions_parts}= Create List ${executions}
${fileParts}= Create Dictionary
Set to Dictionary ${fileParts} file=${file_part}
Set to Dictionary ${fileParts} executions=${executions}
${resp}= Run VNFSDK Post Request /onapapi/vnfsdk-marketplace/v1/vtp/executions ${fileParts}
[Return] ${resp}
Validate Not Valid Onboarding Package
[Arguments] ${package_folder} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf} ${failed_req_list} ${secured_package}
${onboarding_package_name}= Run Keyword If "${secured_package}"=='FALSE' Catenate ${package_folder}.csar
... ELSE Catenate ${package_folder}.zip
${result}= Run VNFSDK Validate Request ${onboarding_package_name} ${onboarding_package_path} ${scenario} ${test_suite_name} ${test_case_name} ${pnf}
Log ${result.json()}
${json}= Set Variable ${result.json()}
${status}= Set Variable ${json[0]['results']['criteria']}
Should Be Equal As Strings ${status} FAILED
${status_req_list}= Set Variable ${json[0]['results']['results']}
${failed_req_from_test_run}= Create List
:FOR ${status_req} IN @{status_req_list}
\ ${req_status}= Get From Dictionary ${status_req} passed
\ Run Keyword If "${req_status}"=='False' Add Failed Requirement To List ${status_req} ${failed_req_from_test_run} vnfreqName
Log ${failed_req_from_test_run}
Lists Should Be Equal ${failed_req_from_test_run} ${failed_req_list}
Add Failed Requirement To List
[Arguments] ${status_req} ${failed_req} ${param_name}
${req}= Get From Dictionary ${status_req} ${param_name}
Append To List ${failed_req} ${req}
Get And Comapre Error Responses From SDC API
[Arguments] ${resp} ${sdc_response}
${json}= Set Variable ${resp.json()}
${sdc_response_list} Set Variable ${json['errors']['uploadFile']}
${failed_req_from_test_run}= Create List
:FOR ${message_item} IN @{sdc_response_list}
\ ${req_status}= Get From Dictionary ${message_item} level
\ Run Keyword If "${req_status}"=='ERROR' Add Failed Requirement To List ${message_item} ${failed_req_from_test_run} message
Log ${failed_req_from_test_run}
Lists Should Be Equal ${failed_req_from_test_run} ${sdc_response}
Validate Onboarding Package In SDC
[Arguments] ${onboarding_package_path} ${package_folder} ${sdc_validation} ${negative_test_case} ${sdc_response} ${sdc_cert}
${license_model_id} ${license_model_version_id}= Add SDC License Model
${license_temp_date}= Get Current Date
${license_start_date}= Get Current Date result_format=%m/%d/%Y
${license_end_date}= Add Time To Date ${license_temp_date} 365 days result_format=%m/%d/%Y
${key_group_id}= Add SDC License Group ${license_model_id} ${license_model_version_id} ${license_start_date} ${license_end_date}
${pool_id}= Add SDC Entitlement Pool ${license_model_id} ${license_model_version_id} ${license_start_date} ${license_end_date}
${feature_group_id}= Add SDC Feature Group ${license_model_id} ${key_group_id} ${pool_id} ${license_model_version_id}
${license_agreement_id}= Add SDC License Agreement ${license_model_id} ${feature_group_id} ${license_model_version_id}
Submit SDC License Model ${license_model_id} ${license_model_version_id}
${license_model_resp}= Get SDC License Model ${license_model_id} ${license_model_version_id}
${software_product_id} ${software_product_version_id}= Add SDC Software Product ${license_agreement_id} ${feature_group_id} ${license_model_resp['vendorName']} ${license_model_id} ${license_model_version_id} ${package_folder}
${resp}= Upload SDC Heat Package ${software_product_id} ${onboarding_package_path} ${software_product_version_id}
Run Keyword If "${negative_test_case}"=='TRUE' or "${sdc_cert}"=='sdc-invalid' Get And Comapre Error Responses From SDC API ${resp} ${sdc_response}
... ELSE Validate SDC Software Product ${software_product_id} ${software_product_version_id}
|