From 06c54908267eaf73948ffa9f77b800b392fa3ab2 Mon Sep 17 00:00:00 2001 From: garciaale Date: Tue, 27 Oct 2020 15:06:50 -0300 Subject: [PATCH] Adds more descriptor examples for validations Change-Id: Ib8c37d568b75af2e7b06d3693032ac1d9fe6d5e0 Signed-off-by: garciaale --- tests/examples/alternative_image_sol006.yaml | 3 +- tests/examples/cirros_nsd_sol006.yaml | 7 +- tests/examples/cirros_vnfd_sol006.yaml | 5 +- tests/examples/epa_advanced_im.yaml | 154 --------------- tests/examples/epa_im.yaml | 140 ++++++++++++-- tests/examples/epa_sol006.yaml | 164 ++++++++++++++++ tests/examples/etsi_complex_vnfd_sol006.yaml | 9 +- tests/examples/hackfest_charmed_nsd_im.yaml | 54 ++++++ .../examples/hackfest_charmed_nsd_sol006.yaml | 57 ++++++ tests/examples/hackfest_charmed_vnfd_im.yaml | 157 ++++++++++++++++ .../hackfest_charmed_vnfd_sol006.yaml | 177 ++++++++++++++++++ tests/examples/magma_knf_sol006.yaml | 2 +- tests/examples/vepc_sol006.yaml | 8 +- tests/examples/vnfd_sol006.yaml | 2 +- tests/test_validation.py | 3 + 15 files changed, 764 insertions(+), 178 deletions(-) delete mode 100644 tests/examples/epa_advanced_im.yaml create mode 100644 tests/examples/epa_sol006.yaml create mode 100644 tests/examples/hackfest_charmed_nsd_im.yaml create mode 100644 tests/examples/hackfest_charmed_nsd_sol006.yaml create mode 100644 tests/examples/hackfest_charmed_vnfd_im.yaml create mode 100644 tests/examples/hackfest_charmed_vnfd_sol006.yaml diff --git a/tests/examples/alternative_image_sol006.yaml b/tests/examples/alternative_image_sol006.yaml index ac7650c..446eae4 100644 --- a/tests/examples/alternative_image_sol006.yaml +++ b/tests/examples/alternative_image_sol006.yaml @@ -47,7 +47,8 @@ vnfd: - id: hackfest_basic-VM name: hackfest_basic-VM virtual-compute-desc: cirros-compute - virtual-storage-desc: cirros-storage + virtual-storage-desc: + - cirros-storage sw-image-desc: ubuntu1604 alternative-sw-image-desc: - ubuntu1604-aws diff --git a/tests/examples/cirros_nsd_sol006.yaml b/tests/examples/cirros_nsd_sol006.yaml index a5575ef..ee279ca 100644 --- a/tests/examples/cirros_nsd_sol006.yaml +++ b/tests/examples/cirros_nsd_sol006.yaml @@ -37,7 +37,10 @@ nsd: constituent-cpd-id: - constituent-base-element-id: cirros_vnf1 constituent-cpd-id: eth0-ext - - constituent-base-element-id: cirros_vnf2 - constituent-cpd-id: eth0-ext - id: cirros_vnf2 # member-vnf-index-ref: 2 vnfd-id: cirros_vnfd + virtual-link-connectivity: + - virtual-link-profile-id: cirros_2vnf_nsd_vld1 + constituent-cpd-id: + - constituent-base-element-id: cirros_vnf2 + constituent-cpd-id: eth0-ext diff --git a/tests/examples/cirros_vnfd_sol006.yaml b/tests/examples/cirros_vnfd_sol006.yaml index e20faef..9ecdd7b 100644 --- a/tests/examples/cirros_vnfd_sol006.yaml +++ b/tests/examples/cirros_vnfd_sol006.yaml @@ -19,7 +19,7 @@ vnfd: description: Simple VNF example with a cirros provider: OSM version: "1.0" - mgmt-cp: eth0-int + mgmt-cp: eth0-ext virtual-compute-desc: - id: cirros-compute @@ -41,7 +41,8 @@ vnfd: name: cirros_vnfd-VM description: cirros_vnfd-VM virtual-compute-desc: cirros-compute - virtual-storage-desc: cirros-storage + virtual-storage-desc: + - cirros-storage sw-image-desc: cirros034 int-cpd: - id: eth0-int diff --git a/tests/examples/epa_advanced_im.yaml b/tests/examples/epa_advanced_im.yaml deleted file mode 100644 index f13d08b..0000000 --- a/tests/examples/epa_advanced_im.yaml +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright 2020 Whitestack LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -vnfd-catalog: - vnfd: - - connection-point: - - name: eth0 - type: VPORT - - name: xe0 - type: VPORT - - name: xe1 - type: VPORT - - name: xe2 - type: VPORT - - name: xe3 - type: VPORT - - name: xe4 - type: VPORT - - name: xe5 - type: VPORT - - name: xe6 - type: VPORT - - name: xe7 - type: VPORT - description: vBNG VNF for performance tests, with 34 HTs - id: vbng34 - logo: intel.png - mgmt-interface: - cp: eth0 - name: vbng34 - service-function-chain: UNAWARE - short-name: vbng34 - vdu: - - count: "1" - description: vbng34-VM - guest-epa: - cpu-pinning-policy: DEDICATED - cpu-thread-pinning-policy: PREFER - mempage-size: LARGE - numa-node-policy: - mem-policy: STRICT - node: - - id: "0" - paired-threads: - num-paired-threads: "17" - node-cnt: "1" - host-epa: - om-cpu-feature: - - feature: 64b - - feature: iommu - - feature: lps - - feature: tlbps - - feature: hwsv - - feature: dioc - - feature: ht - om-cpu-model-string: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz - hypervisor-epa: - type: REQUIRE_KVM - version: 10002|12001|2.6.32-358.el6.x86_64 - id: vbng34-VM - image: intel_vbng34 - interface: - - external-connection-point-ref: eth0 - name: eth0 - position: "1" - type: EXTERNAL - virtual-interface: - bandwidth: "1000000" - type: PARAVIRT - vpci: 0000:00:0a.0 - - external-connection-point-ref: xe0 - name: xe0 - position: "2" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:10.0" - - external-connection-point-ref: xe1 - name: xe1 - position: "3" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:11.0" - - external-connection-point-ref: xe2 - name: xe2 - position: "4" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:12.0" - - external-connection-point-ref: xe3 - name: xe3 - position: "5" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:13.0" - - external-connection-point-ref: xe4 - name: xe4 - position: "6" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:14.0" - - external-connection-point-ref: xe5 - name: xe5 - position: "7" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:15.0" - - external-connection-point-ref: xe6 - name: xe6 - position: "8" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:16.0" - - external-connection-point-ref: xe7 - name: xe7 - position: "9" - type: EXTERNAL - virtual-interface: - bandwidth: "10000000000" - type: PCI-PASSTHROUGH - vpci: "0000:00:17.0" - name: vbng34-VM - supplemental-boot-data: - boot-data-drive: "false" - vm-flavor: - memory-mb: "32768" - storage-gb: "15" - vendor: Intel - version: "1.0" diff --git a/tests/examples/epa_im.yaml b/tests/examples/epa_im.yaml index 12b0b4d..f13d08b 100644 --- a/tests/examples/epa_im.yaml +++ b/tests/examples/epa_im.yaml @@ -13,16 +13,38 @@ # See the License for the specific language governing permissions and # limitations under the License. -vnfd:vnfd-catalog: +vnfd-catalog: vnfd: - - id: - ... - + - connection-point: + - name: eth0 + type: VPORT + - name: xe0 + type: VPORT + - name: xe1 + type: VPORT + - name: xe2 + type: VPORT + - name: xe3 + type: VPORT + - name: xe4 + type: VPORT + - name: xe5 + type: VPORT + - name: xe6 + type: VPORT + - name: xe7 + type: VPORT + description: vBNG VNF for performance tests, with 34 HTs + id: vbng34 + logo: intel.png + mgmt-interface: + cp: eth0 + name: vbng34 + service-function-chain: UNAWARE + short-name: vbng34 vdu: - - id: dataVM - name: dataVM - count: "1" - description: "" + - count: "1" + description: vbng34-VM guest-epa: cpu-pinning-policy: DEDICATED cpu-thread-pinning-policy: PREFER @@ -30,7 +52,103 @@ vnfd:vnfd-catalog: numa-node-policy: mem-policy: STRICT node: - - id: "1" + - id: "0" + paired-threads: + num-paired-threads: "17" node-cnt: "1" - ... - + host-epa: + om-cpu-feature: + - feature: 64b + - feature: iommu + - feature: lps + - feature: tlbps + - feature: hwsv + - feature: dioc + - feature: ht + om-cpu-model-string: Intel(R) Xeon(R) CPU E5-4620 0 @ 2.20GHz + hypervisor-epa: + type: REQUIRE_KVM + version: 10002|12001|2.6.32-358.el6.x86_64 + id: vbng34-VM + image: intel_vbng34 + interface: + - external-connection-point-ref: eth0 + name: eth0 + position: "1" + type: EXTERNAL + virtual-interface: + bandwidth: "1000000" + type: PARAVIRT + vpci: 0000:00:0a.0 + - external-connection-point-ref: xe0 + name: xe0 + position: "2" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:10.0" + - external-connection-point-ref: xe1 + name: xe1 + position: "3" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:11.0" + - external-connection-point-ref: xe2 + name: xe2 + position: "4" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:12.0" + - external-connection-point-ref: xe3 + name: xe3 + position: "5" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:13.0" + - external-connection-point-ref: xe4 + name: xe4 + position: "6" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:14.0" + - external-connection-point-ref: xe5 + name: xe5 + position: "7" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:15.0" + - external-connection-point-ref: xe6 + name: xe6 + position: "8" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:16.0" + - external-connection-point-ref: xe7 + name: xe7 + position: "9" + type: EXTERNAL + virtual-interface: + bandwidth: "10000000000" + type: PCI-PASSTHROUGH + vpci: "0000:00:17.0" + name: vbng34-VM + supplemental-boot-data: + boot-data-drive: "false" + vm-flavor: + memory-mb: "32768" + storage-gb: "15" + vendor: Intel + version: "1.0" diff --git a/tests/examples/epa_sol006.yaml b/tests/examples/epa_sol006.yaml new file mode 100644 index 0000000..275cfcb --- /dev/null +++ b/tests/examples/epa_sol006.yaml @@ -0,0 +1,164 @@ +# Copyright 2020 Whitestack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +vnfd: + id: epa-advanced-vnfd + description: vBNG VNF for performance tests, with 34 HTs + product-name: vbng34 + provider: Intel + version: "1.0" + mgmt-cp: eth0-ext + sw-image-desc: + - id: intel_vbng34 + name: intel_vbng34 + virtual-compute-desc: + - id: epa-compute + virtual-cpu: + pinning: # Generic key/value pairs + policy: static + thread-policy: PREFER + virtual-memory: + size: 32 + mempage-size: LARGE + numa-enabled: true # Replaces NUMA aware/unaware choice + numa-node-policy: + mem-policy: STRICT + node: + - id: "1" + paired-threads: + num-paired-threads: "17" + node-cnt: "1" + virtual-storage-desc: + - id: epa-storage + size-of-storage: 10 + vdu: + - id: epa-vdu + name: epa-vdu + sw-image-desc: intel_vbng34 + virtual-compute-desc: epa-compute + virtual-storage-desc: + - epa-storage + int-cpd: + - id: eth0 + virtual-network-interface-requirement: + - name: eth0 + position: 1 + virtual-interface: + type: PARAVIRT + bandwidth: 1000000 + vpci: 0000:00:0a.0 + - id: xe0 + virtual-network-interface-requirement: + - name: xe0 + position: 2 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:10.0 + - id: xe1 + virtual-network-interface-requirement: + - name: xe1 + position: 3 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:11.0 + - id: xe2 + virtual-network-interface-requirement: + - name: xe2 + position: 4 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:12.0 + - id: xe3 + virtual-network-interface-requirement: + - name: xe3 + position: 5 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:13.0 + - id: xe4 + virtual-network-interface-requirement: + - name: xe4 + position: 6 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:14.0 + - id: xe5 + virtual-network-interface-requirement: + - name: xe5 + position: 7 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:15.0 + - id: xe6 + virtual-network-interface-requirement: + - name: xe6 + position: 8 + virtual-interface: + type: PCI-PASSTHROUGH + bandwidth: 10000000000 + vpci: 0000:00:16.0 + - id: xe7 + virtual-network-interface-requirement: + - name: xe7 + position: 9 + virtual-interface: + type: VIRTIO + bandwidth: 10000000000 + vpci: 0000:00:17.0 + supplemental-boot-data: + boot-data-drive: false + ext-cpd: + - id: eth0-ext + int-cpd: + vdu-id: epa-vdu + cpd: eth0 + - id: xe0-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe0 + - id: xe1-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe1 + - id: xe2-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe2 + - id: xe3-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe3 + - id: xe4-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe4 + - id: xe5-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe5 + - id: xe6-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe6 + - id: xe7-ext + int-cpd: + vdu-id: epa-vdu + cpd: xe7 \ No newline at end of file diff --git a/tests/examples/etsi_complex_vnfd_sol006.yaml b/tests/examples/etsi_complex_vnfd_sol006.yaml index 962f58b..189557a 100644 --- a/tests/examples/etsi_complex_vnfd_sol006.yaml +++ b/tests/examples/etsi_complex_vnfd_sol006.yaml @@ -34,7 +34,8 @@ vnfd: int-virtual-link-desc: mgmt layer-protocol: ipv4 virtual-compute-desc: CP - virtual-storage-desc: root + virtual-storage-desc: + - root sw-image-desc: CP - id: control-plane-standby name: control-plane-standby @@ -46,7 +47,8 @@ vnfd: int-virtual-link-desc: mgmt layer-protocol: ipv4 virtual-compute-desc: CP - virtual-storage-desc: root + virtual-storage-desc: + - root sw-image-desc: CP - id: data-plane name: data-plane @@ -59,7 +61,8 @@ vnfd: - id: out layer-protocol: ipv4 virtual-compute-desc: DP - virtual-storage-desc: root + virtual-storage-desc: + - root sw-image-desc: DP virtual-compute-desc: - id: CP diff --git a/tests/examples/hackfest_charmed_nsd_im.yaml b/tests/examples/hackfest_charmed_nsd_im.yaml new file mode 100644 index 0000000..cb90dbc --- /dev/null +++ b/tests/examples/hackfest_charmed_nsd_im.yaml @@ -0,0 +1,54 @@ +# Copyright 2020 Whitestack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +nsd:nsd-catalog: + nsd: + - constituent-vnfd: + - member-vnf-index: '1' + vnfd-id-ref: hackfest3charmed-vnf + - member-vnf-index: '2' + vnfd-id-ref: hackfest3charmed-vnf + description: NS with 2 VNFs hackfest3charmed-vnf connected by datanet and mgmtnet VLs + id: hackfest3charmed-ns + logo: osm.png + name: hackfest3charmed-ns + short-name: hackfest3charmed-ns + version: '1.0' + vld: + - id: mgmt + mgmt-network: true + name: mgmt + short-name: mgmt + type: ELAN + vim-network-name: mgmt + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: vnf-mgmt + vnfd-id-ref: hackfest3charmed-vnf + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: vnf-mgmt + vnfd-id-ref: hackfest3charmed-vnf + - id: datanet + name: datanet + short-name: datanet + type: ELAN + vnfd-connection-point-ref: + - member-vnf-index-ref: '1' + vnfd-connection-point-ref: vnf-data + vnfd-id-ref: hackfest3charmed-vnf + - member-vnf-index-ref: '2' + vnfd-connection-point-ref: vnf-data + vnfd-id-ref: hackfest3charmed-vnf + diff --git a/tests/examples/hackfest_charmed_nsd_sol006.yaml b/tests/examples/hackfest_charmed_nsd_sol006.yaml new file mode 100644 index 0000000..0d6533e --- /dev/null +++ b/tests/examples/hackfest_charmed_nsd_sol006.yaml @@ -0,0 +1,57 @@ +# Copyright 2020 Whitestack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +nsd: + nsd: + - id: hackfest3charmed-ns + name: hackfest3charmed-ns + description: NS with 2 VNFs hackfest3charmed-vnf connected by datanet and mgmtnet VLs + designer: OSM + version: '1.0' + + vnfd-id: + - hackfest3charmed-vnf + + virtual-link-desc: + - id: mgmt + mgmt-network: "true" + - id: datanet + mgmt-network: "false" + + df: + - id: hackfest_charmed_DF + vnf-profile: + - id: hackfest_vnf1 # member-vnf-index-ref: 1 + vnfd-id: hackfest3charmed-vnf + virtual-link-connectivity: + - virtual-link-profile-id: mgmt + constituent-cpd-id: + - constituent-base-element-id: hackfest_vnf1 + constituent-cpd-id: vnf-mgmt-ext + - virtual-link-profile-id: datanet + constituent-cpd-id: + - constituent-base-element-id: hackfest_vnf1 + constituent-cpd-id: vnf-data-ext + - id: hackfest_vnf2 # member-vnf-index-ref: 2 + vnfd-id: hackfest3charmed-vnf + virtual-link-connectivity: + - virtual-link-profile-id: mgmt + constituent-cpd-id: + - constituent-base-element-id: hackfest_vnf2 + constituent-cpd-id: vnf-mgmt-ext + - virtual-link-profile-id: datanet + constituent-cpd-id: + - constituent-base-element-id: hackfest_vnf2 + constituent-cpd-id: vnf-data-ext \ No newline at end of file diff --git a/tests/examples/hackfest_charmed_vnfd_im.yaml b/tests/examples/hackfest_charmed_vnfd_im.yaml new file mode 100644 index 0000000..f7828fe --- /dev/null +++ b/tests/examples/hackfest_charmed_vnfd_im.yaml @@ -0,0 +1,157 @@ +# Copyright 2020 Whitestack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +vnfd:vnfd-catalog: + vnfd: + - connection-point: + - id: vnf-mgmt + name: vnf-mgmt + short-name: vnf-mgmt + type: VPORT + - id: vnf-data + name: vnf-data + short-name: vnf-data + type: VPORT + description: >- + A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with + cloud-init + id: hackfest3charmed-vnf + internal-vld: + - id: internal + internal-connection-point: + - id-ref: mgmtVM-internal + - id-ref: dataVM-internal + name: internal + short-name: internal + type: ELAN + logo: osm.png + mgmt-interface: + cp: vnf-mgmt + monitoring-param: + - aggregation-type: AVERAGE + id: monitor1 + name: monitor1 + vdu-monitoring-param: + vdu-monitoring-param-ref: dataVM_cpu_util + vdu-ref: dataVM + name: hackfest3charmed-vnf + scaling-group-descriptor: + - max-instance-count: 10 + name: scale_dataVM + scaling-config-action: + - trigger: post-scale-out + vnf-config-primitive-name-ref: touch + - trigger: pre-scale-in + vnf-config-primitive-name-ref: touch + scaling-policy: + - cooldown-time: 60 + name: auto_cpu_util_above_threshold + scaling-criteria: + - name: cpu_util_above_threshold + scale-in-relational-operation: LE + scale-in-threshold: '15.0000000000' + scale-out-relational-operation: GE + scale-out-threshold: '60.0000000000' + vnf-monitoring-param-ref: monitor1 + scaling-type: automatic + threshold-time: 0 + vdu: + - count: 1 + vdu-id-ref: dataVM + short-name: hackfest3charmed-vnf + vdu: + - count: '1' + cloud-init-file: cloud-config.txt + id: mgmtVM + image: hackfest3-mgmt + interface: + - external-connection-point-ref: vnf-mgmt + name: mgmtVM-eth0 + position: 1 + type: EXTERNAL + virtual-interface: + type: VIRTIO + - internal-connection-point-ref: mgmtVM-internal + name: mgmtVM-eth1 + position: 2 + type: INTERNAL + virtual-interface: + type: VIRTIO + internal-connection-point: + - id: mgmtVM-internal + name: mgmtVM-internal + short-name: mgmtVM-internal + type: VPORT + name: mgmtVM + vm-flavor: + memory-mb: '1024' + storage-gb: '10' + vcpu-count: 1 + - count: '1' + id: dataVM + image: hackfest3-mgmt + interface: + - internal-connection-point-ref: dataVM-internal + name: dataVM-eth0 + position: 1 + type: INTERNAL + virtual-interface: + type: VIRTIO + - external-connection-point-ref: vnf-data + name: dataVM-xe0 + position: 2 + type: EXTERNAL + virtual-interface: + type: VIRTIO + internal-connection-point: + - id: dataVM-internal + name: dataVM-internal + short-name: dataVM-internal + type: VPORT + monitoring-param: + - id: dataVM_cpu_util + nfvi-metric: cpu_utilization + name: dataVM + vm-flavor: + memory-mb: '1024' + storage-gb: '10' + vcpu-count: 1 + version: '1.0' + vnf-configuration: + config-primitive: + - name: touch + parameter: + - data-type: STRING + default-value: + name: filename + initial-config-primitive: + - name: config + parameter: + - name: ssh-hostname + value: + - name: ssh-username + value: ubuntu + - name: ssh-password + value: osm4u + seq: '1' + - name: touch + parameter: + - name: filename + value: + seq: '2' + juju: + charm: simple + + diff --git a/tests/examples/hackfest_charmed_vnfd_sol006.yaml b/tests/examples/hackfest_charmed_vnfd_sol006.yaml new file mode 100644 index 0000000..f73264f --- /dev/null +++ b/tests/examples/hackfest_charmed_vnfd_sol006.yaml @@ -0,0 +1,177 @@ +# Copyright 2020 Whitestack LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +vnfd: + id: hackfest3charmed-vnf + description: >- + A VNF consisting of 2 VDUs connected to an internal VL, and one VDU with + cloud-init + product-name: hackfest3charmed-vnf + version: '1.0' + mgmt-cp: vnf-mgmt-ext + + virtual-compute-desc: + - id: mgmt-compute + virtual-cpu: + num-virtual-cpu: 1 + virtual-memory: + size: 1 + - id: data-compute + virtual-cpu: + num-virtual-cpu: 1 + virtual-memory: + size: 1 + + virtual-storage-desc: + - id: mgmt-storage + size-of-storage: 10 + - id: data-storage + size-of-storage: 10 + + sw-image-desc: + - id: hackfest3-mgmt + name: hackfest3-mgmt + + vdu: + - id: mgmtVM + name: mgmtVM + cloud-init-file: cloud-config.txt + sw-image-desc: hackfest3-mgmt + virtual-compute-desc: mgmt-compute + virtual-storage-desc: + - mgmt-storage + int-cpd: + - id: vnf-mgmt + virtual-network-interface-requirement: + - name: mgmtVM-eth0 + position: 1 + virtual-interface: + type: VIRTIO + - id: mgmtVM-internal + int-virtual-link-desc: internal + virtual-network-interface-requirement: + - name: mgmtVM-eth1 + position: 2 + virtual-interface: + type: VIRTIO + - id: dataVM + name: dataVM + sw-image-desc: hackfest3-mgmt + virtual-compute-desc: data-compute + virtual-storage-desc: + - data-storage + int-cpd: + - id: dataVM-internal + int-virtual-link-desc: internal + virtual-network-interface-requirement: + - name: dataVM-eth1 + position: 1 + virtual-interface: + type: VIRTIO + - id: vnf-data + virtual-network-interface-requirement: + - name: dataVM-eth0 + position: 2 + virtual-interface: + type: VIRTIO + monitoring-parameter: + - id: dataVM_cpu_util + name: dataVM_cpu_util + performance-metric: cpu_utilization + + int-virtual-link-desc: + - id: internal + + ext-cpd: + - id: vnf-mgmt-ext + int-cpd: # Connection to int-cpd + vdu-id: mgmtVM + cpd: vnf-mgmt + - id: vnf-data-ext + int-cpd: # Connection to int-cpd + vdu-id: dataVM + cpd: vnf-data + + df: + - id: hackfest_default + vnf-configuration-id: vnf-configuration-example + vdu-profile: + - id: mgmtVM + min-number-of-instances: 1 + - id: dataVM + min-number-of-instances: 1 + max-number-of-instances: 10 + vdu-configuration-id: vdu-configuration-example + instantiation-level: + - id: default + vdu-level: + - vdu-id: mgmtVM + number-of-instances: 1 + - vdu-id: dataVM + number-of-instances: 1 + scaling-aspect: + - id: scale_dataVM + name: scale_dataVM + max-scale-level: 10 + aspect-delta-details: + deltas: + - id: delta1 + vdu-delta: + - id: vdudelta1 + number-of-instances: 1 + scaling-policy: + - name: auto_cpu_util_above_threshold + scaling-type: automatic + enabled: true + threshold-time: 0 + cooldown-time: 60 + scaling-criteria: + - name: cpu_util_above_threshold + scale-in-relational-operation: LE + scale-in-threshold: '15.0000000000' + scale-out-relational-operation: GE + scale-out-threshold: '60.0000000000' + vnf-monitoring-param-ref: dataVM_cpu_util + scaling-config-action: + - trigger: post-scale-out + vnf-config-primitive-name-ref: touch + - trigger: pre-scale-in + vnf-config-primitive-name-ref: touch + + vnf-configuration: + - id: vnf-configuration-example + initial-config-primitive: + - seq: "1" + name: config + parameter: + - name: ssh-hostname + value: + - name: ssh-username + value: ubuntu + - name: ssh-password + value: osm4u + - seq: "2" + name: touch + parameter: + - name: filename + value: + config-primitive: + - name: touch + parameter: + - data-type: STRING + default-value: + name: filename + juju: + charm: simple diff --git a/tests/examples/magma_knf_sol006.yaml b/tests/examples/magma_knf_sol006.yaml index 925f350..58bdb96 100644 --- a/tests/examples/magma_knf_sol006.yaml +++ b/tests/examples/magma_knf_sol006.yaml @@ -19,7 +19,7 @@ vnfd: description: KNF with KDU using a helm-chart for Facebook magma orc8r provider: ATOS version: "1.0" - mgmt-cp: mgmt + mgmt-cp: mgmt-ext ext-cpd: - id: mgmt-ext diff --git a/tests/examples/vepc_sol006.yaml b/tests/examples/vepc_sol006.yaml index 436f5cb..b4e43c2 100644 --- a/tests/examples/vepc_sol006.yaml +++ b/tests/examples/vepc_sol006.yaml @@ -19,7 +19,7 @@ vnfd: description: Generated by OSM package generator provider: OSM_VNFONB_TF version: "1.0" - mgmt-cp: spgwmme-mgmt-int #Simplified from mgmt-interface + mgmt-cp: spgwmme-mgmt-ext #Simplified from mgmt-interface virtual-compute-desc: - id: spgwmme-compute virtual-cpu: @@ -51,7 +51,8 @@ vnfd: description: spgwmme cloud-init-file: spgwmme-init virtual-compute-desc: spgwmme-compute - virtual-storage-desc: spgwmme-storage + virtual-storage-desc: + - spgwmme-storage sw-image-desc: nextepc-spgwmme-base int-cpd: - id: spgwmme-mgmt-int @@ -80,7 +81,8 @@ vnfd: description: hss cloud-init-file: hss-init virtual-compute-desc: hss-compute - virtual-storage-desc: hss-storage + virtual-storage-desc: + - hss-storage sw-image-desc: nextepc-hss-bas int-cpd: - id: hss-mgmt-int diff --git a/tests/examples/vnfd_sol006.yaml b/tests/examples/vnfd_sol006.yaml index f4e82a9..6ecbb82 100644 --- a/tests/examples/vnfd_sol006.yaml +++ b/tests/examples/vnfd_sol006.yaml @@ -17,7 +17,7 @@ vnfd: id: vnfd - mgmt-cp: vnf-mgmt + mgmt-cp: vnf-mgmt-ext ext-cpd: - id: vnf-mgmt-ext diff --git a/tests/test_validation.py b/tests/test_validation.py index 997e2af..d763b3e 100644 --- a/tests/test_validation.py +++ b/tests/test_validation.py @@ -21,7 +21,9 @@ TESTS_EXAMPLES_FOLDER = 'tests/examples/' VNFD_FILES = [ 'alternative_image_sol006.yaml', 'cirros_vnfd_sol006.yaml', + 'epa_sol006.yaml', 'etsi_complex_vnfd_sol006.yaml', + 'hackfest_charmed_vnfd_sol006.yaml', 'magma_knf_sol006.yaml', 'vepc_sol006.yaml', 'vnfd_sol006.yaml' @@ -30,6 +32,7 @@ VNFD_FILES = [ NSD_FILES = [ 'cirros_nsd_sol006.yaml', 'etsi_nsd_sol006.yaml', + 'hackfest_charmed_nsd_sol006.yaml', 'vepc_nsd_sol006.yaml' ] -- 2.17.1