2 Resource ./resources/vnfsdk_keywords.robot
6 Perform vnf refrepo healthcheck
7 [Documentation] Check if vnf refrepo is up and running
9 Create Session refrepo ${base_url}
10 ${response}= Get Request refrepo /PackageResource/healthcheck
11 Should Be Equal As Strings ${response.status_code} 200
14 Validate correct, no security CSAR
15 [Documentation] Valid CSAR with no security should PASS validation and should return no error
17 ${response}= Validate CSAR usign Post request ${csar_valid_no_security} ${execute_no_security_csar_validation}
18 # Removing strings that are causing errors during evaluation,
19 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
20 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
21 ${json_response}= evaluate json.loads('''${response}''') json
22 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_PASS}
23 FOR ${resault} IN @{json_response[0]["results"]["results"]}
24 Should Be Equal As Strings ${resault["errors"]} []
25 Should Be Equal As Strings ${resault["passed"]} True
26 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
27 ... Should Be Equal As Strings ${resault["warnings"]} ${expected_valid_no_security_warnings}
31 Validate secure CSAR with invalid certificate
32 [Documentation] Valid CSAR with cms signature in manifest file and certificate in TOSCA, containing individual signatures for multiple artifacts, using common certificate and individual certificate
34 ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation}
35 # Removing strings that are causing errors during evaluation,
36 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
37 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
38 ${json_response}= evaluate json.loads('''${response}''') json
39 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED}
40 ${validated_rules}= Get Length ${json_response[0]["results"]["results"]}
41 Should Be Equal As Strings ${validated_rules} 14
42 FOR ${resault} IN @{json_response[0]["results"]["results"]}
43 ${validation_errors}= Get Length ${resault["errors"]}
44 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
45 ... Should Be Equal As Strings ${validation_errors} 7
46 run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}"
47 ... Should Be Equal As Strings ${validation_errors} 1
48 run keyword if "${resault["vnfreqName"]}" == "${MANIFEST_FILE_RULE}"
49 ... Should Be Equal As Strings ${validation_errors} 1
50 run keyword if "${resault["vnfreqName"]}" == "${NON_MANO_FILES_RULE}"
51 ... Should Be Equal As Strings ${validation_errors} 4
55 Validate CSAR using selected rules
56 [Documentation] Valid CSAR using only selected rules provided in request parameters
58 ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation_selected_rules}
59 # Removing strings that are causing errors during evaluation,
60 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
61 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
62 ${json_response}= evaluate json.loads('''${response}''') json
63 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED}
64 ${validated_rules}= Get Length ${json_response[0]["results"]["results"]}
65 Should Be Equal As Strings ${validated_rules} 3
66 FOR ${resault} IN @{json_response[0]["results"]["results"]}
67 ${validation_errors}= Get Length ${resault["errors"]}
68 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
69 ... Should Be Equal As Strings ${validation_errors} 7
70 run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}"
71 ... Should Be Equal As Strings ${validation_errors} 1
76 Validate CSAR using rule r130206 and use get method to receive outcome
77 [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using rule r130206 , then use get method with validation id to receive valdiation outcome
79 ${response}= Validate CSAR usign Post request ${csar_invalid_pm_dictionary} ${execute_invalid_pm_dictionary_r130206_validation}
80 # Removing strings that are causing errors during evaluation,
81 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
82 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
83 ${json_response}= evaluate json.loads('''${response}''') json
85 ${get_response}= Get validation result using GET request ${json_response[0]["executionId"]}
86 # Removing strings that are causing errors during evaluation,
87 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
88 ${get_response}= Remove String ${get_response} \\\\ \\u0027
89 ${json_get_response}= evaluate json.loads('''${get_response}''') json
90 Should Be Equal As Strings ${json_get_response[0]["status"]} failed
91 ${errors_number}= Get Length ${json_get_response[0]["results"]}
92 Should Be Equal As Strings ${errors_number} 4
93 FOR ${error} IN @{json_get_response[0]["results"]}
94 Should Contain ${error["code"]} R130206
97 Validate CSAR using all rule and use get method to receive outcome
98 [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using all rules, then use get method with validation id to receive valdiation outcome
100 ${response}= Validate CSAR usign Post request ${csar_invalid_pm_dictionary} ${execute_invalid_pm_dictionary_validation}
101 # Removing strings that are causing errors during evaluation,
102 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
103 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
104 ${json_response}= evaluate json.loads('''${response}''') json
106 ${get_response}= Get validation result using GET request ${json_response[0]["executionId"]}
107 # Removing strings that are causing errors during evaluation,
108 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
109 ${get_response}= Remove String ${get_response} \\\\ \\u0027 \\u003c \\u003e \\"
110 ${json_get_response}= evaluate json.loads('''${get_response}''') json
111 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} FAILED
112 FOR ${resault} IN @{json_response[0]["results"]["results"]}
113 Should Be Equal As Strings ${resault["warnings"]} []
114 Run keyword if "${resault["vnfreqName"]}" == "r130206"
115 ... Should Be Equal As Strings ${resault["passed"]} False