Commit f3b7789e authored by zafar's avatar zafar
Browse files

descriptors added in test case 5.3.5.1.11

parent 231f3034
Loading
Loading
Loading
Loading
+168 −0
Original line number Diff line number Diff line
tosca_definitions_version: tosca_simple_yaml_1_2
description: "TST010 reference VNF-B"
metadata:
  descriptor_id: "VNF-B"
  vendor: "ETSI TST WG"
  version: "2.0"
topology_template:
  substitution_mappings:
    node_type: "tosca.nodes.nfv.VNF"
    requirements:
      virtual_link_management:
        [management, virtual_link_management]
      virtual_link_left:
        [left, virtual_link_left]
      virtual_link_right:
        [right, virtual_link_right]
  node_templates:
    VDU-B-1:
      type: "tosca.nodes.nfv.Vdu.Compute"
      properties:
        name: "vdu-b-1-vcd"
        descriptor: "Description of VDU-B-1"
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 2
      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 4096
              numa_enabled: false
            virtual_cpu:
              num_virtual_cpu: 2
      requirements:
        virtual_storage:
        - "vdu-b-1-vsd"
    VDU-B-2:
      type: "tosca.nodes.nfv.Vdu.Compute"
      properties:
        name: "vdu-b-2-vcd"
        descriptor: "Description of VDU-B-2"
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 4
      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 6144
              numa_enabled: false
            virtual_cpu:
              num_virtual_cpu: 2
      requirements:
        virtual_storage:
        - "vdu-b-2-vsd"
    right:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 1
      requirements:
        virtual_link_right:
        virtual_binding: VDU-B-2
    management:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 0
      requirements:
        virtual_link_management:
        virtual_binding: VDU-B-1
    left:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 2
      requirements:
        virtual_link_left:
        virtual_binding: VDU-B-1
    internal_vl:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
          layer_protocols: [ ipv4 ]
        description: Internal Virtual link in the VNF
        vl_profile:
          max_bitrate_requirements:
            root: 100000
            leaf: 20000
          min_bitrate_requirements:
            root: 10000
            leaf: 10000
    internal_vdu_b_1_cp:
      type: tosca.nodes.nfv.VduCp
      properties:
        order: 2
      requirements:
        - virtual_binding: VDU-B-1
        - virtual_link: internal_vl
    internal_vdu_b_2_cp:
      type: tosca.nodes.nfv.VduCp
      properties:
        order: 0
      requirements:
        - virtual_binding: VDU-B-2
        - virtual_link: internal_vl
    vdu-b-1-vsd:
      type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage"
      properties:
        virtual_block_storage_data:
          size_of_storage: 20
          rdma_enabled: false
        sw_image_data:
          name: "vdu-b-1 image"
          version: "1.1"
          checksum: 
            algorithm: "sha-224"
            hash: "somehashfortst010"
          container_format: "bare"
          disk-format: qcow2
          min-disk: '1'
          min-ram: '2'
          size: '1'
      artifacts:
        sw_image:
          type: tosca.artifacts.nfv.SwImage
          file: vdu-b-1.qcow2
    vdu-b-1-vsd:
      type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage"
      properties:
        virtual_block_storage_data:
          size_of_storage: 20
          rdma_enabled: false
        sw_image_data:
          name: "vdu-b-1 image"
          version: "1.1"
          checksum: 
            algorithm: "sha-224"
            hash: "somehashfortst010"
          container_format: "bare"
          disk-format: qcow2
          min-disk: '1'
          min-ram: '2'
          size: '1'
      artifacts:
        sw_image:
          type: tosca.artifacts.nfv.SwImage
          file: vdu-b-2.qcow2
    vnf_b_1_VNF:
      type: "tosca.nodes.nfv.VNF"
      properties:
        descriptor_id: "VNF-B-2VDUs"
        descriptor_version: "2.0"
        provider: "ETSI TST WG"
        product_name: "VNF-B-2VDUs"
        software_version: "2.0"
        product_info_name: "VNF-B-2VDUs"
        product_info_description: "TST010 reference VNF-B with 2 VDUs"
        flavour_id: "VNF-B-2VDU_flavor"
        flavour_description: "VNF-B with 2 VDUs flavor"
        vnfm_info: 
          etsivnfm: 
          - v2.3.1 
        interfaces:
            Vnflcm:
              scale:
                implementation: scale-example.yaml
              terminate:
                implementation: terminate-example.yaml
              operate:
                implementation: operate-example.yaml
+105 −0
Original line number Diff line number Diff line
nfv:
  vnfd:
    - id: VNF-B-2df
      provider: ETSI TST WG
      product-name: TST010 reference VNF-B with 2 DFs
      software-version: '2.1'
      version: '2.1'
      vnfm-info: ETSI VNFM
      vdu:
        id: vdu-b-1
        name: VNF-B VDU 1
        int-cpd:
          - id: left
            layer-protocol: ethernet
          - id: management
            layer-protocol: ethernet
          - id: right
            layer-protocol: ethernet
        virtual-compute-desc: vdu-b-1-vcd
        virtual-storage-desc: vdu-b-1-vsd
        sw-image-desc: vdu-b-1-image
      virtual-compute-desc:
        id: vdu-b-1-vcd
        virtual-memory:
          size: '4.0'
        virtual-cpu:
          num-virtual-cpu: '2'
      virtual-storage-desc:
        id: vdu-b-1-vsd
        type-of-storage: root-storage
        size-of-storage: '0'
      sw-image-desc:
        id: vdu-b-1-image
        name: VNF-B image
        version: '1.1'
        checksum:
          algorithm: sha-224
          hash: somehashfortst010
        container-format: bare
        disk-format: qcow2
        min-disk: '1'
        min-ram: '2.0'
        size: '1'
        image: 'http://someurl.com/VNF-B.qcow2'
      ext-cpd:
        - id: ext-b-left
          int-cpd:
            vdu-id: vdu-b-1
            cpd: left
          layer-protocol: ethernet
        - id: management
          int-cpd:
            vdu-id: vdu-b-1
            cpd: management
          layer-protocol: ethernet
        - id: ext-b-right
          int-cpd:
            vdu-id: vdu-b-1
            cpd: right
          layer-protocol: ethernet
      df:
        - id: small
          vdu-profile:
            id: vdu-b-1
            min-number-of-instances: '1'
            max-number-of-instances: '2'
          instantiation-level:
            - id: double
              vdu-level:
                vdu-id: vdu-b-1
                number-of-instances: '2'
            - id: single
              vdu-level:
                vdu-id: vdu-b-1
                number-of-instances: '1'
          default-instantiation-level: single
          lcm-operations-configuration:
            scale-vnf-to-level-op-config:
              arbitrary-target-levels-supported: 'true'
            terminate-vnf-op-config:
              min-graceful-termination: '1'
            operate-vnf-op-config:
              min-graceful-stop-timeout: '1'
        - id: big
          vdu-profile:
            id: vdu-b-1
            min-number-of-instances: '1'
            max-number-of-instances: '4'
          instantiation-level:
            - id: double
              vdu-level:
                vdu-id: vdu-b-1
                number-of-instances: '2'
            - id: triple
              vdu-level:
                vdu-id: vdu-b-1
                number-of-instances: '3'
          default-instantiation-level: double
          lcm-operations-configuration:
            scale-vnf-to-level-op-config:
              arbitrary-target-levels-supported: 'true'
            terminate-vnf-op-config:
              min-graceful-termination: '1'
            operate-vnf-op-config:
              min-graceful-stop-timeout: '1'
+65 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT} ssl_veri
Library           Process
Library           MockServerLibrary
Library           String
Variables    descriptors/SOL001/vnf-b-1_VNF.yaml


*** Keywords ***
@@ -174,12 +175,75 @@ Send Post Request to create new VNF Package Resource
    Log    Creating a new VNF Package
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
    Set Headers    {"Content-Type": "${CONTENT_TYPE_JSON}"}
    Run Keyword If    ${check_descriptors} == 1    Add VNF Descriptor Content to VNF Package
    ${body} =    Get File    jsons/CreateVnfPkgInfoRequest.json
    Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": "${AUTHORIZATION}"}
    POST    ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_packages    ${body}
    ${output}=    Output    response
    Set Suite Variable    ${response}    ${output} 

Get key for VNF Descriptor
    FOR    ${key}    IN    @{topology_template.node_templates.keys()} 
        Log    ${key}
        ${check1}=    Run Keyword And Return Status    Should End With    ${key}    VNF
        Run Keyword If     ${check1}     Set Global Variable    ${vnfKey}    ${key}   
    END
    
Add VNF Descriptor Content to VNF Package
    Run Keyword If  '${descriptorType}'=='SOL001'  Parse SOL001 VNF Package    ELSE    Parse SOL006 VNF Package

Parse SOL001 VNF Package
    Get key for VNF Descriptor
    ${descriptor_id}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.descriptor_id}
    ${provider}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.provider}
    ${product_name}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.product_name}
    ${software_version}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.software_version}
    ${descriptor_version}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.descriptor_version}
    
Parse SOL006 VNF Package
    ${descriptor_id}=    Get Variable Value    ${nfv.vnfd[0].id}
    ${provider}=    Get Variable Value    ${nfv.vnfd[0].provider}
    ${product_name}=    Get Variable Value    ${nfv.vnfd[0].product-name}
    ${software_version}=    Get Variable Value    ${nfv.vnfd[0].software-version}
    ${descriptor_version}=    Get Variable Value    ${nfv.vnfd[0].version}     

Check HTTP Response Body vnfPkginfo content against VNF Descriptor
    #${check_descriptors} flag, 1 to check descriptors
    Run Keyword If    ${check_descriptors} == 1    Check Individual VNFPkgInfo Content
    
Check Individual VNFPkgInfo Content    
    Run Keyword If  '${descriptorType}'=='SOL001'  Parse SOL001    ELSE    Parse SOL006
    
Parse SOL001
    Get key for VNF Descriptor
    
    ${descriptor_id}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.descriptor_id}
    ${provider}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.provider}
    ${product_name}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.product_name}
    ${software_version}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.software_version}
    ${descriptor_version}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.descriptor_version}
    #${flavour_id}=    Get Variable Value    ${topology_template.node_templates.${vnfKey}.properties.flavour_id}
    
    Should Be Equal As Strings    ${response['body']['vnfdId']}    ${descriptor_id}
    Should Be Equal As Strings    ${response['body']['vnfProvider']}    ${provider}
    Should Be Equal As Strings    ${response['body']['vnfProductName']}    ${product_name}
    Should Be Equal As Strings    ${response['body']['vnfSoftwareVesion']}    ${software_version}
    Should Be Equal As Strings    ${response['body']['vnfdVersion']}    ${descriptor_version}
    #Should Be Equal As Strings    ${response['body']['instantiatedVnfInfo']['flavourId']}    ${flavour_id}
    
Parse SOL006
     ${descriptor_id}=    Get Variable Value    ${nfv.vnfd[0].id}
     ${provider}=    Get Variable Value    ${nfv.vnfd[0].provider}
     ${product_name}=    Get Variable Value    ${nfv.vnfd[0].product-name}
     ${software_version}=    Get Variable Value    ${nfv.vnfd[0].software-version}
     ${descriptor_version}=    Get Variable Value    ${nfv.vnfd[0].version}
     
    Should Be Equal As Strings    ${response['body']['vnfdId']}    ${descriptor_id}
    Should Be Equal As Strings    ${response['body']['vnfProvider']}    ${provider}
    Should Be Equal As Strings    ${response['body']['vnfProductName']}    ${product_name}
    Should Be Equal As Strings    ${response['body']['vnfSoftwareVesion']}    ${software_version}
    Should Be Equal As Strings    ${response['body']['vnfdVersion']}    ${descriptor_version}
    
Check Postcondition VNF Package Resource Exists
    Log    Checking that nsd info exists
    Set Headers    {"Accept": "${ACCEPT_JSON}"}
+1 −0
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ Create new VNF Package Resource
    Check HTTP Response Body Json Schema Is   vnfPkgInfo
    Check HTTP Response Header Contains    Location
    Check Postcondition VNF Package Resource Exists
    Check HTTP Response Body vnfPkgInfo content against VNF Descriptor

PUT all VNF Packages - Method not implemented
    [Documentation]    Test ID: 5.3.5.1.12
+168 −0
Original line number Diff line number Diff line
tosca_definitions_version: tosca_simple_yaml_1_2
description: "TST010 reference VNF-B"
metadata:
  descriptor_id: "VNF-B"
  vendor: "ETSI TST WG"
  version: "2.0"
topology_template:
  substitution_mappings:
    node_type: "tosca.nodes.nfv.VNF"
    requirements:
      virtual_link_management:
        [management, virtual_link_management]
      virtual_link_left:
        [left, virtual_link_left]
      virtual_link_right:
        [right, virtual_link_right]
  node_templates:
    VDU-B-1:
      type: "tosca.nodes.nfv.Vdu.Compute"
      properties:
        name: "vdu-b-1-vcd"
        descriptor: "Description of VDU-B-1"
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 2
      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 4096
              numa_enabled: false
            virtual_cpu:
              num_virtual_cpu: 2
      requirements:
        virtual_storage:
        - "vdu-b-1-vsd"
    VDU-B-2:
      type: "tosca.nodes.nfv.Vdu.Compute"
      properties:
        name: "vdu-b-2-vcd"
        descriptor: "Description of VDU-B-2"
        vdu_profile:
          min_number_of_instances: 1
          max_number_of_instances: 4
      capabilities:
        virtual_compute:
          properties:
            virtual_memory:
              virtual_mem_size: 6144
              numa_enabled: false
            virtual_cpu:
              num_virtual_cpu: 2
      requirements:
        virtual_storage:
        - "vdu-b-2-vsd"
    right:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 1
      requirements:
        virtual_link_right:
        virtual_binding: VDU-B-2
    management:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 0
      requirements:
        virtual_link_management:
        virtual_binding: VDU-B-1
    left:
      type: "tosca.nodes.nfv.VduCp"
      properties:
        order: 2
      requirements:
        virtual_link_left:
        virtual_binding: VDU-B-1
    internal_vl:
      type: tosca.nodes.nfv.VnfVirtualLink
      properties:
        connectivity_type:
          layer_protocols: [ ipv4 ]
        description: Internal Virtual link in the VNF
        vl_profile:
          max_bitrate_requirements:
            root: 100000
            leaf: 20000
          min_bitrate_requirements:
            root: 10000
            leaf: 10000
    internal_vdu_b_1_cp:
      type: tosca.nodes.nfv.VduCp
      properties:
        order: 2
      requirements:
        - virtual_binding: VDU-B-1
        - virtual_link: internal_vl
    internal_vdu_b_2_cp:
      type: tosca.nodes.nfv.VduCp
      properties:
        order: 0
      requirements:
        - virtual_binding: VDU-B-2
        - virtual_link: internal_vl
    vdu-b-1-vsd:
      type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage"
      properties:
        virtual_block_storage_data:
          size_of_storage: 20
          rdma_enabled: false
        sw_image_data:
          name: "vdu-b-1 image"
          version: "1.1"
          checksum: 
            algorithm: "sha-224"
            hash: "somehashfortst010"
          container_format: "bare"
          disk-format: qcow2
          min-disk: '1'
          min-ram: '2'
          size: '1'
      artifacts:
        sw_image:
          type: tosca.artifacts.nfv.SwImage
          file: vdu-b-1.qcow2
    vdu-b-1-vsd:
      type: "tosca.nodes.nfv.Vdu.VirtualBlockStorage"
      properties:
        virtual_block_storage_data:
          size_of_storage: 20
          rdma_enabled: false
        sw_image_data:
          name: "vdu-b-1 image"
          version: "1.1"
          checksum: 
            algorithm: "sha-224"
            hash: "somehashfortst010"
          container_format: "bare"
          disk-format: qcow2
          min-disk: '1'
          min-ram: '2'
          size: '1'
      artifacts:
        sw_image:
          type: tosca.artifacts.nfv.SwImage
          file: vdu-b-2.qcow2
    vnf_b_1_VNF:
      type: "tosca.nodes.nfv.VNF"
      properties:
        descriptor_id: "VNF-B-2VDUs"
        descriptor_version: "2.0"
        provider: "ETSI TST WG"
        product_name: "VNF-B-2VDUs"
        software_version: "2.0"
        product_info_name: "VNF-B-2VDUs"
        product_info_description: "TST010 reference VNF-B with 2 VDUs"
        flavour_id: "VNF-B-2VDU_flavor"
        flavour_description: "VNF-B with 2 VDUs flavor"
        vnfm_info: 
          etsivnfm: 
          - v2.3.1 
        interfaces:
            Vnflcm:
              scale:
                implementation: scale-example.yaml
              terminate:
                implementation: terminate-example.yaml
              operate:
                implementation: operate-example.yaml
Loading