Avoid using zip file in unit tests
Addressed review comment [1] in this patch. [1]: https://review.opendev.org/#/c/707802/26/tacker/tests/unit/vnflcm/test_vnflcm_driver.py@326 Change-Id: Ida271c84974f91f0801936d0370bb3be6de1cec6
This commit is contained in:
parent
4470236b5c
commit
4ad520bc97
|
@ -0,0 +1,177 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: Simple deployment flavour for Sample VNF
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
- helloworld3_types.yaml
|
||||||
|
|
||||||
|
topology_template:
|
||||||
|
inputs:
|
||||||
|
descriptor_id:
|
||||||
|
type: string
|
||||||
|
descriptor_version:
|
||||||
|
type: string
|
||||||
|
provider:
|
||||||
|
type: string
|
||||||
|
product_name:
|
||||||
|
type: string
|
||||||
|
software_version:
|
||||||
|
type: string
|
||||||
|
vnfm_info:
|
||||||
|
type: list
|
||||||
|
entry_schema:
|
||||||
|
type: string
|
||||||
|
flavour_id:
|
||||||
|
type: string
|
||||||
|
flavour_description:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
substitution_mappings:
|
||||||
|
node_type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_id: simple
|
||||||
|
requirements:
|
||||||
|
virtual_link_external: [ CP1, virtual_link ]
|
||||||
|
|
||||||
|
node_templates:
|
||||||
|
VNF:
|
||||||
|
type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_description: A simple flavour
|
||||||
|
interfaces:
|
||||||
|
Vnflcm:
|
||||||
|
# supporting only 'instantiate', 'terminate', 'modify'
|
||||||
|
# not supporting LCM script, supporting only default LCM
|
||||||
|
instantiate: []
|
||||||
|
instantiate_start: []
|
||||||
|
instantiate_end: []
|
||||||
|
terminate: []
|
||||||
|
terminate_start: []
|
||||||
|
terminate_end: []
|
||||||
|
modify_information: []
|
||||||
|
modify_information_start: []
|
||||||
|
modify_information_end: []
|
||||||
|
|
||||||
|
VDU1:
|
||||||
|
type: tosca.nodes.nfv.Vdu.Compute
|
||||||
|
properties:
|
||||||
|
name: VDU1
|
||||||
|
description: VDU1 compute node
|
||||||
|
vdu_profile:
|
||||||
|
min_number_of_instances: 1
|
||||||
|
max_number_of_instances: 1
|
||||||
|
sw_image_data:
|
||||||
|
name: Software of VDU1
|
||||||
|
version: '0.4.0'
|
||||||
|
checksum:
|
||||||
|
algorithm: sha-256
|
||||||
|
hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
|
||||||
|
container_format: bare
|
||||||
|
disk_format: qcow2
|
||||||
|
min_disk: 1 GB
|
||||||
|
size: 1 GB
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
sw_image: ../Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
|
||||||
|
capabilities:
|
||||||
|
virtual_compute:
|
||||||
|
properties:
|
||||||
|
virtual_memory:
|
||||||
|
virtual_mem_size: 512 MB
|
||||||
|
virtual_cpu:
|
||||||
|
num_virtual_cpu: 1
|
||||||
|
virtual_local_storage:
|
||||||
|
- size_of_storage: 1 GB
|
||||||
|
|
||||||
|
VDU2:
|
||||||
|
type: tosca.nodes.nfv.Vdu.Compute
|
||||||
|
properties:
|
||||||
|
name: VDU2
|
||||||
|
description: VDU2 compute node
|
||||||
|
vdu_profile:
|
||||||
|
min_number_of_instances: 1
|
||||||
|
max_number_of_instances: 3
|
||||||
|
|
||||||
|
capabilities:
|
||||||
|
virtual_compute:
|
||||||
|
properties:
|
||||||
|
virtual_memory:
|
||||||
|
virtual_mem_size: 512 MB
|
||||||
|
virtual_cpu:
|
||||||
|
num_virtual_cpu: 1
|
||||||
|
virtual_local_storage:
|
||||||
|
- size_of_storage: 1 GB
|
||||||
|
requirements:
|
||||||
|
- virtual_storage: VirtualStorage
|
||||||
|
|
||||||
|
VirtualStorage:
|
||||||
|
type: tosca.nodes.nfv.Vdu.VirtualBlockStorage
|
||||||
|
properties:
|
||||||
|
virtual_block_storage_data:
|
||||||
|
size_of_storage: 30 GB
|
||||||
|
rdma_enabled: true
|
||||||
|
sw_image_data:
|
||||||
|
name: VrtualStorage
|
||||||
|
version: '0.4.0'
|
||||||
|
checksum:
|
||||||
|
algorithm: sha-256
|
||||||
|
hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
|
||||||
|
container_format: bare
|
||||||
|
disk_format: qcow2
|
||||||
|
min_disk: 2 GB
|
||||||
|
min_ram: 8192 MB
|
||||||
|
size: 2 GB
|
||||||
|
artifacts:
|
||||||
|
sw_image: ../Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
|
||||||
|
CP1:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 0
|
||||||
|
vnic_type: direct-physical
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU1
|
||||||
|
#- virtual_link: # the target node is determined in the NSD
|
||||||
|
|
||||||
|
CP2:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 1
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU1
|
||||||
|
- virtual_link: internalVL2
|
||||||
|
|
||||||
|
CP3:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 2
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU2
|
||||||
|
- virtual_link: internalVL2
|
||||||
|
|
||||||
|
internalVL2:
|
||||||
|
type: tosca.nodes.nfv.VnfVirtualLink
|
||||||
|
properties:
|
||||||
|
connectivity_type:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
description: Internal Virtual link in the VNF
|
||||||
|
vl_profile:
|
||||||
|
max_bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
min_bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
virtual_link_protocol_data:
|
||||||
|
- associated_layer_protocol: ipv4
|
||||||
|
l3_protocol_data:
|
||||||
|
ip_version: ipv4
|
||||||
|
cidr: 11.11.0.0/24
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: Sample VNF
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
- helloworld3_types.yaml
|
||||||
|
- helloworld3_df_simple.yaml
|
||||||
|
|
||||||
|
topology_template:
|
||||||
|
inputs:
|
||||||
|
selected_flavour:
|
||||||
|
type: string
|
||||||
|
description: VNF deployment flavour selected by the consumer. It is provided in the API
|
||||||
|
|
||||||
|
node_templates:
|
||||||
|
VNF:
|
||||||
|
type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_id: { get_input: selected_flavour }
|
||||||
|
descriptor_id: 8c2b83c1-d198-4f13-96e2-2ac660a8a6a6
|
||||||
|
provider: Company
|
||||||
|
product_name: Sample VNF
|
||||||
|
software_version: '1.0'
|
||||||
|
descriptor_version: '1.0'
|
||||||
|
vnfm_info:
|
||||||
|
- Tacker
|
||||||
|
requirements:
|
||||||
|
#- virtual_link_external # mapped in lower-level templates
|
||||||
|
#- virtual_link_internal # mapped in lower-level templates
|
|
@ -0,0 +1,65 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: VNF type definition
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
|
||||||
|
node_types:
|
||||||
|
company.provider.VNF:
|
||||||
|
derived_from: tosca.nodes.nfv.VNF
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: ID of this VNF
|
||||||
|
default: vnf_id
|
||||||
|
vendor:
|
||||||
|
type: string
|
||||||
|
description: name of the vendor who generate this VNF
|
||||||
|
default: vendor
|
||||||
|
version:
|
||||||
|
type: version
|
||||||
|
description: version of the software for this VNF
|
||||||
|
default: 1.0
|
||||||
|
descriptor_id:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]
|
||||||
|
default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
|
||||||
|
descriptor_version:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ '1.0' ] ]
|
||||||
|
default: '1.0'
|
||||||
|
provider:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ 'Company' ] ]
|
||||||
|
default: 'Company'
|
||||||
|
product_name:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ 'Sample VNF' ] ]
|
||||||
|
default: 'Sample VNF'
|
||||||
|
software_version:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ '1.0' ] ]
|
||||||
|
default: '1.0'
|
||||||
|
vnfm_info:
|
||||||
|
type: list
|
||||||
|
entry_schema:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ Tacker ] ]
|
||||||
|
default: [ Tacker ]
|
||||||
|
flavour_id:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ simple ] ]
|
||||||
|
default: simple
|
||||||
|
flavour_description:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
requirements:
|
||||||
|
- virtual_link_external:
|
||||||
|
capability: tosca.capabilities.nfv.VirtualLinkable
|
||||||
|
- virtual_link_internal:
|
||||||
|
capability: tosca.capabilities.nfv.VirtualLinkable
|
||||||
|
interfaces:
|
||||||
|
Vnflcm:
|
||||||
|
type: tosca.interfaces.nfv.Vnflcm
|
|
@ -0,0 +1,7 @@
|
||||||
|
TOSCA-Meta-File-Version: 1.0
|
||||||
|
Created-by: Hiroyuki JO
|
||||||
|
CSAR-Version: 1.1
|
||||||
|
Entry-Definitions: Definitions/helloworld3_df_simple.yaml
|
||||||
|
|
||||||
|
Name: Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
Content-type: application/x-iso9066-image
|
|
@ -0,0 +1,263 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: Simple deployment flavour for Sample VNF
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
- helloworld3_types.yaml
|
||||||
|
|
||||||
|
topology_template:
|
||||||
|
inputs:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
vendor:
|
||||||
|
type: string
|
||||||
|
version:
|
||||||
|
type: version
|
||||||
|
descriptor_id:
|
||||||
|
type: string
|
||||||
|
descriptor_version:
|
||||||
|
type: string
|
||||||
|
provider:
|
||||||
|
type: string
|
||||||
|
product_name:
|
||||||
|
type: string
|
||||||
|
software_version:
|
||||||
|
type: string
|
||||||
|
vnfm_info:
|
||||||
|
type: list
|
||||||
|
entry_schema:
|
||||||
|
type: string
|
||||||
|
flavour_id:
|
||||||
|
type: string
|
||||||
|
flavour_description:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
substitution_mappings:
|
||||||
|
node_type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_id: simple
|
||||||
|
requirements:
|
||||||
|
virtual_link_external: [ CP1, virtual_link ]
|
||||||
|
|
||||||
|
node_templates:
|
||||||
|
VNF:
|
||||||
|
type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_description: A simple flavour
|
||||||
|
interfaces:
|
||||||
|
Vnflcm:
|
||||||
|
# supporting only 'instantiate', 'terminate', 'modify'
|
||||||
|
# not supporting LCM script, supporting only default LCM
|
||||||
|
instantiate: []
|
||||||
|
instantiate_start: []
|
||||||
|
instantiate_end: []
|
||||||
|
terminate: []
|
||||||
|
terminate_start: []
|
||||||
|
terminate_end: []
|
||||||
|
modify_information: []
|
||||||
|
modify_information_start: []
|
||||||
|
modify_information_end: []
|
||||||
|
|
||||||
|
VDU1:
|
||||||
|
type: tosca.nodes.nfv.Vdu.Compute
|
||||||
|
properties:
|
||||||
|
name: VDU1
|
||||||
|
description: VDU1 compute node
|
||||||
|
vdu_profile:
|
||||||
|
min_number_of_instances: 1
|
||||||
|
max_number_of_instances: 1
|
||||||
|
sw_image_data:
|
||||||
|
name: Software of VDU1
|
||||||
|
version: '0.4.0'
|
||||||
|
checksum:
|
||||||
|
algorithm: sha-256
|
||||||
|
hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
|
||||||
|
container_format: bare
|
||||||
|
disk_format: qcow2
|
||||||
|
min_disk: 1 GB
|
||||||
|
size: 1 GB
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
sw_image:
|
||||||
|
type: tosca.artifacts.nfv.SwImage
|
||||||
|
file: ../Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
|
||||||
|
capabilities:
|
||||||
|
virtual_compute:
|
||||||
|
properties:
|
||||||
|
virtual_memory:
|
||||||
|
virtual_mem_size: 512 MB
|
||||||
|
virtual_cpu:
|
||||||
|
num_virtual_cpu: 1
|
||||||
|
virtual_local_storage:
|
||||||
|
- size_of_storage: 1 GB
|
||||||
|
|
||||||
|
VDU2:
|
||||||
|
type: tosca.nodes.nfv.Vdu.Compute
|
||||||
|
properties:
|
||||||
|
name: VDU2
|
||||||
|
description: VDU2 compute node
|
||||||
|
vdu_profile:
|
||||||
|
min_number_of_instances: 1
|
||||||
|
max_number_of_instances: 3
|
||||||
|
|
||||||
|
capabilities:
|
||||||
|
virtual_compute:
|
||||||
|
properties:
|
||||||
|
virtual_memory:
|
||||||
|
virtual_mem_size: 512 MB
|
||||||
|
virtual_cpu:
|
||||||
|
num_virtual_cpu: 1
|
||||||
|
virtual_local_storage:
|
||||||
|
- size_of_storage: 1 GB
|
||||||
|
requirements:
|
||||||
|
- virtual_storage: VirtualStorage
|
||||||
|
|
||||||
|
VirtualStorage:
|
||||||
|
type: tosca.nodes.nfv.Vdu.VirtualBlockStorage
|
||||||
|
properties:
|
||||||
|
virtual_block_storage_data:
|
||||||
|
size_of_storage: 30 GB
|
||||||
|
rdma_enabled: true
|
||||||
|
sw_image_data:
|
||||||
|
name: VrtualStorage
|
||||||
|
version: '0.4.0'
|
||||||
|
checksum:
|
||||||
|
algorithm: sha-256
|
||||||
|
hash: b9c3036539fd7a5f87a1bf38eb05fdde8b556a1a7e664dbeda90ed3cd74b4f9d
|
||||||
|
container_format: bare
|
||||||
|
disk_format: qcow2
|
||||||
|
min_disk: 2 GB
|
||||||
|
min_ram: 8192 MB
|
||||||
|
size: 2 GB
|
||||||
|
artifacts:
|
||||||
|
sw_image:
|
||||||
|
type: tosca.artifacts.nfv.SwImage
|
||||||
|
file: ../Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
|
||||||
|
CP1:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 0
|
||||||
|
vnic_type: direct-physical
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU1
|
||||||
|
#- virtual_link: # the target node is determined in the NSD
|
||||||
|
|
||||||
|
CP2:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 1
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU1
|
||||||
|
- virtual_link: internalVL2
|
||||||
|
|
||||||
|
CP3:
|
||||||
|
type: tosca.nodes.nfv.VduCp
|
||||||
|
properties:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
order: 2
|
||||||
|
requirements:
|
||||||
|
- virtual_binding: VDU2
|
||||||
|
- virtual_link: internalVL2
|
||||||
|
|
||||||
|
internalVL2:
|
||||||
|
type: tosca.nodes.nfv.VnfVirtualLink
|
||||||
|
properties:
|
||||||
|
connectivity_type:
|
||||||
|
layer_protocols: [ ipv4 ]
|
||||||
|
description: Internal Virtual link in the VNF
|
||||||
|
vl_profile:
|
||||||
|
max_bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
min_bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
virtual_link_protocol_data:
|
||||||
|
- associated_layer_protocol: ipv4
|
||||||
|
l3_protocol_data:
|
||||||
|
ip_version: ipv4
|
||||||
|
cidr: 11.11.0.0/24
|
||||||
|
|
||||||
|
policies:
|
||||||
|
- scaling_aspects:
|
||||||
|
type: tosca.policies.nfv.ScalingAspects
|
||||||
|
properties:
|
||||||
|
aspects:
|
||||||
|
worker_instance:
|
||||||
|
name: worker_instance_aspect
|
||||||
|
description: worker_instance scaling aspect
|
||||||
|
max_scale_level: 2
|
||||||
|
step_deltas:
|
||||||
|
- delta_1
|
||||||
|
|
||||||
|
- VDU2_initial_delta:
|
||||||
|
type: tosca.policies.nfv.VduInitialDelta
|
||||||
|
properties:
|
||||||
|
initial_delta:
|
||||||
|
number_of_instances: 1
|
||||||
|
targets: [ VDU2 ]
|
||||||
|
|
||||||
|
- VDU2_scaling_aspect_deltas:
|
||||||
|
type: tosca.policies.nfv.VduScalingAspectDeltas
|
||||||
|
properties:
|
||||||
|
aspect: worker_instance
|
||||||
|
deltas:
|
||||||
|
delta_1:
|
||||||
|
number_of_instances: 1
|
||||||
|
targets: [ VDU2 ]
|
||||||
|
|
||||||
|
- instantiation_levels:
|
||||||
|
type: tosca.policies.nfv.InstantiationLevels
|
||||||
|
properties:
|
||||||
|
levels:
|
||||||
|
instantiation_level_1:
|
||||||
|
description: Smallest size
|
||||||
|
scale_info:
|
||||||
|
worker_instance:
|
||||||
|
scale_level: 0
|
||||||
|
instantiation_level_2:
|
||||||
|
description: Largest size
|
||||||
|
scale_info:
|
||||||
|
worker_instance:
|
||||||
|
scale_level: 2
|
||||||
|
default_level: instantiation_level_1
|
||||||
|
|
||||||
|
- VDU1_instantiation_levels:
|
||||||
|
type: tosca.policies.nfv.VduInstantiationLevels
|
||||||
|
properties:
|
||||||
|
levels:
|
||||||
|
instantiation_level_1:
|
||||||
|
number_of_instances: 1
|
||||||
|
instantiation_level_2:
|
||||||
|
number_of_instances: 3
|
||||||
|
targets: [ VDU1 ]
|
||||||
|
|
||||||
|
- VDU2_instantiation_levels:
|
||||||
|
type: tosca.policies.nfv.VduInstantiationLevels
|
||||||
|
properties:
|
||||||
|
levels:
|
||||||
|
instantiation_level_1:
|
||||||
|
number_of_instances: 1
|
||||||
|
instantiation_level_2:
|
||||||
|
number_of_instances: 1
|
||||||
|
targets: [ VDU2 ]
|
||||||
|
|
||||||
|
- internalVL2_instantiation_levels:
|
||||||
|
type: tosca.policies.nfv.VirtualLinkInstantiationLevels
|
||||||
|
properties:
|
||||||
|
levels:
|
||||||
|
instantiation_level_1:
|
||||||
|
bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
instantiation_level_2:
|
||||||
|
bitrate_requirements:
|
||||||
|
root: 1048576
|
||||||
|
leaf: 1048576
|
||||||
|
targets: [ internalVL2 ]
|
|
@ -0,0 +1,31 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: Sample VNF
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
- helloworld3_types.yaml
|
||||||
|
- helloworld3_df_simple.yaml
|
||||||
|
|
||||||
|
topology_template:
|
||||||
|
inputs:
|
||||||
|
selected_flavour:
|
||||||
|
type: string
|
||||||
|
description: VNF deployment flavour selected by the consumer. It is provided in the API
|
||||||
|
|
||||||
|
node_templates:
|
||||||
|
VNF:
|
||||||
|
type: company.provider.VNF
|
||||||
|
properties:
|
||||||
|
flavour_id: { get_input: selected_flavour }
|
||||||
|
descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
|
||||||
|
provider: Company
|
||||||
|
product_name: Sample VNF
|
||||||
|
software_version: '1.0'
|
||||||
|
descriptor_version: '1.0'
|
||||||
|
vnfm_info:
|
||||||
|
- Tacker
|
||||||
|
requirements:
|
||||||
|
#- virtual_link_external # mapped in lower-level templates
|
||||||
|
#- virtual_link_internal # mapped in lower-level templates
|
|
@ -0,0 +1,65 @@
|
||||||
|
tosca_definitions_version: tosca_simple_yaml_1_2
|
||||||
|
|
||||||
|
description: VNF type definition
|
||||||
|
|
||||||
|
imports:
|
||||||
|
- etsi_nfv_sol001_common_types.yaml
|
||||||
|
- etsi_nfv_sol001_vnfd_types.yaml
|
||||||
|
|
||||||
|
node_types:
|
||||||
|
company.provider.VNF:
|
||||||
|
derived_from: tosca.nodes.nfv.VNF
|
||||||
|
properties:
|
||||||
|
id:
|
||||||
|
type: string
|
||||||
|
description: ID of this VNF
|
||||||
|
default: vnf_id
|
||||||
|
vendor:
|
||||||
|
type: string
|
||||||
|
description: name of the vendor who generate this VNF
|
||||||
|
default: vendor
|
||||||
|
version:
|
||||||
|
type: version
|
||||||
|
description: version of the software for this VNF
|
||||||
|
default: 1.0
|
||||||
|
descriptor_id:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]
|
||||||
|
default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
|
||||||
|
descriptor_version:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ '1.0' ] ]
|
||||||
|
default: '1.0'
|
||||||
|
provider:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ 'Company' ] ]
|
||||||
|
default: 'Company'
|
||||||
|
product_name:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ 'Sample VNF' ] ]
|
||||||
|
default: 'Sample VNF'
|
||||||
|
software_version:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ '1.0' ] ]
|
||||||
|
default: '1.0'
|
||||||
|
vnfm_info:
|
||||||
|
type: list
|
||||||
|
entry_schema:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ Tacker ] ]
|
||||||
|
default: [ Tacker ]
|
||||||
|
flavour_id:
|
||||||
|
type: string
|
||||||
|
constraints: [ valid_values: [ simple ] ]
|
||||||
|
default: simple
|
||||||
|
flavour_description:
|
||||||
|
type: string
|
||||||
|
default: ""
|
||||||
|
requirements:
|
||||||
|
- virtual_link_external:
|
||||||
|
capability: tosca.capabilities.nfv.VirtualLinkable
|
||||||
|
- virtual_link_internal:
|
||||||
|
capability: tosca.capabilities.nfv.VirtualLinkable
|
||||||
|
interfaces:
|
||||||
|
Vnflcm:
|
||||||
|
type: tosca.interfaces.nfv.Vnflcm
|
|
@ -0,0 +1,7 @@
|
||||||
|
TOSCA-Meta-File-Version: 1.0
|
||||||
|
Created-by: Hiroyuki JO
|
||||||
|
CSAR-Version: 1.1
|
||||||
|
Entry-Definitions: Definitions/helloworld3_top.vnfd.yaml
|
||||||
|
|
||||||
|
Name: Files/images/cirros-0.4.0-x86_64-disk.img
|
||||||
|
Content-type: application/x-iso9066-image
|
Binary file not shown.
|
@ -14,7 +14,6 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import zipfile
|
|
||||||
|
|
||||||
import fixtures
|
import fixtures
|
||||||
import mock
|
import mock
|
||||||
|
@ -127,6 +126,24 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
'test_project'}, 'vim_type': 'openstack'}
|
'test_project'}, 'vim_type': 'openstack'}
|
||||||
self.vim_client.get_vim.return_value = vim_obj
|
self.vim_client.get_vim.return_value = vim_obj
|
||||||
|
|
||||||
|
def _copy_csar_files(self, fake_csar_path, csar_file_name):
|
||||||
|
sample_vnf_package = os.path.join(
|
||||||
|
"./tacker/tests/etc/samples/etsi/nfv", csar_file_name)
|
||||||
|
shutil.copytree(sample_vnf_package, fake_csar_path)
|
||||||
|
common_files_path = os.path.join(
|
||||||
|
"./tacker/tests/etc/samples/etsi/nfv/common/")
|
||||||
|
tosca_definition_file_path = os.path.join(common_files_path,
|
||||||
|
"Definitions/")
|
||||||
|
for (dpath, _, fnames) in os.walk(tosca_definition_file_path):
|
||||||
|
if not fnames:
|
||||||
|
continue
|
||||||
|
for fname in fnames:
|
||||||
|
src_file = os.path.join(dpath, fname)
|
||||||
|
shutil.copy(src_file, os.path.join(fake_csar_path,
|
||||||
|
"Definitions"))
|
||||||
|
shutil.copytree(os.path.join(common_files_path, "Files/"),
|
||||||
|
os.path.join(fake_csar_path, "Files/"))
|
||||||
|
|
||||||
@mock.patch.object(objects.VnfResource, 'create')
|
@mock.patch.object(objects.VnfResource, 'create')
|
||||||
@mock.patch.object(objects.VnfPackageVnfd, 'get_by_id')
|
@mock.patch.object(objects.VnfPackageVnfd, 'get_by_id')
|
||||||
@mock.patch.object(objects.VnfInstance, "save")
|
@mock.patch.object(objects.VnfInstance, "save")
|
||||||
|
@ -144,13 +161,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
self._mock_vnf_manager()
|
self._mock_vnf_manager()
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
||||||
|
@ -180,13 +191,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
self._mock_vnf_manager()
|
self._mock_vnf_manager()
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
||||||
|
@ -216,13 +221,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
self._mock_vnf_manager()
|
self._mock_vnf_manager()
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
||||||
|
@ -252,13 +251,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
self._mock_vnf_manager(fail_method_name="instantiate_vnf")
|
self._mock_vnf_manager(fail_method_name="instantiate_vnf")
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
error = self.assertRaises(exceptions.VnfInstantiationFailed,
|
error = self.assertRaises(exceptions.VnfInstantiationFailed,
|
||||||
|
@ -294,13 +287,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
self._mock_vnf_manager(fail_method_name='create_wait')
|
self._mock_vnf_manager(fail_method_name='create_wait')
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
error = self.assertRaises(exceptions.VnfInstantiationWaitFailed,
|
error = self.assertRaises(exceptions.VnfInstantiationWaitFailed,
|
||||||
|
@ -334,13 +321,8 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(
|
||||||
sample_vnf_package_zip = os.path.join(
|
fake_csar, "sample_vnf_package_csar_with_short_notation")
|
||||||
base_path, "../../etc/samples/"
|
|
||||||
"sample_vnf_package_csar_with_short_notation.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
self._mock_vnf_manager(vnf_resource_count=2)
|
self._mock_vnf_manager(vnf_resource_count=2)
|
||||||
driver = vnflcm_driver.VnfLcmDriver()
|
driver = vnflcm_driver.VnfLcmDriver()
|
||||||
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
driver.instantiate_vnf(self.context, vnf_instance_obj,
|
||||||
|
@ -469,13 +451,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
mock_vnf_resource_list.return_value = [fakes.return_vnf_resource()]
|
mock_vnf_resource_list.return_value = [fakes.return_vnf_resource()]
|
||||||
# Heal as per SOL003 i.e. without vnfcInstanceId
|
# Heal as per SOL003 i.e. without vnfcInstanceId
|
||||||
heal_vnf_req = objects.HealVnfRequest()
|
heal_vnf_req = objects.HealVnfRequest()
|
||||||
|
@ -559,13 +535,7 @@ class TestVnflcmDriver(db_base.SqlTestCase):
|
||||||
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
fake_csar = os.path.join(self.temp_dir, vnf_package_id)
|
||||||
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
cfg.CONF.set_override('vnf_package_csar_path', self.temp_dir,
|
||||||
group='vnf_package')
|
group='vnf_package')
|
||||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
self._copy_csar_files(fake_csar, "vnflcm4")
|
||||||
sample_vnf_package_zip = os.path.join(
|
|
||||||
base_path, "../../etc/samples/sample_vnf_package_csar.zip")
|
|
||||||
extracted_zip_path = fake_csar
|
|
||||||
zipfile.ZipFile(sample_vnf_package_zip, 'r').extractall(
|
|
||||||
extracted_zip_path)
|
|
||||||
|
|
||||||
mock_vnf_resource_list.return_value = [fakes.return_vnf_resource()]
|
mock_vnf_resource_list.return_value = [fakes.return_vnf_resource()]
|
||||||
# Heal as per SOL003 i.e. without vnfcInstanceId
|
# Heal as per SOL003 i.e. without vnfcInstanceId
|
||||||
heal_vnf_req = objects.HealVnfRequest()
|
heal_vnf_req = objects.HealVnfRequest()
|
||||||
|
|
Loading…
Reference in New Issue