From b49dba16c3f8e87dd73654dc61348b799278d754 Mon Sep 17 00:00:00 2001 From: Yang Xu Date: Tue, 18 Sep 2018 10:51:22 -0400 Subject: Robot script triggering SO Macro for vFW use case Change-Id: I1944e3fa5f20091d7f6f7b58673f2ef5e51a3fe4 Issue-ID: CCSDK-537 Signed-off-by: Yang Xu --- .../vnf_orchestration_with_cds_test_template.robot | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot (limited to 'robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot') diff --git a/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot new file mode 100644 index 00000000..e1d1f43e --- /dev/null +++ b/robot/resources/test_templates/vnf_orchestration_with_cds_test_template.robot @@ -0,0 +1,145 @@ +*** Settings *** +Documentation This test template encapsulates the VNF Orchestration use case. + +Resource ../vid/create_service_instance.robot +Resource ../vid/vid_interface.robot +Resource ../aai/service_instance.robot +Resource ../vid/create_vid_vnf.robot +Resource ../vid/teardown_vid.robot +Resource ../sdngc_interface.robot +Resource ../mso_interface.robot +Resource model_test_template.robot + +Resource ../aai/create_zone.robot +Resource ../aai/create_customer.robot +Resource ../aai/create_complex.robot +Resource ../aai/create_tenant.robot +Resource ../aai/create_service.robot +Resource ../openstack/neutron_interface.robot +Resource ../heatbridge.robot + + +Library OpenstackLibrary +Library ExtendedSelenium2Library +Library UUID +Library Collections +Library JSONUtils + +Library RequestsLibrary +Library OperatingSystem +Library HEATUtils +Library StringTemplater +Library Collections +Resource ../global_properties.robot +Resource ../json_templater.robot + +*** Variables *** +${service_template} robot/assets/cds/service-Vfirewall0911-template.yml +${env} robot/assets/cds/env.yml +${so_request_template} robot/assets/cds/template_so_request.json +${vnf_template} robot/assets/cds/template_vnf.json +${so_uri_path} /onap/so/infra/serviceInstantiation/v7/serviceInstances +*** Variables *** + +#**************** TEST CASE VARIABLES ************************** +${TENANT_NAME} +${TENANT_ID} +${REGIONS} +${CUSTOMER_NAME} +${STACK_NAME} +${STACK_NAMES} +${SERVICE} +${VVG_SERVER_ID} +${SERVICE_INSTANCE_ID} + +*** Keywords *** +Orchestrate VNF With CDS Template + [Documentation] Use openECOMP to Orchestrate a service. + [Arguments] ${customer_name} ${service} ${product_family} ${tenant} + Orchestrate VNF With CDS ${customer_name} ${service} ${product_family} ${tenant} + +Orchestrate VNF With CDS + [Documentation] Use openECOMP to Orchestrate a service. + [Arguments] ${customer_name} ${service} ${product_family} ${tenant} ${project_name}=Project-Demonstration ${owning_entity}=OE-Demonstration + ${lcp_region}= Get Openstack Region + ${uuid}= Generate UUID + Set Test Variable ${CUSTOMER_NAME} ${customer_name}_${uuid} + Set Test Variable ${SERVICE} ${service} + ${list}= Create List + Set Test Variable ${STACK_NAMES} ${list} + ${service_instance_name}= Catenate Service_Ete_Name${uuid} + ${dict}= Create Dictionary + Set To Dictionary ${dict} service_instance_name=${service_instance_name} + + ${templatedata}= Template Yaml To Json ${service_template} + ${jsondata}= Evaluate json.loads('''${templatedata}''') json + Set To Dictionary ${dict} service_type=${jsondata['metadata']['type']} + Set To Dictionary ${dict} service_model_name=${jsondata['metadata']['name']} + Set To Dictionary ${dict} service_model_UUID=${jsondata['metadata']['UUID']} + Set To Dictionary ${dict} service_model_invariantUUID=${jsondata['metadata']['invariantUUID']} + + ${envdata}= Env Yaml To Json ${env} + ${envjson}= Evaluate json.loads('''${envdata}''') json + Set To Dictionary ${dict} subscriber_id=${envjson['subscriber_id']} + Set To Dictionary ${dict} subscription_service_type=${envjson['subscription_service_type']} + Set To Dictionary ${dict} cloud_region=${envjson['cloud_region']} + Set To Dictionary ${dict} tenant_id=${envjson['tenant_id']} + + ${list}= Create List + ${vnfs}= Get From Dictionary ${jsondata['topology_template']} node_templates + ${keys}= Get Dictionary Keys ${vnfs} + :for ${key} in @{keys} + \ ${vnf}= Get From Dictionary ${vnfs} ${key} + \ Get VNF Info ${key} ${vnf} ${dict} + \ ${vf_modules}= Get From Dictionary ${jsondata['topology_template']} groups + \ ${value}= Evaluate "${key}".replace("-","").replace(" ","") + \ ${value}= Convert To Lowercase ${value} + \ Get VFModule Info ${jsondata} ${value} ${dict} + \ ${vnf_template_payload}= OperatingSystem.Get File ${vnf_template} + \ ${vnf_payload}= Template String ${vnf_template_payload} ${dict} + \ ${data}= Catenate [${vnf_payload}] + + Set To Dictionary ${dict} vnfs=${data} + ${resp}= OperatingSystem.Get File ${so_request_template} + ${request}= Template String ${resp} ${dict} + Log To Console --------request-------- + Log to console ${request} + Log To Console --------end request-------- + ${resp}= Run MSO Post Request ${so_uri_path} ${request} + Log To Console --------response------- + ${json_string}= Evaluate json.dumps(${resp.json()}) json + Log To Console ${json_string} + Log To Console -------end response------- + + +Get VNF Info + [Documentation] Get VNF Info + [Arguments] ${vnf_name} ${vnfjson} ${dict} + ${metadata}= Get From Dictionary ${vnfjson} metadata + Set To Dictionary ${dict} vnf_name=${vnf_name} + Set To Dictionary ${dict} vnf_model_name=${metadata['name']} + Set To Dictionary ${dict} vnf_model_version_id=${metadata['UUID']} + Set To Dictionary ${dict} vnf_model_customization_name=${metadata['name']} + Set To Dictionary ${dict} vnf_model_customization_id=${metadata['customizationUUID']} + + +Get VFModule Info + [Documentation] Dig the vf module names from the VID service model + [Arguments] ${jsondata} ${vnf} ${dict} + ${vfModules}= Get From Dictionary ${jsondata['topology_template']} groups + ${keys}= Get Dictionary Keys ${vfModules} + :for ${key} in @{keys} + \ ${module}= Get From Dictionary ${vfModules} ${key} + \ Log to console ${vnf} ${key} + \ Run keyword if "${vnf}" in "${key}" set vfmodule param ${key} ${module} ${dict} + + +set vfmodule param + [Documentation] Set vfmodule parameters + [Arguments] ${vfmodule_name} ${vfmodule} ${dict} + Set To Dictionary ${dict} vf_module_model_type=${vfmodule['type']} + Set To Dictionary ${dict} vf_module_model_name=${vfmodule['metadata']['vfModuleModelName']} + Set To Dictionary ${dict} vf_module_model_version_id=${vfmodule['metadata']['vfModuleModelUUID']} + Set To Dictionary ${dict} vf_module_model_customization_id=${vfmodule['metadata']['vfModuleModelCustomizationUUID']} + Set To Dictionary ${dict} vf_module_name=${vfmodule_name} + -- cgit 1.2.3-korg