| *** Settings *** |
| Documentation CMPv2 Usecase functionality |
| Test Timeout 15m |
| Library RequestsLibrary |
| Library OperatingSystem |
| Library Collections |
| Library String |
| Library JSONLibrary |
| Library ONAPLibrary.JSON |
| Library ONAPLibrary.Utilities |
| Library ONAPLibrary.Templating WITH NAME Templating |
| Resource ../resources/dcae/deployment.robot |
| Resource ../resources/dcae/inventory.robot |
| Resource ../resources/global_properties.robot |
| Resource ../resources/test_templates/cmpv2.robot |
| Resource ../resources/test_templates/pnf_registration_without_SO_template.robot |
| Suite Setup Send VES integration request ${initial entry} |
| Suite Teardown Usecase Teardown |
| |
| *** Variables *** |
| ${MONGO_BLUEPRINT_PATH} ${EXECDIR}/robot/assets/cmpv2/k8s-mongo-ves-client.yaml |
| ${PNF_SIMULATOR_BLUEPRINT_PATH} ${EXECDIR}/robot/assets/cmpv2/k8s-ves-client.yaml |
| ${VES_INPUTS} deployment/VesTlsCmpv2Inputs.jinja |
| ${pnf_ves_integration_request} ves/pnf_registration_request.jinja |
| ${NEXUS3} ${GLOBAL_INJECTED_NEXUS_DOCKER_REPO} |
| &{initial entry} correlation_id=dummy PNF_IPv4_address=11.11.11.1 PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab |
| |
| |
| *** Test Cases *** |
| |
| Deploying VES Client |
| [Documentation] |
| ... This test case deploys VES Client with "enable_tls": set to false and "external_cert_use_external_tls" (CMPv2) set to true as DCAE applictaion |
| [Tags] CMPv2 |
| ${rand} Generate Random String 5 [NUMBERS][LOWER] |
| Set Suite Variable ${ves_client_hostname} ves-client-${rand} |
| ${serviceTypeIdMongo} Load Blueprint To Inventory ${MONGO_BLUEPRINT_PATH} mongo-${rand} |
| ${serviceTypeIdPnfSimulator} Load Blueprint To Inventory ${PNF_SIMULATOR_BLUEPRINT_PATH} ves-client-${rand} |
| Set Suite Variable ${serviceTypeIdMongo} |
| Set Suite Variable ${serviceTypeIdPnfSimulator} |
| ${deployment_data}= Set Variable {"serviceTypeId":"${serviceTypeIdMongo}", "inputs":{"service_component_name_override":"mongo-${ves_client_hostname}","service_component_type":"mongo-${ves_client_hostname}"}} |
| Set Suite Variable ${mongo-dep} mongo-dep-${rand} |
| Deploy Service ${deployment_data} ${mongo-dep} 2 minutes |
| ${resp}= Get Blueprint From Inventory ves-client-${rand} |
| ${json}= Set Variable ${resp.json()} |
| ${image} Get Regexp Matches ${json['items'][0]['blueprintTemplate']} nexus3(.)*?(?=\') |
| ${image} Replace String ${image}[0] nexus3.onap.org:10001 ${NEXUS3} |
| ${deployment_data}= Set Variable {"serviceTypeId":"${serviceTypeIdPnfSimulator}", "inputs":{"tag_version": "${image}", "service_component_name_override":"${ves_client_hostname}"}} |
| Set Suite Variable ${ves-client-dep} ves-client-dep-${rand} |
| Deploy Service ${deployment_data} ${ves-client-dep} 4 minutes |
| |
| |
| Deploying VES collector with CMPv2 |
| [Documentation] |
| ... This test case deploys second VES instance with "enable_tls": set to true and "external_cert_use_external_tls" (CMPv2) set to true as DCAE applictaion |
| ... Both CMPv2 and AAF certificates are present |
| [Tags] CMPv2 |
| ${resp}= Get Blueprint From Inventory k8s-ves |
| ${json}= Set Variable ${resp.json()} |
| ${serviceTypeIdVes} Set Variable ${json['items'][0]['typeId']} |
| ${image} Get Regexp Matches ${json['items'][0]['blueprintTemplate']} nexus3(.)*?(?=\") |
| ${image} Replace String ${image}[0] nexus3.onap.org:10001 ${NEXUS3} |
| ${arguments}= Create Dictionary serviceTypeId=${serviceTypeIdVes} |
| Set To Dictionary ${arguments} image ${image} |
| Set To Dictionary ${arguments} external_port_tls 32226 |
| Set To Dictionary ${arguments} service_component_name_override dcae-ves-collector-cmpv2-cert |
| Set To Dictionary ${arguments} external_cert_sans dcae-ves-collector-cmpv2-cert,ves-collector-cmpv2-cert,ves-cmpv2-cert |
| Templating.Create Environment deployment ${GLOBAL_TEMPLATE_FOLDER} |
| ${deployment_data}= Templating.Apply Template deployment ${VES_INPUTS} ${arguments} |
| Deploy Service ${deployment_data} ves-collector-cmpv2-dep 4 minutes |
| |
| Deploying VES collector with CMPv2 and wrong SANs |
| [Documentation] |
| ... This test case deploys second VES instance with "enable_tls": set to true and "external_cert_use_external_tls" (CMPv2) set to true as DCAE applictaion, CMPv2 certificate has wrong SANs |
| ... Both CMPv2 and AAF certificates are present |
| [Tags] CMPv2 |
| ${resp}= Get Blueprint From Inventory k8s-ves |
| ${json}= Set Variable ${resp.json()} |
| ${serviceTypeIdVes} Set Variable ${json['items'][0]['typeId']} |
| ${image} Get Regexp Matches ${json['items'][0]['blueprintTemplate']} nexus3(.)*?(?=\") |
| ${image} Replace String ${image}[0] nexus3.onap.org:10001 ${NEXUS3} |
| ${arguments}= Create Dictionary serviceTypeId=${serviceTypeIdVes} |
| Set To Dictionary ${arguments} image ${image} |
| Set To Dictionary ${arguments} external_port_tls 32227 |
| Set To Dictionary ${arguments} service_component_name_override dcae-ves-collector-cmpv2-cert-wrong-sans |
| Set To Dictionary ${arguments} external_cert_sans wrong-sans |
| Templating.Create Environment deployment ${GLOBAL_TEMPLATE_FOLDER} |
| ${deployment_data}= Templating.Apply Template deployment ${VES_INPUTS} ${arguments} |
| Deploy Service ${deployment_data} ves-collector-cmpv2-wrong-sans-dep 4 minutes |
| |
| Send registration request to CMPv2 VES |
| [Documentation] |
| ... This test case triggers registration request from VES Client (where is present only CMPv2 certificate) to VES collector |
| ... with enabled CMPv2 (both CMPv2 and AAF certificates are present). |
| ... Test expects successful registration |
| [Tags] CMPv2 |
| ${pnf_correlation_id}= Generate Random String 20 [LETTERS][NUMBERS] |
| ${PNF_entry_dict}= Create Dictionary correlation_id=${pnf_correlation_id} PNF_IPv4_address=13.13.13.13 PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab |
| Wait Until Keyword Succeeds 10x 5s Check VES_PNFREG_OUTPUT topic presence in MR |
| Create PNF initial entry in A&AI ${PNF_entry_dict} |
| Templating.Create Environment ves ${GLOBAL_TEMPLATE_FOLDER} |
| ${template}= Templating.Apply Template ves ${pnf_ves_integration_request} ${PNF_entry_dict} |
| VES Client send single VES event ${template} dcae-ves-collector-cmpv2-cert 8443 ${ves_client_hostname} 5000 |
| Verify PNF Integration Request in A&AI ${PNF_entry_dict} |
| |
| Send registration request to CMPv2 VES with wrong SAN-s |
| [Documentation] |
| ... This test case triggers registration request from VES Client (where is present only CMPv2 certificate) to VES collector |
| ... ith enabled CMPv2 (both CMPv2 and AAF certificates are present). CMPv2 certificate has wrong SANs. |
| [Tags] CMPv2 |
| ${pnf_correlation_id}= Generate Random String 20 [LETTERS][NUMBERS] |
| ${PNF_entry_dict}= Create Dictionary correlation_id=${pnf_correlation_id} PNF_IPv4_address=14.14.14.14 PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab |
| Templating.Create Environment ves ${GLOBAL_TEMPLATE_FOLDER} |
| ${template}= Templating.Apply Template ves ${pnf_ves_integration_request} ${PNF_entry_dict} |
| ${resp}= VES Client send single VES event ${template} dcae-ves-collector-cmpv2-cert-wrong-sans 8443 ${ves_client_hostname} 5000 421 |
| Should Contain ${resp.json().get('message')} wrong-sans |
| |
| Send registration request to VES without CMPv2 certificate |
| [Documentation] |
| ... This test case triggers registration request from VES Client (where is present only CMPv2 certificate) to VES collector |
| ... with disabled CMPv2 (only AAF certificate is present - VES collector deployed during whole ONAP deploy). |
| [Tags] CMPv2 |
| ${pnf_correlation_id}= Generate Random String 20 [LETTERS][NUMBERS] |
| ${PNF_entry_dict}= Create Dictionary correlation_id=${pnf_correlation_id} PNF_IPv4_address=14.14.14.14 PNF_IPv6_address=2001:0db8:0:0:0:0:1428:57ab |
| Templating.Create Environment ves ${GLOBAL_TEMPLATE_FOLDER} |
| ${template}= Templating.Apply Template ves ${pnf_ves_integration_request} ${PNF_entry_dict} |
| ${resp}= VES Client send single VES event ${template} dcae-ves-collector 8443 ${ves_client_hostname} 5000 421 |
| Should Contain ${resp.json().get('message')} certificate_unknown |
| |