From 5d5d8f38910c9e776a3d38bbeea26e85a08ed177 Mon Sep 17 00:00:00 2001 From: maopengzhang Date: Thu, 5 Sep 2019 20:23:36 +0800 Subject: [PATCH] fix tosca template bugs unzip tosca package to files and fix some template bugs Change-Id: If5b7f70844fb3218f37cb9b3e286cfea622ae9a7 Issue-ID: MODELING-219 Signed-off-by: maopengzhang --- catalog/pub/msapi/extsys.py | 175 - catalog/pub/utils/toscaparser/testdata/ns/ran.csar | Bin 3007 -> 0 bytes .../testdata/ns/ran/TOSCA-Metadata/TOSCA.meta | 4 + .../utils/toscaparser/testdata/ns/ran/ran-ns.yaml | 124 + .../testdata/ns/ran/type_definition.yaml | 260 ++ .../toscaparser/testdata/ns/service-vIMS.csar | Bin 47518 -> 0 bytes .../ns/service-vims/Definitions/artifacts.yml | 40 + .../ns/service-vims/Definitions/capabilities.yml | 279 ++ .../testdata/ns/service-vims/Definitions/data.yml | 1432 ++++++++ .../ns/service-vims/Definitions/groups.yml | 133 + .../ns/service-vims/Definitions/interfaces.yml | 28 + .../testdata/ns/service-vims/Definitions/nodes.yml | 3623 ++++++++++++++++++++ .../ns/service-vims/Definitions/policies.yml | 134 + .../ns/service-vims/Definitions/relationships.yml | 125 + .../resource-CscfNokia-template-interface.yml | 678 ++++ .../Definitions/resource-CscfNokia-template.yml | 600 ++++ .../Definitions/resource-ExtZteVl-template.yml | 80 + .../resource-SbcHuawei-template-interface.yml | 1716 +++++++++ .../Definitions/resource-SbcHuawei-template.yml | 1546 +++++++++ .../Definitions/resource-VduCompute-template.yml | 169 + .../Definitions/resource-VduCpd-template.yml | 57 + .../resource-VduVirtualstorage-template.yml | 46 + .../resource-Vnfvirtuallinkdesc-template.yml | 50 + .../service-VimsV2-template-interface.yml | 2371 +++++++++++++ .../Definitions/service-VimsV2-template.yml | 1099 ++++++ .../ns/service-vims/TOSCA-Metadata/TOSCA.meta | 7 + .../toscaparser/testdata/ns/service-vims/csar.meta | 2 + .../pub/utils/toscaparser/testdata/pnf/ran-du.csar | Bin 2688 -> 0 bytes .../testdata/pnf/ran-du/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/pnf/ran-du/ran-du.yaml | 65 + .../testdata/pnf/ran-du/type_definition.yaml | 251 ++ .../pub/utils/toscaparser/testdata/vnf/vSBC.csar | Bin 11516 -> 0 bytes .../vnf/vSBC/Definitions/MainServiceTemplate.yaml | 192 ++ .../testdata/vnf/vSBC/Definitions/onap_dm.yaml | 826 +++++ .../testdata/vnf/vSBC/MainServiceTemplate.mf | 8 + .../testdata/vnf/vSBC/MainServiceTemplate.yaml | 189 + .../testdata/vnf/vSBC/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vSBC/onap_dm.yaml | 826 +++++ .../toscaparser/testdata/vnf/vcpedpdk/infra.csar | Bin 15716 -> 0 bytes .../vcpedpdk/infra/Artifacts/images/ubuntu_16.04 | 0 .../vcpedpdk/infra/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpedpdk/infra/Artifacts/keys/id_rsa | 27 + .../vnf/vcpedpdk/infra/Artifacts/keys/id_rsa.pub | 1 + .../infra/Definitions/MainServiceTemplate.yaml | 764 +++++ .../vnf/vcpedpdk/infra/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpedpdk/infra/MainServiceTemplate.mf | 8 + .../vnf/vcpedpdk/infra/MainServiceTemplate.yaml | 763 +++++ .../vnf/vcpedpdk/infra/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpedpdk/vbng.csar | Bin 15357 -> 0 bytes .../vcpedpdk/vbng/Artifacts/images/ubuntu_16.04 | 0 .../vcpedpdk/vbng/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpedpdk/vbng/Artifacts/keys/id_rsa | 27 + .../vnf/vcpedpdk/vbng/Artifacts/keys/id_rsa.pub | 1 + .../vbng/Definitions/MainServiceTemplate.yaml | 436 +++ .../vnf/vcpedpdk/vbng/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpedpdk/vbng/MainServiceTemplate.mf | 8 + .../vnf/vcpedpdk/vbng/MainServiceTemplate.yaml | 436 +++ .../vnf/vcpedpdk/vbng/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpedpdk/vbrgemu.csar | Bin 14527 -> 0 bytes .../vcpedpdk/vbrgemu/Artifacts/images/ubuntu_16.04 | 0 .../vbrgemu/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpedpdk/vbrgemu/Artifacts/keys/id_rsa | 27 + .../vnf/vcpedpdk/vbrgemu/Artifacts/keys/id_rsa.pub | 1 + .../vbrgemu/Definitions/MainServiceTemplate.yaml | 290 ++ .../vnf/vcpedpdk/vbrgemu/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpedpdk/vbrgemu/MainServiceTemplate.mf | 8 + .../vnf/vcpedpdk/vbrgemu/MainServiceTemplate.yaml | 290 ++ .../vnf/vcpedpdk/vbrgemu/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpedpdk/vgmux.csar | Bin 14970 -> 0 bytes .../vcpedpdk/vgmux/Artifacts/images/ubuntu_16.04 | 0 .../vcpedpdk/vgmux/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpedpdk/vgmux/Artifacts/keys/id_rsa | 27 + .../vnf/vcpedpdk/vgmux/Artifacts/keys/id_rsa.pub | 1 + .../vgmux/Definitions/MainServiceTemplate.yaml | 381 ++ .../vnf/vcpedpdk/vgmux/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpedpdk/vgmux/MainServiceTemplate.mf | 8 + .../vnf/vcpedpdk/vgmux/MainServiceTemplate.yaml | 381 ++ .../vnf/vcpedpdk/vgmux/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpedpdk/vgw.csar | Bin 15008 -> 0 bytes .../vnf/vcpedpdk/vgw/Artifacts/images/ubuntu_16.04 | 0 .../vcpedpdk/vgw/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpedpdk/vgw/Artifacts/keys/id_rsa | 27 + .../vnf/vcpedpdk/vgw/Artifacts/keys/id_rsa.pub | 1 + .../vgw/Definitions/MainServiceTemplate.yaml | 377 ++ .../vnf/vcpedpdk/vgw/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpedpdk/vgw/MainServiceTemplate.mf | 8 + .../vnf/vcpedpdk/vgw/MainServiceTemplate.yaml | 377 ++ .../vnf/vcpedpdk/vgw/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpesriov/infra.csar | Bin 15432 -> 0 bytes .../vcpesriov/infra/Artifacts/images/ubuntu_16.04 | 0 .../vcpesriov/infra/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpesriov/infra/Artifacts/keys/id_rsa | 27 + .../vnf/vcpesriov/infra/Artifacts/keys/id_rsa.pub | 1 + .../infra/Definitions/MainServiceTemplate.yaml | 738 ++++ .../vnf/vcpesriov/infra/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpesriov/infra/MainServiceTemplate.mf | 8 + .../vnf/vcpesriov/infra/MainServiceTemplate.yaml | 758 ++++ .../vnf/vcpesriov/infra/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpesriov/vbng.csar | Bin 15410 -> 0 bytes .../vcpesriov/vbng/Artifacts/images/ubuntu_16.04 | 0 .../vcpesriov/vbng/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpesriov/vbng/Artifacts/keys/id_rsa | 27 + .../vnf/vcpesriov/vbng/Artifacts/keys/id_rsa.pub | 1 + .../vbng/Definitions/MainServiceTemplate.yaml | 436 +++ .../vnf/vcpesriov/vbng/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpesriov/vbng/MainServiceTemplate.mf | 8 + .../vnf/vcpesriov/vbng/MainServiceTemplate.yaml | 444 +++ .../vnf/vcpesriov/vbng/TOSCA-Metadata/TOSCA.meta | 4 + .../testdata/vnf/vcpesriov/vbrgemu.csar | Bin 14569 -> 0 bytes .../vbrgemu/Artifacts/images/ubuntu_16.04 | 0 .../vbrgemu/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa | 27 + .../vcpesriov/vbrgemu/Artifacts/keys/id_rsa.pub | 1 + .../vbrgemu/Definitions/MainServiceTemplate.yaml | 290 ++ .../vnf/vcpesriov/vbrgemu/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpesriov/vbrgemu/MainServiceTemplate.mf | 8 + .../vnf/vcpesriov/vbrgemu/MainServiceTemplate.yaml | 293 ++ .../vcpesriov/vbrgemu/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpesriov/vgmux.csar | Bin 15023 -> 0 bytes .../vcpesriov/vgmux/Artifacts/images/ubuntu_16.04 | 0 .../vcpesriov/vgmux/Artifacts/keys/authorized_keys | 1 + .../vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa | 27 + .../vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa.pub | 1 + .../vgmux/Definitions/MainServiceTemplate.yaml | 381 ++ .../vnf/vcpesriov/vgmux/Definitions/onap_dm.yaml | 827 +++++ .../vnf/vcpesriov/vgmux/MainServiceTemplate.mf | 8 + .../vnf/vcpesriov/vgmux/MainServiceTemplate.yaml | 389 +++ .../vnf/vcpesriov/vgmux/TOSCA-Metadata/TOSCA.meta | 4 + .../toscaparser/testdata/vnf/vcpesriov/vgw.csar | Bin 23182 -> 0 bytes .../vgw/Artifacts/Deployment/OTHER/authorized_keys | 1 + .../vgw/Artifacts/Deployment/OTHER/id_rsa | 27 + .../vgw/Artifacts/Deployment/OTHER/id_rsa.pub | 1 + .../vcpesriov/vgw/Artifacts/Deployment/OTHER/image | 1 + .../vgw/Definitions/MainServiceTemplate.yaml | 345 ++ .../vnf/vcpesriov/vgw/Definitions/onap_dm.yaml | 1695 +++++++++ .../vnf/vcpesriov/vgw/MainServiceTemplate.mf | 8 + .../vnf/vcpesriov/vgw/MainServiceTemplate.yaml | 345 ++ .../vnf/vcpesriov/vgw/TOSCA-Metadata/TOSCA.meta | 4 + catalog/pub/utils/toscaparser/tests.py | 52 +- catalog/settings.py | 9 +- 140 files changed, 35466 insertions(+), 201 deletions(-) delete mode 100644 catalog/pub/msapi/extsys.py delete mode 100644 catalog/pub/utils/toscaparser/testdata/ns/ran.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/ran/TOSCA-Metadata/TOSCA.meta create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/ran/ran-ns.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/ran/type_definition.yaml delete mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vIMS.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/artifacts.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/capabilities.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/data.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/groups.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/interfaces.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/nodes.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/policies.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/relationships.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template-interface.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-ExtZteVl-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template-interface.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCompute-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCpd-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduVirtualstorage-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-Vnfvirtuallinkdesc-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template-interface.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template.yml create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/TOSCA-Metadata/TOSCA.meta create mode 100644 catalog/pub/utils/toscaparser/testdata/ns/service-vims/csar.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/pnf/ran-du.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/pnf/ran-du/TOSCA-Metadata/TOSCA.meta create mode 100644 catalog/pub/utils/toscaparser/testdata/pnf/ran-du/ran-du.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/pnf/ran-du/type_definition.yaml delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/TOSCA-Metadata/TOSCA.meta create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vSBC/onap_dm.yaml delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/images/ubuntu_16.04 create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/TOSCA-Metadata/TOSCA.meta delete mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw.csar create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/authorized_keys create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa.pub create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/image create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/onap_dm.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.mf create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.yaml create mode 100644 catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/TOSCA-Metadata/TOSCA.meta diff --git a/catalog/pub/msapi/extsys.py b/catalog/pub/msapi/extsys.py deleted file mode 100644 index e038f26..0000000 --- a/catalog/pub/msapi/extsys.py +++ /dev/null @@ -1,175 +0,0 @@ -# Copyright 2016 ZTE Corporation. -# -# 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. - -import json -import logging -import uuid - -from catalog.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWD -from catalog.pub.exceptions import CatalogException -from catalog.pub.utils import restcall -from catalog.pub.utils.values import ignore_case_get - -logger = logging.getLogger(__name__) - - -def call_aai(resource, method, content=''): - additional_headers = { - 'X-FromAppId': 'VFC-CATALOG', - 'X-TransactionId': str(uuid.uuid1()) - } - return restcall.call_req(AAI_BASE_URL, - AAI_USER, - AAI_PASSWD, - restcall.rest_no_auth, - resource, - method, - content, - additional_headers) - - -def get_vims(): - ret = call_aai("/cloud-infrastructure/cloud-regions?depth=all", "GET") - if ret[0] != 0: - logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) - raise CatalogException("Failed to query vims from extsys.") - # convert vim_info_aai to internal vim_info - vims_aai = json.JSONDecoder().decode(ret[1]) - vims_aai = ignore_case_get(vims_aai, "cloud-region") - vims_info = [] - for vim in vims_aai: - vim = convert_vim_info(vim) - vims_info.append(vim) - return vims_info - - -def get_vim_by_id(vim_id): - cloud_owner, cloud_region = split_vim_to_owner_region(vim_id) - ret = call_aai("/cloud-infrastructure/cloud-regions/cloud-region/%s/%s?depth=all" - % (cloud_owner, cloud_region), "GET") - if ret[0] != 0: - logger.error("Status code is %s, detail is %s.", ret[2], ret[1]) - raise CatalogException("Failed to query vim(%s) from extsys." % vim_id) - # convert vim_info_aai to internal vim_info - vim_info_aai = json.JSONDecoder().decode(ret[1]) - vim_info = convert_vim_info(vim_info_aai) - return vim_info - - -def split_vim_to_owner_region(vim_id): - split_vim = vim_id.split('_') - cloud_owner = split_vim[0] - cloud_region = "".join(split_vim[1:]) - return cloud_owner, cloud_region - - -def convert_vim_info(vim_info_aai): - vim_id = vim_info_aai["cloud-owner"] + "_" + vim_info_aai["cloud-region-id"] - esr_system_info = ignore_case_get(ignore_case_get(vim_info_aai, "esr-system-info-list"), "esr-system-info") - vim_info = { - "vimId": vim_id, - "name": vim_id, - "url": ignore_case_get(esr_system_info[0], "service-url"), - "userName": ignore_case_get(esr_system_info[0], "user-name"), - "password": ignore_case_get(esr_system_info[0], "password"), - "tenant": ignore_case_get(esr_system_info[0], "default-tenant"), - "vendor": ignore_case_get(esr_system_info[0], "vendor"), - "version": ignore_case_get(esr_system_info[0], "version"), - "description": "vim", - "domain": "", - "type": ignore_case_get(esr_system_info[0], "type"), - "createTime": "2016-07-18 12:22:53" - } - return vim_info - - -def get_sdn_controller_by_id(sdn_ontroller_id): - ret = call_aai("/external-system/esr-thirdparty-sdnc-list/esr-thirdparty-sdnc/%s?depth=all" - % sdn_ontroller_id, "GET") - if ret[0] != 0: - logger.error("Failed to query sdn ontroller(%s) from extsys. detail is %s.", sdn_ontroller_id, ret[1]) - raise CatalogException("Failed to query sdn ontroller(%s) from extsys." % sdn_ontroller_id) - # convert vim_info_aai to internal vim_info - sdnc_info_aai = json.JSONDecoder().decode(ret[1]) - sdnc_info = convert_sdnc_info(sdnc_info_aai) - return sdnc_info - - -def convert_sdnc_info(sdnc_info_aai): - esr_system_info = ignore_case_get(ignore_case_get(sdnc_info_aai, "esr-system-info-list"), "esr-system-info") - sdnc_info = { - "sdnControllerId": sdnc_info_aai["thirdparty-sdnc-id"], - "name": sdnc_info_aai["thirdparty-sdnc-id"], - "url": ignore_case_get(esr_system_info[0], "service-url"), - "userName": ignore_case_get(esr_system_info[0], "user-name"), - "password": ignore_case_get(esr_system_info[0], "password"), - "vendor": ignore_case_get(esr_system_info[0], "vendor"), - "version": ignore_case_get(esr_system_info[0], "version"), - "description": "", - "protocol": ignore_case_get(esr_system_info[0], "protocal"), - "productName": ignore_case_get(sdnc_info_aai, "product-name"), - "type": ignore_case_get(esr_system_info[0], "type"), - "createTime": "2016-07-18 12:22:53" - } - return sdnc_info - - -def get_vnfm_by_id(vnfm_inst_id): - uri = "/external-system/esr-vnfm-list/esr-vnfm/%s?depth=all" % vnfm_inst_id - ret = call_aai(uri, "GET") - if ret[0] > 0: - logger.error('Send get VNFM information request to extsys failed.') - raise CatalogException('Send get VNFM information request to extsys failed.') - # convert vnfm_info_aai to internal vnfm_info - vnfm_info_aai = json.JSONDecoder().decode(ret[1]) - vnfm_info = convert_vnfm_info(vnfm_info_aai) - return vnfm_info - - -def convert_vnfm_info(vnfm_info_aai): - esr_system_info = ignore_case_get(ignore_case_get(vnfm_info_aai, "esr-system-info-list"), "esr-system-info") - vnfm_info = { - "vnfmId": vnfm_info_aai["vnfm-id"], - "name": vnfm_info_aai["vnfm-id"], - "type": ignore_case_get(esr_system_info[0], "type"), - "vimId": vnfm_info_aai["vim-id"], - "vendor": ignore_case_get(esr_system_info[0], "vendor"), - "version": ignore_case_get(esr_system_info[0], "version"), - "description": "vnfm", - "certificateUrl": vnfm_info_aai["certificate-url"], - "url": ignore_case_get(esr_system_info[0], "service-url"), - "userName": ignore_case_get(esr_system_info[0], "user-name"), - "password": ignore_case_get(esr_system_info[0], "password"), - "createTime": "2016-07-06 15:33:18" - } - return vnfm_info - - -def select_vnfm(vnfm_type, vim_id): - uri = "/external-system/esr-vnfm-list?depth=all" - ret = call_aai(uri, "GET") - if ret[0] > 0: - logger.error("Failed to call %s: %s", uri, ret[1]) - raise CatalogException('Failed to get vnfms from extsys.') - vnfms = json.JSONDecoder().decode(ret[1]) - vnfms = ignore_case_get(vnfms, "esr-vnfm") - for vnfm in vnfms: - esr_system_info = ignore_case_get(vnfm, "esr-system-info") - type = ignore_case_get(esr_system_info, "type") - vimId = vnfm["vnfm-id"] - if type == vnfm_type and vimId == vim_id: - # convert vnfm_info_aai to internal vnfm_info - vnfm = convert_vnfm_info(vnfm) - return vnfm - raise CatalogException('No vnfm found with %s in vim(%s)' % (vnfm_type, vim_id)) diff --git a/catalog/pub/utils/toscaparser/testdata/ns/ran.csar b/catalog/pub/utils/toscaparser/testdata/ns/ran.csar deleted file mode 100644 index 9ea868ca37bdc35fca3305de3f5691bd1274bce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3007 zcmZvec|2768^;f0YskJ9B_YgA#@0ea23ZS@CF?N5ohEBzH)9u(b<$X}Wov9jma$$E zsYYZcloq6Gxn)=VM)!K<{_1;P-}9VvUeEXQe$F4ya?udP#1HH&|2Qe*9}oZDz;ui9 z#$#Pj&iHHc7ytER1Mp;waXIfKiWLL^RU81oPWSUhxx?JA9S=acUH!{K&0`$SJ-Gsj zfu@%km@x8>ftAz2cmH_F2?K{0$y|>?R0YfU5($ZcW@)L?EE&)|_48}f6KlzSRWC1w zU$gLRgWYa_oq+{$iCjTOTT;;edKBK`Q?YU``X+B2-bF9A%-2vy= zQo2e_45~7EnHZ;RCn+Rj=c3OTa#(^fghKsWMWyksK=qp0R35GfXJXB-g)*~w%Wf^+ zXbufMvbv(1oOJps6Q$DtobP0efNn#|vat3_C3?>&k07hZr3H1ww!BfYFoFKGlL{Gw z#nLK{L+r^H7{H8H^&=eTXx~m%h-k8VJ}`OZd@bICbycAvyIW|(r`<#?i*&Sf6@m^^ zrDQ*PlsJgwXDTP(2MMqz>`fznwQ#8%c-H-4|t9=VrUz2I)s~sP9%Tcv9w)1)2g#CI4IcCgg zi!w$!(Apqsa$eat4s>UTDL3prF$xr9#-O|k-?WWvBgSr@7Vb?#9|>qq?xQ9SNqDkIzc5FGR0WHmM-sVKb5InGJ0Qw7E@S8rt`c z?`LV^mHKvBr3%4Fp*&WL6WR@(4S3>-HqNl*xe>q&0PA7^uu~}T0iGBKG{yz%j>Tg= z+<)Xe&DzFe49-t{QF*@uqTOp8^!jG`c;tZTP^L8U7KWF#Ox5>_8tT*V;wd3s@lgFZ zi#mxX%Nsop2n)jZ2;rauiftUJ=iZX!_B%w&gcMryU%O!`Iqe_1l|7S6elG0l5=E0M z3XD0k{>*Z1NM2-6ou{aowaDn)x&Yq`bmv^JHk^@SWdIVD6WO0B<58fTEyS%2K7?cO zwFH$f1O84yt78q`}CT>PB7{~|a1cDHVQ1{BpO#*q2u&~1A zHU}1Om^Cq7-_~E5-Y2+7rLt-u717k%98auGgH?RYcAJvReMYISD>lzg_RR7he9)oi zuI4m-){B^2afaBv;5|Y z@?8G)sU`o*^7{pe+s2xcu6+(X@$93nX6J}fwviW3^Z4Ch6XRpf@N4;uPuce^(|H)D zgygh1zCG9y&*vkpuN*PsT#%E1u25Lcxff;t{Eeu$xTW{(B;tb^t_=F|M2YcM%yI%{ zg7q~gn-iyGV#(CJUtjL9-i66Iy%0m>(_mGDeQ$MCl)hwnNaT)LLVGyb=0w5C2hxV| zHkQhT^G!j+qIRAeiUJ@6cgr;HaebV4IMGdKo`{it5 zY6UHW#KLxt6Mf{Ri1Br=vn^+A(=TZvH$Gn0;D<*=%0}FID8N^VVrfU2W+16N>#i_5L)Gwq_HI_ExI z%89_b`JD(%iahx0Ni$M_T~M?tAph#S4xj4N_FU>QOSqeX4bmFziYW~2)}2YhNnUBf zuF=l*qdB-uQ>~U9O!=#0_l(Mx)eiS>)7n$C0-?2h7f*JSTu``%j+!;wb$ z+wTYVvD9}lPPH?Qk2xJ$6f=cIzk&ol>;N;eK$+I>eHtVzJ z8^uqO6j)CW{#DR1rFhG@_L%TU!htE(`2~?+bwHCE5-!(zv(jTe*Fi`)qoRgSA5O&T zd)clwL1q(Z>oPOFE8+)|0a!t6m~-ZlixclFI(lVTSkteKdyUW*0*9@Kzh=*KMT^iX zrY1YQeWpjpWuy20$197_(|N5d#c0`%5q&{7?H+ z`*$@aHU-JwA(6Vpm?SF>Y`hEZa diff --git a/catalog/pub/utils/toscaparser/testdata/ns/ran/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/ns/ran/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..c391bf2 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/ran/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: ran-ns.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/ns/ran/ran-ns.yaml b/catalog/pub/utils/toscaparser/testdata/ns/ran/ran-ns.yaml new file mode 100644 index 0000000..4f203ba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/ran/ran-ns.yaml @@ -0,0 +1,124 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + nsd_invariant_id: 1zx2323523xc + nsd_name: RAN-NS + nsd_file_structure_version: "1.0" + nsd_designer: ZTE + nsd_release_date_time: "2018-11-05 12:00:00" + +description: RAN Network Service + +imports: + - type_definition.yaml + +node_types: + onap.ran.ns: + derived_from: tosca.nodes.nfv.NS + properties: + descriptor_id: + type: string + required: true + designer: + type: string + required: true + version: + type: string + required: true + name: + type: string + required: true + invariant_id: + type: string + required: true + + onap.ran.cucp: + derived_from: tosca.nodes.nfv.VNF + requirements: + - ran_ext_net: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + - ran_flat_net: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + + onap.ran.cuup: + derived_from: tosca.nodes.nfv.VNF + requirements: + - ran_ext_net: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + - ran_flat_net: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + +topology_template: + substitution_mappings: + node_type: onap.ran.ns + properties: + descriptor_id: test_01 + designer: ZTE + version: 1.0.1 + name: ZTE RAN + invariant_id: 1zx2323523xc + + node_templates: + + vl_ext_net: + type: tosca.nodes.nfv.NsVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + version: 1.0.1 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: ran_ext_net + cidr: 10.0.0.0/24 + dhcpEnabled: false + + vl_flat_net: + type: tosca.nodes.nfv.NsVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + version: 1.0.1 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: ran_flat_net + cidr: 10.1.0.0/24 + dhcpEnabled: false + + cu: + type: onap.ran.cucp + properties: + descriptor_id: zte_ran_cu_0001 + descriptor_version: 1.0 + provider: ZTE + product_name: ran + software_version: 1.0.1 + vnfm_info: [ 'gvnfmdriver' ] + flavour_id: 1 + flavour_description: default + requirements: + - ran_ext_net: vl_ext_net + - ran_flat_net: vl_flat_net + + + du: + type: tosca.nodes.nfv.PNF + properties: + descriptor_id: pnf_test_01 + provider: ZTE + version: 1.0 + descriptor_invariant_id: 1111 + name: ZTE RAN DU + function_description: RAN DU Function diff --git a/catalog/pub/utils/toscaparser/testdata/ns/ran/type_definition.yaml b/catalog/pub/utils/toscaparser/testdata/ns/ran/type_definition.yaml new file mode 100644 index 0000000..83fcb01 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/ran/type_definition.yaml @@ -0,0 +1,260 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 + +capability_types: + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + +data_types: + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.ServiceAvailability: + derived_from: tosca.datatypes.Root + description: service availability + properties: + Level: + type: string + description: service availability levels + required: true + constraints: + - valid_values: [ Level1, Level2,Level3 ] + +node_types: + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: + type: string # GUID + required: true + descriptor_version: + type: string + required: true + provider: + type: string + required: true + product_name: + type: string + required: true + software_version: + type: string + required: true + product_info_name: + type: string + required: false + product_info_description: + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #requirements: + # - virtual_link: + # capability: tosca.capabilities.nfv.VirtualLinkable + # relationship: tosca.relationships.nfv.VirtualLinksTo + # node: tosca.nodes.nfv.VnfVirtualLink + # occurrences: [ 0, UNBOUNDED ] + #interfaces: + # Nfv: + # type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + + tosca.nodes.nfv.PNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: + type: string + required: true + provider: + type: string + required: true + version: + type: string + required: true + descriptor_invariant_id: + type: string + required: true + name: + type: string + required: true + function_description: + type: string + required: true + #geographical_location_info: + # type: TBD + # required: true + #requirements: + # - virtual_link: + # capability: tosca.capabilities.nfv.VirtualLinkable + # relationship: tosca.relationships.nfv.VirtualLinksTo + + tosca.nodes.nfv.PnfExtPort: + derived_from: tosca.nodes.Root + + tosca.nodes.nfv.NsVirtualLink: + derived_from: tosca.nodes.Root + description: node definition of Virtual Links + properties: + provider: + type: string + required: false + version: + type: string + required: true + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + service_availability: + type: tosca.datatypes.nfv.ServiceAvailability + required: false + capabilities: + VirtualLinkable: + type: tosca.capabilities.nfv.VirtualLinkable + tosca.nodes.nfv.NS: + derived_from: tosca.nodes.Root + properties: + descriptor_id: + type: string + required: true + designer: + type: string + required: true + version: + type: string + required: true + name: + type: string + required: true + invariant_id: + type: string + required: true + capabilities: + #monitoring_parameter: + # modelled as ad hoc capabilities in VNF node template + requirements: + - virtual_link: + capability: + tosca.capabilities.nfv.VirtualLinkable + relationship: + tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.NsVirtualLink + occurrences: [ 0, UNBOUNDED ] + +relationship_types: + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vIMS.csar b/catalog/pub/utils/toscaparser/testdata/ns/service-vIMS.csar deleted file mode 100644 index 0aeed58f8e9a8de78b4ab9e193a30db612068a8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47518 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 rKZz)R2tSeY7@fe(n8#(UVgY diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/artifacts.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/artifacts.yml new file mode 100644 index 0000000..fd13d85 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/artifacts.yml @@ -0,0 +1,40 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +artifact_types: + tosca.artifacts.Root: + description: This is the default (root) TOSCA Artifact Type definition that all other TOSCA base Artifact Types derive from. + tosca.artifacts.Deployment.Image: + derived_from: tosca.artifacts.Deployment + description: This artifact type represents a parent type for any "image" which is an opaque packaging of a TOSCA Node's deployment (whether real or virtual) whose contents are typically already installed and pre-configured (i.e., "stateful") and prepared to be run on a known target container. + tosca.artifacts.Implementation.Bash: + derived_from: tosca.artifacts.Implementation + description: This artifact type represents a Bash script type that contains Bash commands that can be executed on the Unix Bash shell. + tosca.artifacts.Deployment.Image.VM: + derived_from: tosca.artifacts.Deployment + description: This artifact represents the parent type for all Virtual Machine (VM) image and container formatted deployment artifacts. These images contain a stateful capture of a machine (e.g., server) including operating system and installed software along with any configurations and can be run on another machine using a hypervisor which virtualizes typical server (i.e., hardware) resources. + tosca.artifacts.Implementation.Python: + derived_from: tosca.artifacts.Implementation + description: This artifact type represents a Python file that contains Python language constructs that can be executed within a Python interpreter. + tosca.artifacts.Deployment: + derived_from: tosca.artifacts.Root + description: This artifact type represents the parent type for all deployment artifacts in TOSCA. This class of artifacts typically represents a binary packaging of an application or service that is used to install/create or deploy it as part of a node's lifecycle. + tosca.artifacts.File: + derived_from: tosca.artifacts.Root + description: This artifact type is used when an artifact definition needs to have its associated file simply treated as a file and no special handling/handlers are invoked (i.e., it is not treated as either an implementation or deployment artifact type). + tosca.artifacts.Implementation: + derived_from: tosca.artifacts.Root + description: This artifact type represents the parent type for all implementation artifacts in TOSCA. These artifacts are used to implement operations of TOSCA interfaces either directly (e.g., scripts) or indirectly (e.g., config. files). diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/capabilities.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/capabilities.yml new file mode 100644 index 0000000..c4193e9 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/capabilities.yml @@ -0,0 +1,279 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +capability_types: + tosca.capabilities.Root: + description: The TOSCA root Capability Type all other TOSCA base Capability Types derive from + tosca.capabilities.Attachment: + derived_from: tosca.capabilities.Root + tosca.capabilities.Node: + derived_from: tosca.capabilities.Root + tosca.capabilities.Container: + derived_from: tosca.capabilities.Root + properties: + num_cpus: + type: integer + required: false + constraints: + - greater_or_equal: 1 + cpu_frequency: + type: scalar-unit.frequency + required: false + constraints: + - greater_or_equal: 0.1 GHz + disk_size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 MB + mem_size: + type: scalar-unit.size + required: false + constraints: + - greater_or_equal: 0 MB + org.openecomp.capabilities.PortMirroring: + derived_from: tosca.capabilities.Root + properties: + connection_point: + type: org.openecomp.datatypes.PortMirroringConnectionPointDescription + tosca.capabilities.Endpoint: + derived_from: tosca.capabilities.Root + properties: + protocol: + type: string + default: tcp + port: + type: PortDef + required: false + secure: + type: boolean + default: false + url_path: + type: string + required: false + port_name: + type: string + required: false + network_name: + type: string + required: false + default: PRIVATE + initiator: + type: string + default: source + constraints: + - valid_values: + - source + - target + - peer + ports: + type: map + required: false + constraints: + - min_length: 1 + entry_schema: + type: PortSpec + attributes: + ip_address: + type: string + tosca.capabilities.DatabaseEndpoint: + derived_from: tosca.capabilities.Endpoint + tosca.capabilities.Endpoint.Public: + derived_from: tosca.capabilities.Endpoint + properties: + network_name: PUBLIC + floating: + description: | + indicates that the public address should be allocated from a pool of floating IPs that are associated with the network. + type: boolean + default: false + status: experimental + dns_name: + description: The optional name to register with DNS + type: string + required: false + status: experimental + tosca.capabilities.Endpoint.Admin: + derived_from: tosca.capabilities.Endpoint + properties: + secure: true + tosca.capabilities.Endpoint.Database: + derived_from: tosca.capabilities.Endpoint + tosca.capabilities.OperatingSystem: + derived_from: tosca.capabilities.Root + properties: + architecture: + type: string + required: false + type: + type: string + required: false + distribution: + type: string + required: false + version: + type: version + required: false + tosca.capabilities.Scalable: + derived_from: tosca.capabilities.Root + properties: + min_instances: + type: integer + default: 1 + max_instances: + type: integer + default: 1 + default_instances: + type: integer + tosca.capabilities.network.Bindable: + derived_from: tosca.capabilities.Node + tosca.capabilities.Container.Docker: + derived_from: tosca.capabilities.Container + properties: + version: + type: list + required: false + entry_schema: version + publish_all: + type: boolean + default: false + required: false + publish_ports: + type: list + entry_schema: PortSpec + required: false + expose_ports: + type: list + entry_schema: PortSpec + required: false + volumes: + type: list + entry_schema: string + required: false + tosca.capabilities.network.Linkable: + derived_from: tosca.capabilities.Root + org.openecomp.capabilities.AllottedResource: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Endpoint + org.openecomp.capabilities.Metric: + derived_from: tosca.capabilities.nfv.Metric + description: A node type that includes the Metric capability indicates that it can be monitored. + properties: + unit: + type: string + description: Unit of the metric value + required: true + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + status: SUPPORTED + attributes: + value: + type: string + description: Runtime monitored value + status: SUPPORTED + org.openecomp.capabilities.metric.Ceilometer: + derived_from: org.openecomp.capabilities.Metric + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + status: SUPPORTED + org.openecomp.capabilities.metric.SnmpPolling: + derived_from: org.openecomp.capabilities.Metric + description: A node type that includes the Metric capability indicates that it can be monitored using snmp polling. + properties: + oid: + type: string + description: Object Id of the metric + required: true + status: SUPPORTED + org.openecomp.capabilities.metric.SnmpTrap: + derived_from: org.openecomp.capabilities.Metric + description: A node type that includes the Metric capability indicates that it can be monitored using snmp trap. + properties: + oid: + type: string + description: Object Id of the metric + required: true + status: SUPPORTED + org.openecomp.capabilities.Forwarder: + derived_from: tosca.capabilities.Root + org.openecomp.capabilities.VLANAssignment: + derived_from: tosca.capabilities.Root + description: ability to expose routing information of the internal network + properties: + vfc_instance_group_reference: + type: string + description: Ability to recognize capability per vfc instance group on vnf instance + required: true + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.Forwarder: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.GuestOs: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.ImageFile: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.LocalAttachment: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.Compute.Container.Architecture: + derived_from: tosca.capabilities.Root + properties: + num_cpus: + type: string + required: false + flavor_extra_specs: + type: map + required: false + entry_schema: + type: string + mem_size: + type: string + required: false diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/data.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/data.yml new file mode 100644 index 0000000..9dbe4e6 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/data.yml @@ -0,0 +1,1432 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +data_types: + tosca.datatypes.Root: + description: The TOSCA root Data Type all other TOSCA base Data Types derive from + integer: + derived_from: tosca.datatypes.Root + string: + derived_from: tosca.datatypes.Root + boolean: + derived_from: tosca.datatypes.Root + float: + derived_from: tosca.datatypes.Root + list: + derived_from: tosca.datatypes.Root + map: + derived_from: tosca.datatypes.Root + json: + derived_from: tosca.datatypes.Root + scalar-unit: + derived_from: tosca.datatypes.Root + scalar-unit.size: + derived_from: scalar-unit + scalar-unit.time: + derived_from: scalar-unit + scalar-unit.frequency: + derived_from: scalar-unit + tosca.datatypes.Credential: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: false + token_type: + type: string + default: password + token: + type: string + keys: + type: map + required: false + entry_schema: + type: string + user: + type: string + required: false + org.openecomp.datatypes.PortMirroringConnectionPointDescription: + derived_from: tosca.datatypes.Root + properties: + nf_type: + type: string + nfc_type: + type: string + network_role: + type: string + pps_capacity: + type: string + tosca.datatypes.TimeInterval: + derived_from: tosca.datatypes.Root + properties: + start_time: + type: timestamp + required: true + end_time: + type: timestamp + required: true + tosca.datatypes.network.NetworkInfo: + derived_from: tosca.datatypes.Root + properties: + network_name: + type: string + network_id: + type: string + addresses: + type: list + entry_schema: + type: string + tosca.datatypes.network.PortInfo: + derived_from: tosca.datatypes.Root + properties: + port_name: + type: string + port_id: + type: string + network_id: + type: string + mac_address: + type: string + addresses: + type: list + entry_schema: + type: string + tosca.datatypes.network.PortDef: + derived_from: integer + constraints: + - in_range: + - 1 + - 65535 + tosca.datatypes.network.PortSpec: + derived_from: tosca.datatypes.Root + properties: + protocol: + type: string + required: true + default: tcp + constraints: + - valid_values: + - udp + - tcp + - igmp + target: + type: tosca.datatypes.network.PortDef + target_range: + type: range + constraints: + - in_range: + - 1 + - 65535 + source: + type: tosca.datatypes.network.PortDef + source_range: + type: range + constraints: + - in_range: + - 1 + - 65535 + org.openecomp.datatypes.heat.network.AddressPair: + derived_from: tosca.datatypes.Root + description: MAC/IP address pairs + properties: + mac_address: + type: string + description: MAC address + required: false + status: SUPPORTED + ip_address: + type: string + description: IP address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.subnet.HostRoute: + derived_from: tosca.datatypes.Root + description: Host route info for the subnet + properties: + destination: + type: string + description: The destination for static route + required: false + status: SUPPORTED + nexthop: + type: string + description: The next hop for the destination + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.AllocationPool: + derived_from: tosca.datatypes.Root + description: The start and end addresses for the allocation pool + properties: + start: + type: string + description: Start address for the allocation pool + required: false + status: SUPPORTED + end: + type: string + description: End address for the allocation pool + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.neutron.Subnet: + derived_from: tosca.datatypes.Root + description: A subnet represents an IP address block that can be used for assigning IP addresses to virtual instances + properties: + tenant_id: + type: string + description: The ID of the tenant who owns the network + required: false + status: SUPPORTED + enable_dhcp: + type: boolean + description: Set to true if DHCP is enabled and false if DHCP is disabled + required: false + default: true + status: SUPPORTED + ipv6_address_mode: + type: string + description: IPv6 address mode + required: false + status: SUPPORTED + constraints: + - valid_values: + - dhcpv6-stateful + - dhcpv6-stateless + - slaac + ipv6_ra_mode: + type: string + description: IPv6 RA (Router Advertisement) mode + required: false + status: SUPPORTED + constraints: + - valid_values: + - dhcpv6-stateful + - dhcpv6-stateless + - slaac + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + allocation_pools: + type: list + description: The start and end addresses for the allocation pools + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AllocationPool + subnetpool: + type: string + description: The name or ID of the subnet pool + required: false + status: SUPPORTED + dns_nameservers: + type: list + description: A specified set of DNS name servers to be used + required: false + default: [] + status: SUPPORTED + entry_schema: + type: string + host_routes: + type: list + description: The gateway IP address + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.subnet.HostRoute + ip_version: + type: integer + description: The gateway IP address + required: false + default: 4 + status: SUPPORTED + constraints: + - valid_values: + - '4' + - '6' + name: + type: string + description: The name of the subnet + required: false + status: SUPPORTED + prefixlen: + type: integer + description: Prefix length for subnet allocation from subnet pool + required: false + status: SUPPORTED + constraints: + - greater_or_equal: 0 + cidr: + type: string + description: The CIDR + required: false + status: SUPPORTED + gateway_ip: + type: string + description: The gateway IP address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.novaServer.network.PortExtraProperties: + derived_from: tosca.datatypes.Root + description: Nova server network expand properties for port + properties: + port_security_enabled: + type: boolean + description: Flag to enable/disable port security on the port + required: false + status: SUPPORTED + mac_address: + type: string + description: MAC address to give to this port + required: false + status: SUPPORTED + admin_state_up: + type: boolean + description: The administrative state of this port + required: false + default: true + status: SUPPORTED + qos_policy: + type: string + description: The name or ID of QoS policy to attach to this port + required: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: Additional MAC/IP address pairs allowed to pass through the port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AddressPair + binding:vnic_type: + type: string + description: The vnic type to be bound on the neutron port + required: false + status: SUPPORTED + constraints: + - valid_values: + - macvtap + - direct + - normal + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.novaServer.network.AddressInfo: + derived_from: tosca.datatypes.network.NetworkInfo + description: Network addresses with corresponding port id + properties: + port_id: + type: string + description: Port id + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.neutron.port.FixedIps: + derived_from: tosca.datatypes.Root + description: subnet/ip_address + properties: + subnet: + type: string + description: Subnet in which to allocate the IP address for this port + required: false + status: SUPPORTED + ip_address: + type: string + description: IP address desired in the subnet for this port + required: false + status: SUPPORTED + subnet_id: + type: string + description: Subnet in which to allocate the IP address for this port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.FileInfo: + derived_from: tosca.datatypes.Root + description: Heat File Info + properties: + file: + type: string + description: The required URI string (relative or absolute) which can be used to locate the file + required: true + status: SUPPORTED + file_type: + type: string + description: The type of the file + required: true + status: SUPPORTED + constraints: + - valid_values: + - base + - env + - volume + - network + org.openecomp.datatypes.heat.contrail.network.rule.PortPairs: + derived_from: tosca.datatypes.Root + description: source and destination port pairs + properties: + start_port: + type: string + description: Start port + required: false + status: SUPPORTED + end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrail.network.rule.Rule: + derived_from: tosca.datatypes.Root + description: policy rule + properties: + src_ports: + type: list + description: Source ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs + protocol: + type: string + description: Protocol + required: false + status: SUPPORTED + dst_addresses: + type: list + description: Destination addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork + apply_service: + type: string + description: Service to apply + required: false + status: SUPPORTED + dst_ports: + type: list + description: Destination ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.PortPairs + src_addresses: + type: list + description: Source addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork + direction: + type: string + description: Direction + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrail.network.rule.RuleList: + derived_from: tosca.datatypes.Root + description: list of policy rules + properties: + policy_rule: + type: list + description: Contrail network rule + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrail.network.rule.Rule + org.openecomp.datatypes.heat.contrail.network.rule.VirtualNetwork: + derived_from: tosca.datatypes.Root + description: source and destination addresses + properties: + virtual_network: + type: string + description: Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule: + derived_from: tosca.datatypes.Root + description: Rules Pairs + properties: + remote_group_id: + type: string + description: The remote group ID to be associated with this security group rule + required: false + status: SUPPORTED + protocol: + type: string + description: The protocol that is matched by the security group rule + required: false + status: SUPPORTED + constraints: + - valid_values: + - tcp + - udp + - icmp + ethertype: + type: string + description: Ethertype of the traffic + required: false + default: IPv4 + status: SUPPORTED + constraints: + - valid_values: + - IPv4 + - IPv6 + port_range_max: + type: integer + description: 'The maximum port number in the range that is matched by the + security group rule. ' + required: false + status: SUPPORTED + constraints: + - in_range: + - 0 + - 65535 + remote_ip_prefix: + type: string + description: The remote IP prefix (CIDR) to be associated with this security group rule + required: false + status: SUPPORTED + remote_mode: + type: string + description: Whether to specify a remote group or a remote IP prefix + required: false + default: remote_ip_prefix + status: SUPPORTED + constraints: + - valid_values: + - remote_ip_prefix + - remote_group_id + direction: + type: string + description: The direction in which the security group rule is applied + required: false + default: ingress + status: SUPPORTED + constraints: + - valid_values: + - egress + - ingress + port_range_min: + type: integer + description: The minimum port number in the range that is matched by the security group rule. + required: false + status: SUPPORTED + constraints: + - in_range: + - 0 + - 65535 + org.openecomp.datatypes.heat.substitution.SubstitutionFiltering: + derived_from: tosca.datatypes.Root + description: Substitution Filter + properties: + substitute_service_template: + type: string + description: Substitute Service Template + required: true + status: SUPPORTED + index_value: + type: integer + description: Index value of the substitution service template runtime instance + required: false + default: 0 + status: SUPPORTED + constraints: + - greater_or_equal: 0 + count: + type: string + description: Count + required: false + default: 1 + status: SUPPORTED + scaling_enabled: + type: boolean + description: Indicates whether service scaling is enabled + required: false + default: true + status: SUPPORTED + mandatory: + type: boolean + description: Mandatory + required: false + default: true + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence: + derived_from: tosca.datatypes.Root + description: network policy refs data sequence + properties: + network_policy_refs_data_sequence_major: + type: integer + description: Network Policy ref data sequence Major + required: false + status: SUPPORTED + network_policy_refs_data_sequence_minor: + type: integer + description: Network Policy ref data sequence Minor + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData: + derived_from: tosca.datatypes.Root + description: network policy refs data + properties: + network_policy_refs_data_sequence: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefDataSequence + description: Network Policy ref data sequence + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data Subnet + properties: + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix_len: + type: string + description: Network ipam refs data ipam subnets ip prefix len + required: false + status: SUPPORTED + network_ipam_refs_data_ipam_subnets_subnet_ip_prefix: + type: string + description: Network ipam refs data ipam subnets ip prefix + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data Subnet List + properties: + network_ipam_refs_data_ipam_subnets_subnet: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnet + description: Network ipam refs data ipam subnets + required: false + status: SUPPORTED + network_ipam_refs_data_ipam_subnets_addr_from_start: + type: string + description: Network ipam refs data ipam subnets addr from start + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData: + derived_from: tosca.datatypes.Root + description: Network Ipam Ref Data + properties: + network_ipam_refs_data_ipam_subnets: + type: list + description: Network ipam refs data ipam subnets + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.ref.data.IpamSubnetList + org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork: + derived_from: tosca.datatypes.Root + description: source addresses + properties: + network_policy_entries_policy_rule_src_addresses_virtual_network: + type: string + description: Source addresses Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork: + derived_from: tosca.datatypes.Root + description: destination addresses + properties: + network_policy_entries_policy_rule_dst_addresses_virtual_network: + type: string + description: Destination addresses Virtual network + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs: + derived_from: tosca.datatypes.Root + description: destination port pairs + properties: + network_policy_entries_policy_rule_dst_ports_start_port: + type: string + description: Start port + required: false + status: SUPPORTED + network_policy_entries_policy_rule_dst_ports_end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs: + derived_from: tosca.datatypes.Root + description: source port pairs + properties: + network_policy_entries_policy_rule_src_ports_start_port: + type: string + description: Start port + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_ports_end_port: + type: string + description: End port + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList: + derived_from: tosca.datatypes.Root + description: Action List + properties: + network_policy_entries_policy_rule_action_list_simple_action: + type: string + description: Simple Action + required: false + status: SUPPORTED + network_policy_entries_policy_rule_action_list_apply_service: + type: list + description: Apply Service + required: false + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.contrailV2.network.rule.Rule: + derived_from: tosca.datatypes.Root + description: policy rule + properties: + network_policy_entries_policy_rule_dst_addresses: + type: list + description: Destination addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstVirtualNetwork + network_policy_entries_policy_rule_dst_ports: + type: list + description: Destination ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.DstPortPairs + network_policy_entries_policy_rule_protocol: + type: string + description: Protocol + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_addresses: + type: list + description: Source addresses + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcVirtualNetwork + network_policy_entries_policy_rule_direction: + type: string + description: Direction + required: false + status: SUPPORTED + network_policy_entries_policy_rule_src_ports: + type: list + description: Source ports + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.SrcPortPairs + network_policy_entries_policy_rule_action_list: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.ActionList + description: Action list + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList: + derived_from: tosca.datatypes.Root + description: list of policy rules + properties: + network_policy_entries_policy_rule: + type: list + description: Contrail network rule + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.Rule + org.openecomp.datatypes.heat.network.contrail.port.StaticRoute: + derived_from: tosca.datatypes.Root + description: static route + properties: + prefix: + type: string + description: Route prefix + required: false + status: SUPPORTED + next_hop: + type: string + description: Next hop + required: false + status: SUPPORTED + next_hop_type: + type: string + description: Next hop type + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.contrail.AddressPair: + derived_from: tosca.datatypes.Root + description: Address Pair + properties: + address_mode: + type: string + description: Address mode active-active or active-standy + required: false + status: SUPPORTED + constraints: + - valid_values: + - active-active + - active-standby + prefix: + type: string + description: IP address prefix + required: false + status: SUPPORTED + mac_address: + type: string + description: Mac address + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.network.contrail.InterfaceData: + derived_from: tosca.datatypes.Root + description: Interface Data + properties: + static_routes: + type: list + description: An ordered list of static routes to be added to this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute + virtual_network: + type: string + description: Virtual Network for this interface + required: true + status: SUPPORTED + allowed_address_pairs: + type: list + description: List of allowed address pair for this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.AddressPair + ip_address: + type: string + description: IP for this interface + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties: + derived_from: tosca.datatypes.Root + description: Virtual Machine Interface Properties. + properties: + virtual_machine_interface_properties_service_interface_type: + type: string + description: Service Interface Type. + required: false + status: SUPPORTED + org.openecomp.datatypes.Root: + derived_from: tosca.datatypes.Root + description: | + The ECOMP root Data Type all other Data Types derive from + properties: + supplemental_data: + type: map + entry_schema: + description: | + A placeholder for missing properties that would be included in future ecomp model versions. fromat : + type: string + org.openecomp.datatypes.AssignmentRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + is_required: + description: | + "true" indicates that assignment is required + type: boolean + default: false + required: true + count: + description: number of assignments required + type: integer + required: false + org.openecomp.datatypes.network.SubnetAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + ip_network_address_plan: + type: string + required: false + description: Reference to EIPAM, VLAN or other address plan ID used to assign subnets to this network + dhcp_enabled: + type: boolean + required: false + description: \"true\" indicates the network has 1 or more policies + ip_version: + type: integer + constraints: + - valid_values: + - 4 + - 6 + required: true + description: The IP version of the subnet + cidr_mask: + type: integer + required: true + description: The default subnet CIDR mask + min_subnets_count: + type: integer + default: 1 + required: true + description: Quantity of subnets that must be initially assigned + org.openecomp.datatypes.network.IPv4SubnetAssignments: + derived_from: org.openecomp.datatypes.network.SubnetAssignments + properties: + use_ipv4: + type: boolean + required: true + description: Indicates IPv4 subnet assignments + org.openecomp.datatypes.network.IPv6SubnetAssignments: + derived_from: org.openecomp.datatypes.network.SubnetAssignments + properties: + use_ipv6: + type: boolean + required: true + description: Indicates IPv6 subnet assignments + org.openecomp.datatypes.network.NetworkAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_network_assignment: + type: boolean + required: true + default: false + description: | + \"true\" indicates that the network assignments will be auto-generated by ECOMP \"false\" indicates operator-supplied Network assignments file upload is required (e.g. VID will present prompt to operator to upload operator-supplied Network assignments file). + is_shared_network: + type: boolean + required: true + description: \"true\" means this network is shared by multiple Openstack tenants + is_external_network: + type: boolean + required: true + default: false + description: | + \"true\" means this Contrail external network + ipv4_subnet_default_assignment: + type: org.openecomp.datatypes.network.IPv4SubnetAssignments + required: true + description: IPv4 defualt subnet assignments + ipv6_subnet_default_assignment: + type: org.openecomp.datatypes.network.IPv6SubnetAssignments + required: true + description: IPv6 defualt subnet assignments + org.openecomp.datatypes.network.ProviderNetwork: + derived_from: org.openecomp.datatypes.Root + properties: + is_provider_network: + type: boolean + required: true + description: \"true\" indicates that this a Neutron provider type of network + physical_network_name: + type: string + required: false + constraints: + - valid_values: + - Physnet41 + - Physnet42 + - Physnet43 + - Physnet44 + - Physnet21 + - Physnet22 + description: | + Identifies the NUMA processor cluster to which this physical network interface belongs. NUMA instance correlates to the first digit of the Physical Network Name suffix (e.g. \"01\" = NUMA 0, \"11\" = NUMA 1) + numa: + type: string + required: false + constraints: + - valid_values: + - NUMA 0 + - NUMA 1 + description: | + PNIC instance within the NUMA processor cluster PNIC Instance correlates to the second digit of the Physical Network Name suffix (e.g. "01" = PNIC 1, "02" = "PNIC 2) + pnic_instance: + type: integer + required: false + description: PNIC instance within the NUMA processor cluster + org.openecomp.datatypes.network.NetworkFlows: + derived_from: org.openecomp.datatypes.Root + properties: + is_network_policy: + type: boolean + required: false + default: false + description: \"true\" indicates the network has 1 or more policies + network_policy: + type: string + required: false + description: 'Identifies the specific Cloud network policy that must be applied + to this network (source: from Policy Manager).' + is_bound_to_vpn: + type: boolean + required: false + default: false + description: \"true\" indicates the network has 1 or more vpn bindings + vpn_binding: + type: string + required: false + description: 'Identifies the specific VPN Binding entry in A&AI that must + be applied when creating this network (source: A&AI)' + org.openecomp.datatypes.network.VlanRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + vlan_range_plan: + type: string + required: true + description: reference to a vlan range plan + vlan_type: + type: string + required: true + constraints: + - valid_values: + - c-tag + - s-tag + description: identifies the vlan type (e.g., c-tag) + vlan_count: + type: integer + required: true + description: identifies the number of vlan tags to assign to the CP from the plan + org.openecomp.datatypes.network.IpRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + ip_version: + type: integer + required: true + constraints: + - valid_values: + - 4 + - 6 + ip_count: + description: identifies the number of ip address to assign to the CP from the plan + type: integer + required: false + floating_ip_count: + type: integer + required: false + subnet_role: + type: string + required: false + assingment_method: + type: string + required: true + constraints: + - valid_values: + - fixed + - dhcp + dhcp_enabled: + type: boolean + required: false + ip_count_required: + description: identifies the number of ip address to assign to the CP from the plan + type: org.openecomp.datatypes.AssignmentRequirements + required: false + floating_ip_count_required: + type: org.openecomp.datatypes.AssignmentRequirements + required: false + ip_address_plan_name: + type: string + required: false + vrf_name: + type: string + required: false + org.openecomp.datatypes.network.MacAssignments: + derived_from: org.openecomp.datatypes.Root + properties: + mac_range_plan: + type: string + required: true + description: reference to a MAC address range plan + mac_count: + type: integer + required: true + description: identifies the number of MAC addresses to assign to the CP from the plan + org.openecomp.datatypes.EcompHoming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_selected_instance_node_target: + type: boolean + required: true + default: false + description: | + \"true\" indicates that the target deployment node for this instance will be auto-selected by ECOMP \"false\" indicates operator-supplied instance target deployment node required (e.g. VID will present a prompt to operator and collect the operator-selected target node for the deployment of this Network instance). + homing_policy: + type: string + required: false + description: Referenc to a service level homing policy that ECOMP will use for instance deployment target node + instance_node_target: + type: string + required: false + description: Instance target deployment node + org.openecomp.datatypes.EcompNaming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_naming: + type: boolean + required: true + default: true + description: | + \"true\" indicates that the name for the instance will be auto-generated by ECOMP. \"false\" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + naming_policy: + type: string + required: false + description: Referenc to naming policy that ECOMP will use when the name is auto-generated + org.openecomp.datatypes.network.MacRequirements: + derived_from: org.openecomp.datatypes.Root + properties: + mac_range_plan: + description: reference to a MAC address range plan + type: string + required: false + mac_count: + description: identifies the number of MAC addresses to assign to the CP from the plan + type: integer + required: false + mac_count_required: + description: identifies the number of MAC addresses to assign to the CP from the plan + type: org.openecomp.datatypes.AssignmentRequirements + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pair IP. + properties: + ip_prefix: + type: string + description: IP Prefix. + required: false + status: SUPPORTED + ip_prefix_len: + type: integer + description: IP Prefix Len. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Mac Address. + properties: + mac_address: + type: list + description: Mac Addresses List. + required: false + status: SUPPORTED + entry_schema: + type: string + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface VLAN Properties. + properties: + sub_interface_vlan_tag: + type: string + description: Sub Interface VLAN Tag. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pair. + properties: + address_mode: + type: string + description: Address Mode. + required: false + status: SUPPORTED + ip: + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairIp + description: IP. + required: false + status: SUPPORTED + mac: + type: string + description: Mac. + required: false + status: SUPPORTED + org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs: + derived_from: tosca.datatypes.Root + description: Virtual Machine Sub Interface Address Pairs. + properties: + allowed_address_pair: + type: list + description: Addresses pair List. + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPair + org.openecomp.datatypes.Naming: + derived_from: org.openecomp.datatypes.Root + properties: + ecomp_generated_naming: + description: | + "true" indicates that the name for the instance will be auto-generated by ECOMP. "false" indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + type: boolean + default: true + required: true + naming_policy: + description: Reference to naming policy that ECOMP will use when the name is auto-generated + type: string + required: false + instance_name: + description: indicates operator-supplied name required (e.g. VID will present prompt to operator and collect the operator-supplied instance name). + type: string + required: false + org.openecomp.datatypes.flavors.ComputeFlavor: + derived_from: tosca.datatypes.Root + properties: + num_cpus: + type: integer + disk_size: + type: scalar-unit.size + mem_size: + type: scalar-unit.size + org.openecomp.datatypes.flavors.LicenseFlavor: + derived_from: tosca.datatypes.Root + properties: + feature_group_uuid: + type: string + org.openecomp.datatypes.flavors.VendorInfo: + derived_from: tosca.datatypes.Root + properties: + manufacturer_reference_number: + type: string + vendor_model: + type: string + org.openecomp.datatypes.flavors.DeploymentFlavor: + derived_from: tosca.datatypes.Root + properties: + sp_part_number: + type: string + vendor_info: + type: org.openecomp.datatypes.flavors.VendorInfo + compute_flavor: + type: org.openecomp.datatypes.flavors.ComputeFlavor + license_flavor: + type: org.openecomp.datatypes.flavors.LicenseFlavor + required: false + org.openecomp.datatypes.ImageInfo: + derived_from: tosca.datatypes.Root + properties: + software_version: + type: string + file_name: + type: string + file_hash: + type: string + description: checksum/signature + file_hash_type: + type: string + required: false + default: md5 + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + numa_enabled: + type: boolean + required: false + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string + constraints: + - valid_values: + - static + - dynamic + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + requirement: + type: string + required: true + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + address: + type: string + required: false + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: + - ipv4 + - ipv6 + number_of_ip_address: + type: integer + required: false + tosca.datatype.nfv.AddressData: + properties: + address_type: + constraints: + - valid_values: + - mac_address + - ip_address + type: string + l2_address_data: + required: false + type: tosca.datatypes.nfv.L2AddressData + l3_address_data: + required: false + type: tosca.datatypes.nfv.L3AddressData + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: + - ethernet + - mpls + - odu2 + - ipv4 + - ipv6 + - pseudo_wire + flow_pattern: + type: string + required: false + tosca.datatypes.nfv.VlFlavour: + derived_from: tosca.datatypes.Root + properties: + flavourId: + type: string + tosca.datatypes.nfv.ext.AddressPairs: + properties: + ip: + type: string + required: false + mac: + type: string + required: false + tosca.datatypes.nfv.ext.FloatingIP: + properties: + external_network: + type: string + required: false + ip_address: + type: string + required: false + tosca.datatypes.nfv.ext.LocationInfo: + properties: + availability_zone: + type: string + required: false + vimid: + type: integer + required: false + tenant: + type: string + required: false + tosca.datatypes.nfv.ext.HostRouteInfo: + properties: + destination: + type: string + required: false + nexthop: + type: string + required: false + tosca.datatypes.nfv.ext.InjectData: + properties: + file_name: + type: string + required: false + file_data: + type: string + required: false + tosca.datatypes.nfv.ext.zte.WatchDog: + properties: + enable_delay: + type: integer + required: false + action: + type: string + required: false + tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule: + properties: + scope: + type: string + required: false + affinity_antiaffinity: + type: string + required: false diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/groups.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/groups.yml new file mode 100644 index 0000000..f8be60d --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/groups.yml @@ -0,0 +1,133 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +group_types: + tosca.groups.Root: + description: The TOSCA Group Type all other TOSCA Group Types derive from + interfaces: + Standard: + type: tosca.interfaces.node.lifecycle.Standard + org.openecomp.groups.heat.HeatStack: + derived_from: tosca.groups.Root + description: Grouped all heat resources which are in the same heat stack + properties: + heat_file: + type: string + description: Heat file which associate to this group/heat stack + required: true + status: SUPPORTED + description: + type: string + description: group description + required: true + status: SUPPORTED + org.openecomp.groups.VfModule: + derived_from: tosca.groups.Root + description: Grouped all heat resources which are in the same VF Module + properties: + isBase: + type: boolean + description: Whether this module should be deployed before other modules + required: true + default: false + status: SUPPORTED + vf_module_label: + type: string + required: true + description: | + Alternate textual key used to reference this VF-Module model. Must be unique within the VNF model + vf_module_description: + type: string + required: true + description: | + Description of the VF-modules contents and purpose (e.g. "Front-End" or "Database Cluster") + min_vf_module_instances: + type: integer + required: true + description: The minimum instances of this VF-Module + max_vf_module_instances: + type: integer + required: false + description: The maximum instances of this VF-Module + initial_count: + type: integer + required: false + description: | + The initial count of instances of the VF-Module. The value must be in the range between min_vfmodule_instances and max_vfmodule_instances. If no value provided the initial count is the min_vfmodule_instances. + vf_module_type: + type: string + required: true + constraint: + - valid_values: + - Base + - Expansion + volume_group: + type: boolean + required: true + default: false + description: | + "true" indicates that this VF Module model requires attachment to a Volume Group. VID operator must select the Volume Group instance to attach to a VF-Module at deployment time. + availability_zone_count: + type: integer + required: false + description: | + Quantity of Availability Zones needed for this VF-Module (source: Extracted from VF-Module HEAT template) + vfc_list: + type: map + entry_schema: + description: : + type: string + required: false + description: | + Identifies the set of VM types and their count included in the VF-Module + org.openecomp.groups.NetworkCollection: + derived_from: tosca.groups.Root + description: groups l3-networks in network collection + properties: + network_collection_function: + type: string + required: true + description: network collection function + network_collection_description: + type: string + required: true + description: network collection description, free format text + org.openecomp.groups.VfcInstanceGroup: + derived_from: tosca.groups.Root + description: groups VFCs with same parent port role + properties: + vfc_instance_group_function: + type: string + required: true + description: function of this VFC group + vfc_parent_port_role: + type: string + required: true + description: common role of parent ports of VFCs in this group + network_collection_function: + type: string + required: true + description: network collection function assigned to this group + subinterface_role: + type: string + required: true + description: common role of subinterfaces of VFCs in this group, criteria the group is created + capabilities: + vlan_assignment: + type: org.openecomp.capabilities.VLANAssignment + properties: + vfc_instance_group_reference: + type: string diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/interfaces.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/interfaces.yml new file mode 100644 index 0000000..91c7c0a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/interfaces.yml @@ -0,0 +1,28 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +interface_types: + tosca.interfaces.node.lifecycle.Standard: + create: + description: Standard lifecycle create operation. + configure: + description: Standard lifecycle configure operation. + start: + description: Standard lifecycle start operation. + stop: + description: Standard lifecycle stop operation. + delete: + description: Standard lifecycle delete operation. diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/nodes.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/nodes.yml new file mode 100644 index 0000000..91a3010 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/nodes.yml @@ -0,0 +1,3623 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +- artifacts.yml +- capabilities.yml +- interfaces.yml +- relationships.yml +node_types: + tosca.nodes.SoftwareComponent: + derived_from: tosca.nodes.Root + properties: + component_version: + type: version + required: false + admin_credential: + type: tosca.datatypes.Credential + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Compute + relationship: tosca.relationships.HostedOn + tosca.nodes.Root: + description: The TOSCA Node Type all other TOSCA base Node Types derive from + attributes: + tosca_id: + type: string + tosca_name: + type: string + state: + type: string + capabilities: + feature: + type: tosca.capabilities.Node + requirements: + - dependency: + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + occurrences: + - 0 + - UNBOUNDED + interfaces: + Standard: + type: tosca.interfaces.node.lifecycle.Standard + tosca.nodes.Container.Runtime: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + host: + type: tosca.capabilities.Container + scalable: + type: tosca.capabilities.Scalable + tosca.nodes.DBMS: + derived_from: tosca.nodes.SoftwareComponent + properties: + root_password: + type: string + required: false + description: the optional root password for the DBMS service + port: + type: integer + required: false + description: the port the DBMS service will listen to for data and requests + capabilities: + host: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.Database + tosca.nodes.WebApplication: + derived_from: tosca.nodes.Root + properties: + context_root: + type: string + capabilities: + app_endpoint: + type: tosca.capabilities.Endpoint + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.WebServer + relationship: tosca.relationships.HostedOn + tosca.nodes.network.Network: + derived_from: tosca.nodes.Root + properties: + ip_version: + type: integer + required: false + default: 4 + constraints: + - valid_values: + - 4 + - 6 + cidr: + type: string + required: false + start_ip: + type: string + required: false + end_ip: + type: string + required: false + gateway_ip: + type: string + required: false + network_name: + type: string + required: false + network_id: + type: string + required: false + segmentation_id: + type: string + required: false + network_type: + type: string + required: false + physical_network: + type: string + required: false + dhcp_enabled: + type: boolean + required: false + default: true + capabilities: + link: + type: tosca.capabilities.network.Linkable + tosca.nodes.network.Port: + derived_from: tosca.nodes.Root + properties: + ip_address: + type: string + required: false + order: + type: integer + required: true + default: 0 + constraints: + - greater_or_equal: 0 + is_default: + type: boolean + required: false + default: false + ip_range_start: + type: string + required: false + ip_range_end: + type: string + required: false + requirements: + - link: + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + - binding: + capability: tosca.capabilities.network.Bindable + relationship: tosca.relationships.network.BindsTo + tosca.nodes.Container.Application: + derived_from: tosca.nodes.Root + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.Container + relationship: tosca.relationships.HostedOn + tosca.nodes.LoadBalancer: + derived_from: tosca.nodes.Root + properties: + algorithm: + type: string + required: false + status: experimental + capabilities: + client: + type: tosca.capabilities.Endpoint.Public + occurrences: + - 0 + - UNBOUNDED + description: the Floating (IP) client’s on the public network can connect to + requirements: + - application: + capability: tosca.capabilities.Endpoint + relationship: tosca.relationships.RoutesTo + occurrences: + - 0 + - UNBOUNDED + tosca.nodes.BlockStorage: + derived_from: tosca.nodes.Root + properties: + size: + type: scalar-unit.size + constraints: + - greater_or_equal: 1 MB + volume_id: + type: string + required: false + snapshot_id: + type: string + required: false + capabilities: + attachment: + type: tosca.capabilities.Attachment + tosca.nodes.ObjectStorage: + derived_from: tosca.nodes.Root + properties: + name: + type: string + size: + type: scalar-unit.size + constraints: + - greater_or_equal: 0 GB + maxsize: + type: scalar-unit.size + constraints: + - greater_or_equal: 0 GB + capabilities: + storage_endpoint: + type: tosca.capabilities.Endpoint + tosca.nodes.Database: + derived_from: tosca.nodes.Root + properties: + name: + type: string + description: the logical name of the database + port: + type: integer + description: the port the underlying database service will listen to for data + user: + type: string + description: the optional user account name for DB administration + required: false + password: + type: string + description: the optional password for the DB user account + required: false + requirements: + - host: + capability: tosca.capabilities.Container + node: tosca.nodes.DBMS + relationship: tosca.relationships.HostedOn + capabilities: + database_endpoint: + type: tosca.capabilities.Endpoint.Database + tosca.nodes.Compute: + derived_from: tosca.nodes.Root + attributes: + private_address: + type: string + public_address: + type: string + networks: + type: map + entry_schema: + type: tosca.datatypes.network.NetworkInfo + ports: + type: map + entry_schema: + type: tosca.datatypes.network.PortInfo + requirements: + - local_storage: + capability: tosca.capabilities.Attachment + node: tosca.nodes.BlockStorage + relationship: tosca.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + capabilities: + host: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.SoftwareComponent + endpoint: + type: tosca.capabilities.Endpoint.Admin + os: + type: tosca.capabilities.OperatingSystem + scalable: + type: tosca.capabilities.Scalable + binding: + type: tosca.capabilities.network.Bindable + tosca.nodes.WebServer: + derived_from: tosca.nodes.SoftwareComponent + capabilities: + data_endpoint: tosca.capabilities.Endpoint + admin_endpoint: tosca.capabilities.Endpoint.Admin + host: + type: tosca.capabilities.Container + valid_source_types: + - tosca.nodes.WebApplication + org.openecomp.resource.cp.nodes.network.SubInterface: + derived_from: tosca.nodes.network.Port + org.openecomp.resource.cp.extCP: + derived_from: tosca.nodes.Root + description: The SDC Connection Point base type all other CP derive from + properties: + network_role: + type: string + required: true + description: identical to VL network_role + order: + type: integer + required: true + description: The order of the CP on the compute instance (e.g. eth2). + network_role_tag: + type: string + required: true + description: Must correlate to the set of defined “network-role” tag identifiers from the associated HEAT template + mac_requirements: + type: org.openecomp.datatypes.network.MacRequirements + required: false + description: identifies MAC address assignments to the CP + vlan_requirements: + type: list + entry_schema: + type: org.openecomp.datatypes.network.VlanRequirements + required: false + description: identifies vlan address assignments to the CP + ip_requirements: + type: list + entry_schema: + type: org.openecomp.datatypes.network.IpRequirements + required: true + description: identifies IP requirements to the CP + exCP_naming: + type: org.openecomp.datatypes.Naming + subnetpoolid: + type: string + requirements: + - virtualLink: + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + - virtualBinding: + capability: tosca.capabilities.network.Bindable + relationship: tosca.relationships.network.BindsTo + - external_virtualLink: + capability: tosca.capabilities.network.Linkable + relationship: tosca.relationships.network.LinksTo + node: org.openecomp.resource.vl.VL + capabilities: + internal_connectionPoint: + type: tosca.capabilities.Node + valid_source_type: + - tosca.nodes.network.Port + org.openecomp.resource.abstract.nodes.service: + derived_from: tosca.nodes.Root + org.openecomp.resource.cp.nodes.heat.network.contrail.Port: + derived_from: org.openecomp.resource.cp.nodes.network.Port + properties: + static_routes: + type: list + description: An ordered list of static routes to be added to this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute + virtual_network: + type: string + description: Virtual Network for this interface + required: true + status: SUPPORTED + static_route: + type: boolean + description: Static route enabled + required: false + default: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: List of allowed address pair for this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.AddressPair + shared_ip: + type: boolean + description: Shared ip enabled + required: false + default: false + status: SUPPORTED + ip_address: + type: string + description: IP for this interface + required: false + status: SUPPORTED + interface_type: + type: string + description: Interface type + required: true + status: SUPPORTED + constraints: + - valid_values: + - management + - left + - right + - other + attributes: + fq_name: + type: string + description: fq_name + status: SUPPORTED + org.openecomp.resource.vfc.rules.nodes.heat.network.contrailV2.NetworkRules: + derived_from: tosca.nodes.Root + properties: + name: + type: string + description: A symbolic name for this contrail v2 network rule + required: false + status: SUPPORTED + network_policy_entries: + type: org.openecomp.datatypes.heat.contrailV2.network.rule.RuleList + description: A symbolic name for this contrail v2 network rule + required: false + status: SUPPORTED + attributes: + fq_name: + type: string + description: fq_name + status: SUPPORTED + requirements: + - network: + capability: tosca.capabilities.Attachment + node: tosca.nodes.network.Network + relationship: org.openecomp.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + org.openecomp.nodes.PortMirroringConfigurationByPolicy: + derived_from: tosca.nodes.Root + properties: + collector_node: + type: string + description: The name of the Collector Proxy + required: true + policy_name: + type: string + description: The name of the policy for selection of the collector interfaces + required: true + equip_model: + type: string + description: The name of the equipment type of the collector, i.e. Cisco 4500x + required: true + equip_vendor: + type: string + description: The name of the equipment vendor of the collector, i.e. Cisco + required: true + requirements: + - source: + capability: org.openecomp.capabilities.PortMirroring + occurrences: + - 1 + - UNBOUNDED + org.openecomp.nodes.ServiceProxy: + derived_from: tosca.nodes.Root + org.openecomp.resource.cp.nodes.heat.network.neutron.Port: + derived_from: org.openecomp.resource.cp.nodes.network.Port + properties: + port_security_enabled: + type: boolean + description: Flag to enable/disable port security on the network + required: false + status: SUPPORTED + device_id: + type: string + description: Device ID of this port + required: false + status: SUPPORTED + qos_policy: + type: string + description: The name or ID of QoS policy to attach to this network + required: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: Additional MAC/IP address pairs allowed to pass through the port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AddressPair + binding:vnic_type: + type: string + description: The vnic type to be bound on the neutron port + required: false + status: SUPPORTED + constraints: + - valid_values: + - macvtap + - direct + - normal + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + device_owner: + type: string + description: Name of the network owning the port + required: false + status: SUPPORTED + network: + type: string + description: Network this port belongs to + required: false + status: SUPPORTED + replacement_policy: + type: string + description: Policy on how to respond to a stack-update for this resource + required: false + default: AUTO + status: SUPPORTED + constraints: + - valid_values: + - REPLACE_ALWAYS + - AUTO + security_groups: + type: list + description: List of security group names or IDs + required: false + status: SUPPORTED + entry_schema: + type: string + fixed_ips: + type: list + description: Desired IPs for this port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.neutron.port.FixedIps + mac_address: + type: string + description: MAC address to give to this port + required: false + status: SUPPORTED + admin_state_up: + type: boolean + description: A boolean value specifying the administrative status of the network + required: false + default: true + status: SUPPORTED + name: + type: string + description: A symbolic name for this port + required: false + status: SUPPORTED + attributes: + tenant_id: + type: string + description: Tenant owning the port + status: SUPPORTED + network_id: + type: string + description: Unique identifier for the network owning the port + status: SUPPORTED + qos_policy_id: + type: string + description: The QoS policy ID attached to this network + status: SUPPORTED + show: + type: string + description: Detailed information about resource + status: SUPPORTED + subnets: + type: list + description: Subnets of this network + status: SUPPORTED + entry_schema: + type: string + status: + type: string + description: The status of the network + status: SUPPORTED + capabilities: + attachment: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.vfc.nodes.heat.contrail.Compute: + derived_from: org.openecomp.resource.vfc.nodes.Compute + properties: + flavor: + type: string + description: flavor + required: false + status: SUPPORTED + image_name: + type: string + description: Image name + required: true + status: SUPPORTED + availability_zone: + type: string + description: Availability zone to create servers in + required: false + status: SUPPORTED + service_type: + type: string + description: Service type + required: true + status: SUPPORTED + constraints: + - valid_values: + - firewall + - analyzer + - source-nat + - loadbalancer + availability_zone_enable: + type: boolean + description: Indicates availability zone is enabled + required: false + default: false + status: SUPPORTED + service_template_name: + type: string + description: Service template name + required: false + status: SUPPORTED + service_instance_name: + type: string + description: Service instance name + required: true + status: SUPPORTED + service_mode: + type: string + description: Service mode + required: true + status: SUPPORTED + constraints: + - valid_values: + - transparent + - in-network + - in-network-nat + attributes: + tenant_id: + type: string + description: Tenant id of the VM + status: SUPPORTED + fq_name: + type: string + description: fq_name + status: SUPPORTED + show: + type: string + description: All attributes + status: SUPPORTED + active_vms: + type: string + description: Number of active VMs + status: SUPPORTED + virtual_machines: + type: string + description: VMs of this compute + status: SUPPORTED + status: + type: string + description: status of the compute + status: SUPPORTED + org.openecomp.resource.vfc.nodes.volume: + derived_from: tosca.nodes.BlockStorage + org.openecomp.resource.vfc.rules.nodes.heat.network.contrail.NetworkRules: + derived_from: tosca.nodes.Root + properties: + entries: + type: org.openecomp.datatypes.heat.contrail.network.rule.RuleList + description: A symbolic name for this contrail network rule + required: false + status: SUPPORTED + name: + type: string + description: A symbolic name for this contrail network rule + required: false + status: SUPPORTED + attributes: + tenant_id: + type: string + description: tenant_id + status: SUPPORTED + fq_name: + type: string + description: fq_name + status: SUPPORTED + show: + type: string + description: All attributes. + status: SUPPORTED + rules: + type: list + description: List of rules + status: SUPPORTED + entry_schema: + type: string + requirements: + - network: + capability: tosca.capabilities.Attachment + node: tosca.nodes.network.Network + relationship: org.openecomp.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.AbstractSubstitute: + derived_from: tosca.nodes.Root + properties: + service_template_filter: + type: org.openecomp.datatypes.heat.substitution.SubstitutionFiltering + description: Substitution Filter + required: true + status: SUPPORTED + org.openecomp.resource.vl.extVL: + derived_from: tosca.nodes.Root + description: VF Tenant oam protected network + properties: + network_type: + type: string + required: true + description: ECOMP supported network types. + network_role: + type: string + required: true + description: | + Unique label that defines the role that this network performs. example: vce oam network, vnat sr-iov1 network + network_scope: + type: string + constraints: + valid_values: + - VF + - SERVICE + - GLOBAL + description: | + Uniquely identifies the network scope. Valid values for the network scope includes: VF - VF-level network. Intra-VF network which connects the VFCs (VMs) inside the VF. SERVICE - Service-level network. Intra-Service network which connects the VFs within the service GLOBAL - Global network which can be shared by multiple services + network_technology: + type: string + required: true + description: ECOMP supported network technology + exVL_naming: + type: org.openecomp.datatypes.Naming + required: true + network_homing: + type: org.openecomp.datatypes.EcompHoming + required: true + network_assignments: + type: org.openecomp.datatypes.network.NetworkAssignments + required: true + provider_network: + type: org.openecomp.datatypes.network.ProviderNetwork + required: true + network_flows: + type: org.openecomp.datatypes.network.NetworkFlows + required: false + capabilities: + virtual_linkable: + type: tosca.capabilities.network.Linkable + org.openecomp.resource.abstract.nodes.PNF: + derived_from: tosca.nodes.Root + properties: + nf_function: + type: string + nf_role: + type: string + nf_type: + type: string + org.openecomp.resource.vl.internalVL: + derived_from: tosca.nodes.network.Network + description: The AT&T internal (VF-level) Virtual Link + org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface: + derived_from: org.openecomp.resource.cp.nodes.network.SubInterface + properties: + virtual_machine_interface_refs: + description: List of virtual machine interface. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + name: + description: Virtual Machine Sub Interface VLAN name + type: string + status: SUPPORTED + required: false + virtual_network_refs: + description: List of virtual networks. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + virtual_machine_interface_properties: + description: virtual machine interface properties. + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.Properties + status: SUPPORTED + required: false + virtual_machine_interface_allowed_address_pairs: + description: Virtual Machine Sub Interface allowed address pairs. + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs + status: SUPPORTED + required: false + virtual_machine_interface_mac_addresses: + description: List of mac addresses. + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.MacAddress + status: SUPPORTED + required: false + security_group_refs: + description: List of security groups. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + port_tuple_refs: + description: List of port tuples. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + attributes: + fq_name: + description: The FQ name of the Virtual Network. + type: string + status: SUPPORTED + show: + description: All attributes. + type: string + status: SUPPORTED + requirements: + - binding: + capability: tosca.capabilities.network.Bindable + node: org.openecomp.resource.cp.nodes.network.Port + relationship: tosca.relationships.network.BindsTo + occurrences: + - 1 + - 1 + org.openecomp.resource.cp.v2.extCP: + derived_from: org.openecomp.resource.cp.nodes.network.Port + description: The SDC External Connection Point base type + capabilities: + port_mirroring: + type: org.openecomp.capabilities.PortMirroring + org.openecomp.resource.vl.VL: + derived_from: tosca.nodes.network.Network + properties: + vendor: + type: string + required: false + vl_name: + type: string + required: false + capabilities: + virtual_linkable: + type: tosca.capabilities.network.Linkable + end_point: + type: tosca.capabilities.Endpoint + org.openecomp.nodes.ForwardingPath: + derived_from: tosca.nodes.Root + properties: + target_range: + type: list + required: true + status: SUPPORTED + entry_schema: + description: Identifier of the reciever port of the VNF or the service + type: integer + protocol: + type: string + description: protocol type that runs on the link + required: true + status: SUPPORTED + requirements: + - forwarder: + capability: org.openecomp.capabilities.Forwarder + relationship: org.openecomp.relationships.ForwardsTo + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.vfc.nodes.heat.cinder.Volume: + derived_from: org.openecomp.resource.vfc.nodes.volume + properties: + availability_zone: + description: The availability zone in which the volume will be created + type: string + status: SUPPORTED + required: false + image: + description: If specified, the name or ID of the image to create the volume from + type: string + status: SUPPORTED + required: false + metadata: + description: Key/value pairs to associate with the volume + type: map + status: SUPPORTED + entry_schema: + type: string + required: false + volume_type: + description: If specified, the type of volume to use, mapping to a specific backend + type: string + status: SUPPORTED + required: false + description: + description: A description of the volume + type: string + status: SUPPORTED + required: false + device_type: + description: Device type + type: string + status: SUPPORTED + required: false + constraints: + - valid_values: + - cdrom + - disk + disk_bus: + description: 'Bus of the device: hypervisor driver chooses a suitable default + if omitted' + type: string + status: SUPPORTED + required: false + constraints: + - valid_values: + - ide + - lame_bus + - scsi + - usb + - virtio + backup_id: + description: If specified, the backup to create the volume from + type: string + status: SUPPORTED + required: false + source_volid: + description: If specified, the volume to use as source + type: string + status: SUPPORTED + required: false + boot_index: + description: Integer used for ordering the boot disks + type: integer + status: SUPPORTED + required: false + size: + description: The requested storage size (default unit is MB) + type: scalar-unit.size + status: SUPPORTED + required: false + constraints: + - greater_or_equal: 1 GB + read_only: + description: Enables or disables read-only access mode of volume + type: boolean + status: SUPPORTED + required: false + name: + description: A name used to distinguish the volume + type: string + status: SUPPORTED + required: false + scheduler_hints: + description: Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume + type: map + status: SUPPORTED + entry_schema: + type: string + required: false + swap_size: + description: The size of the swap, in MB + type: scalar-unit.size + status: SUPPORTED + required: false + delete_on_termination: + description: Indicate whether the volume should be deleted when the server is terminated + type: boolean + status: SUPPORTED + required: false + multiattach: + description: Whether allow the volume to be attached more than once + type: boolean + status: SUPPORTED + required: false + attributes: + display_description: + description: Description of the volume + type: string + status: SUPPORTED + attachments: + description: The list of attachments of the volume + type: string + status: SUPPORTED + entry_schema: + type: string + encrypted: + description: Boolean indicating if the volume is encrypted or not + type: boolean + status: SUPPORTED + show: + description: Detailed information about resource + type: string + status: SUPPORTED + created_at: + description: The timestamp indicating volume creation + type: timestamp + status: SUPPORTED + display_name: + description: Name of the volume + type: string + status: SUPPORTED + metadata_values: + description: Key/value pairs associated with the volume in raw dict form + type: map + status: SUPPORTED + entry_schema: + type: string + bootable: + description: Boolean indicating if the volume can be booted or not + type: boolean + status: SUPPORTED + status: + description: The current status of the volume + type: string + status: SUPPORTED + org.openecomp.resource.abstract.nodes.VFC: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + nfc_function: + type: string + high_availablity: + type: string + description: high_availablity + required: false + status: SUPPORTED + vm_image_name: + type: string + description: Master image_name volume id + required: true + status: SUPPORTED + vm_flavor_name: + type: string + description: Master image_name volume id + required: true + status: SUPPORTED + nfc_naming_code: + type: string + description: nfc code for instance naming + required: false + status: SUPPORTED + vm_type_tag: + type: string + description: vm type based on naming Convention + required: false + status: SUPPORTED + nfc_naming: + type: org.openecomp.datatypes.Naming + description: vfc naming + min_instances: + type: integer + description: Minimum number of VFC Instances + required: false + default: 0 + status: SUPPORTED + constraints: + - greater_or_equal: 0 + max_instances: + type: integer + description: Maximum number of VFC Instances + required: false + status: SUPPORTED + constraints: + - greater_or_equal: 1 + org.openecomp.resource.abstract.nodes.VF: + derived_from: tosca.nodes.Root + properties: + nf_function: + type: string + nf_role: + type: string + nf_naming_code: + type: string + nf_type: + type: string + nf_naming: + type: org.openecomp.datatypes.Naming + Default: true + availability_zone_max_count: + type: integer + default: 1 + constraints: + - valid_values: + - 0 + - 1 + - 2 + min_instances: + type: integer + max_instances: + type: integer + multi_stage_design: + type: boolean + default: false + org.openecomp.resource.vl.ELine: + derived_from: org.openecomp.resource.vl.VL + capabilities: + virtual_linkable: + type: tosca.capabilities.network.Linkable + occurrences: + - 0 + - 2 + org.openecomp.resource.cp.v2.extNeutronCP: + derived_from: org.openecomp.resource.cp.v2.extCP + properties: + port_security_enabled: + type: boolean + description: Flag to enable/disable port security on the network + required: false + status: SUPPORTED + device_id: + type: string + description: Device ID of this port + required: false + status: SUPPORTED + qos_policy: + type: string + description: The name or ID of QoS policy to attach to this network + required: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: Additional MAC/IP address pairs allowed to pass through the port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.AddressPair + binding:vnic_type: + type: string + description: The vnic type to be bound on the neutron port + required: false + status: SUPPORTED + constraints: + - valid_values: + - macvtap + - direct + - normal + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + device_owner: + type: string + description: Name of the network owning the port + required: false + status: SUPPORTED + network: + type: string + description: Network this port belongs to + required: false + status: SUPPORTED + replacement_policy: + type: string + description: Policy on how to respond to a stack-update for this resource + required: false + default: AUTO + status: SUPPORTED + constraints: + - valid_values: + - REPLACE_ALWAYS + - AUTO + security_groups: + type: list + description: List of security group names or IDs + required: false + status: SUPPORTED + entry_schema: + type: string + fixed_ips: + type: list + description: Desired IPs for this port + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.neutron.port.FixedIps + mac_address: + type: string + description: MAC address to give to this port + required: false + status: SUPPORTED + admin_state_up: + type: boolean + description: A boolean value specifying the administrative status of the network + required: false + default: true + status: SUPPORTED + name: + type: string + description: A symbolic name for this port + required: false + status: SUPPORTED + attributes: + tenant_id: + type: string + description: Tenant owning the port + status: SUPPORTED + network_id: + type: string + description: Unique identifier for the network owning the port + status: SUPPORTED + qos_policy_id: + type: string + description: The QoS policy ID attached to this network + status: SUPPORTED + show: + type: string + description: Detailed information about resource + status: SUPPORTED + subnets: + type: list + description: Subnets of this network + status: SUPPORTED + entry_schema: + type: string + status: + type: string + description: The status of the network + status: SUPPORTED + capabilities: + attachment: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + binding: + type: tosca.capabilities.network.Bindable + valid_source_types: + - org.openecomp.resource.cp.nodes.heat.network.contrailV2.VLANSubInterface + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.vl.nodes.heat.network.contrail.VirtualNetwork: + derived_from: org.openecomp.resource.vl.nodes.network.Network + properties: + shared: + type: string + description: Is virtual network shared + required: false + status: SUPPORTED + forwarding_mode: + type: string + description: forwarding mode of the virtual network + required: false + status: SUPPORTED + external: + type: string + description: Is virtual network external + required: false + status: SUPPORTED + allow_transit: + type: string + description: Whether this network should be transitive. + required: false + status: SUPPORTED + flood_unknown_unicast: + type: string + description: flood L2 packets on network + required: false + status: SUPPORTED + route_targets: + type: list + description: route targets associated with the virtual network + required: false + status: SUPPORTED + entry_schema: + type: string + subnets: + type: map + description: Network related subnets + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + attributes: + fq_name: + type: string + description: fq_name + status: SUPPORTED + show: + type: string + description: All attributes. + status: SUPPORTED + subnets_name: + type: list + description: Subnets name of this network + status: SUPPORTED + entry_schema: + type: string + subnets_show: + type: map + description: Detailed information about each subnet + status: SUPPORTED + entry_schema: + type: string + subnets: + type: map + description: Network related subnets + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + capabilities: + attachment: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.vl.nodes.heat.network.contrailV2.VirtualNetwork: + derived_from: org.openecomp.resource.vl.nodes.network.Network + properties: + network_ipam_refs_data: + type: list + description: IPAM references Data + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.IpamRefData + network_policy_refs_data: + type: list + description: Policy references data + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.contrailV2.virtual.network.rule.RefData + network_ipam_refs: + type: list + description: IPAM references + required: false + status: SUPPORTED + entry_schema: + type: string + network_policy_refs: + type: list + description: Policy references + required: false + status: SUPPORTED + entry_schema: + type: string + subnets: + type: map + description: Network related subnets + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + attributes: + fq_name: + type: string + description: fq_name + status: SUPPORTED + subnets_name: + type: list + description: Subnets name of this network + status: SUPPORTED + entry_schema: + type: string + subnets_show: + type: map + description: Detailed information about each subnet + status: SUPPORTED + entry_schema: + type: string + subnets: + type: map + description: Network related subnets + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + capabilities: + attachment: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.nodes.PortMirroringConfiguration: + derived_from: tosca.nodes.Root + requirements: + - source: + capability: org.openecomp.capabilities.PortMirroring + occurrences: + - 1 + - UNBOUNDED + - collector: + capability: org.openecomp.capabilities.PortMirroring + occurrences: + - 1 + - 1 + org.openecomp.resource.vfc.nodes.Compute: + derived_from: tosca.nodes.Compute + capabilities: + disk.ephemeral.size: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: GB + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.ephemeral.size + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Size of ephemeral disk + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + instance: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: instance + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: instance + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Existence of instance + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + memory: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: MB + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: memory + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of RAM allocated to the instance + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.iops: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: count/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.iops + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average disk iops + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.read.requests: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.read.requests + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of read requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + cpu.delta: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: ns + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: cpu.delta + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: CPU time used since previous datapoint + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Delta + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.capacity: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.capacity + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The amount of disk that the instance can see + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.read.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.read.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of reads + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.write.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.write.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of writes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.latency: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: ms + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.latency + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average disk latency + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.read.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.read.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of reads + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.usage: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.usage + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The physical size in bytes of the image container on the host + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + cpu_util: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: '%' + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: cpu_util + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average CPU utilization + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.allocation: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.allocation + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The amount of disk per device occupied by the instance on the host machine + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.write.requests.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.write.requests.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of write requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.write.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.write.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of writes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.latency: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: ms + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.latency + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average disk latency per device + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + cpu: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: ns + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: cpu + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: CPU time used + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.write.requests: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.write.requests + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of write requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.write.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.write.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of writes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.read.requests: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.read.requests + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of read requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.root.size: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: GB + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.root.size + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Size of root disk + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.write.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.write.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of writes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + vcpus: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: vcpu + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: vcpus + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of virtual CPUs allocated to the instance + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.iops: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: count/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.iops + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average disk iops per device + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.usage: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.usage + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The physical size in bytes of the image container on the host per device + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.read.requests.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.read.requests.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of read requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.write.requests.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.write.requests.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of write requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.allocation: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.allocation + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The amount of disk occupied by the instance on the host machine + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.read.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.read.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of reads + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.read.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.read.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of reads + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + memory.usage: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: MB + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: memory.usage + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of RAM used by the instance from the amount of its allocated memory + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.device.capacity: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.device.capacity + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: The amount of disk per device that the instance can see + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: disk + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + memory.resident: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: MB + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: memory.resident + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Volume of RAM used by the instance on the physical machine + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + disk.write.requests: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: request + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: disk.write.requests + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of write requests + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: compute + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.CR: + derived_from: tosca.nodes.Root + properties: + cr_function: + type: string + cr_role: + type: string + cr_type: + type: string + org.openecomp.resource.vfc.nodes.heat.nova.Server: + derived_from: org.openecomp.resource.vfc.nodes.Compute + properties: + admin_pass: + type: string + description: The administrator password for the server + required: false + status: SUPPORTED + availability_zone: + type: string + description: Availability zone to create servers in + required: false + status: SUPPORTED + image: + type: string + description: The ID or name of the image to boot with + required: false + status: SUPPORTED + image_update_policy: + type: string + description: Policy on how to apply an image-id update + required: false + default: REBUILD + status: SUPPORTED + constraints: + - valid_values: + - REBUILD_PRESERVE_EPHEMERAL + - REPLACE + - REBUILD + metadata: + type: json + description: Arbitrary JSON metadata to store for this server + required: false + status: SUPPORTED + contrail_service_instance_ind: + type: boolean + description: Nova server related to service instance indicator + required: false + default: false + status: SUPPORTED + user_data_update_policy: + type: string + description: Policy on how to apply a user_data update + required: false + default: REPLACE + status: SUPPORTED + constraints: + - valid_values: + - REPLACE + - IGNORE + flavor_update_policy: + type: string + description: Policy on how to apply a flavor update + required: false + default: RESIZE + status: SUPPORTED + constraints: + - valid_values: + - RESIZE + - REPLACE + user_data: + type: string + description: User data script to be executed by cloud-init + required: false + default: '' + status: SUPPORTED + flavor: + type: string + description: The ID or name of the flavor to boot onto + required: true + status: SUPPORTED + key_name: + type: string + description: Name of keypair to inject into the server + required: false + status: SUPPORTED + reservation_id: + type: string + description: A UUID for the set of servers being requested + required: false + status: SUPPORTED + security_groups: + type: list + description: List of security group names or IDs + required: false + default: [] + status: SUPPORTED + entry_schema: + type: string + config_drive: + type: boolean + description: enable config drive on the server + required: false + status: SUPPORTED + personality: + type: map + description: A map of files to create/overwrite on the server upon boot + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + software_config_transport: + type: string + description: How the server should receive the metadata required for software configuration + required: false + default: POLL_SERVER_CFN + status: SUPPORTED + constraints: + - valid_values: + - POLL_SERVER_CFN + - POLL_SERVER_HEAT + - POLL_TEMP_URL + - ZAQAR_MESSAGE + user_data_format: + type: string + description: How the user_data should be formatted for the server + required: false + default: HEAT_CFNTOOLS + status: SUPPORTED + constraints: + - valid_values: + - SOFTWARE_CONFIG + - RAW + - HEAT_CFNTOOLS + diskConfig: + type: string + description: Control how the disk is partitioned when the server is created + required: false + status: SUPPORTED + constraints: + - valid_values: + - AUTO + - MANUAL + name: + type: string + description: Server name + required: false + status: SUPPORTED + scheduler_hints: + type: map + description: Arbitrary key-value pairs specified by the client to help boot a server + required: false + status: SUPPORTED + entry_schema: + type: string + attributes: + accessIPv4: + type: string + description: The manually assigned alternative public IPv4 address of the server + status: SUPPORTED + addresses: + type: map + description: A dict of all network addresses with corresponding port_id + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.novaServer.network.AddressInfo + accessIPv6: + type: string + description: The manually assigned alternative public IPv6 address of the server + status: SUPPORTED + instance_name: + type: string + description: AWS compatible instance name + status: SUPPORTED + name: + type: string + description: Name of the server + status: SUPPORTED + show: + type: string + description: Detailed information about resource + status: SUPPORTED + console_urls: + type: string + description: URLs of servers consoles + status: SUPPORTED + org.openecomp.resource.abstract.nodes.VnfConfiguration: + derived_from: tosca.nodes.Root + properties: + allowed_flavors: + description: a collection of all flavor valuesets available for a given VFC + type: map + entry_schema: + type: org.openecomp.datatypes.flavors.DeploymentFlavor + org.openecomp.resource.abstract.nodes.MultiFlavorVFC: + derived_from: org.openecomp.resource.abstract.nodes.VFC + properties: + images: + type: map + entry_schema: + type: org.openecomp.datatypes.ImageInfo + required: false + org.openecomp.resource.cp.nodes.network.Port: + derived_from: tosca.nodes.network.Port + properties: + network_role: + type: string + required: true + description: identical to VL network_role + order: + type: integer + required: true + description: The order of the CP on the compute instance (e.g. eth2). + network_role_tag: + description: Must correlate to the set of defined “network-role�? tag identifiers from the associated HEAT template + type: string + required: true + mac_requirements: + description: identifies MAC address assignments to the CP + type: org.openecomp.datatypes.network.MacRequirements + required: false + vlan_requirements: + description: identifies vlan address assignments to the CP + type: list + entry_schema: + type: org.openecomp.datatypes.network.VlanRequirements + required: false + ip_requirements: + description: identifies IP requirements to the CP + type: list + entry_schema: + type: org.openecomp.datatypes.network.IpRequirements + required: true + exCP_naming: + type: org.openecomp.datatypes.Naming + subnetpoolid: + type: string + capabilities: + network.incoming.packets.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: packet/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.incoming.packets.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of incoming packets + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + forwarder: + type: org.openecomp.capabilities.Forwarder + network.outgoing.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.outgoing.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of outgoing bytes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.outgoing.packets.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: packet/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.outgoing.packets.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of outgoing packets + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.outpoing.packets: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: packet + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.outpoing.packets + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of outgoing packets + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.incoming.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.incoming.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of incoming bytes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.incoming.bytes: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.incoming.bytes + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of incoming bytes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.outgoing.bytes.rate: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: B/s + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.outgoing.bytes.rate + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Average rate of outgoing bytes + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Gauge + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + network.incoming.packets: + type: org.openecomp.capabilities.metric.Ceilometer + description: A node type that includes the Metric capability indicates that it can be monitored using ceilometer. + properties: + unit: + type: string + description: Unit of the metric value + required: true + default: packet + status: SUPPORTED + name: + type: string + description: Ceilometer metric type name to monitor. (The name ceilometer is using) + required: true + default: network.incoming.packets + status: SUPPORTED + description: + type: string + description: Description of the metric + required: false + default: Number of incoming packets + status: SUPPORTED + type: + type: string + description: Type of the metric value, for an example, Cumulative, Delta, Gauge and etc. + required: true + default: Cumulative + status: SUPPORTED + category: + type: string + description: Category of the metric, for an example, compute, disk, network, storage and etc. + required: false + default: network + status: SUPPORTED + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules: + derived_from: tosca.nodes.Root + properties: + description: + type: string + description: Description of the security group + required: false + status: SUPPORTED + name: + type: string + description: A symbolic name for this security group, which is not required to be unique. + required: false + status: SUPPORTED + rules: + type: list + description: List of security group rules + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.SecurityRules.Rule + attributes: + show: + type: string + description: Detailed information about resource + status: SUPPORTED + requirements: + - port: + capability: tosca.capabilities.Attachment + node: org.openecomp.resource.cp.nodes.heat.network.neutron.Port + relationship: org.openecomp.relationships.AttachesTo + occurrences: + - 0 + - UNBOUNDED + org.openecomp.resource.cp.v2.extContrailCP: + derived_from: org.openecomp.resource.cp.v2.extCP + properties: + static_routes: + type: list + description: An ordered list of static routes to be added to this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.port.StaticRoute + virtual_network: + type: string + description: Virtual Network for this interface + required: true + status: SUPPORTED + static_route: + type: boolean + description: Static route enabled + required: false + default: false + status: SUPPORTED + allowed_address_pairs: + type: list + description: List of allowed address pair for this interface + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.AddressPair + shared_ip: + type: boolean + description: Shared ip enabled + required: false + default: false + status: SUPPORTED + ip_address: + type: string + description: IP for this interface + required: false + status: SUPPORTED + interface_type: + type: string + description: Interface type + required: true + status: SUPPORTED + constraints: + - valid_values: + - management + - left + - right + - other + attributes: + fq_name: + type: string + description: fq_name + status: SUPPORTED + org.openecomp.resource.vl.nodes.heat.network.neutron.Net: + derived_from: org.openecomp.resource.vl.nodes.network.Network + properties: + dhcp_agent_ids: + type: list + description: The IDs of the DHCP agent to schedule the network + required: false + status: SUPPORTED + entry_schema: + type: string + tenant_id: + type: string + description: The ID of the tenant which will own the network + required: false + status: SUPPORTED + port_security_enabled: + type: boolean + description: Flag to enable/disable port security on the network + required: false + status: SUPPORTED + shared: + type: boolean + description: Whether this network should be shared across all tenants + required: false + default: false + status: SUPPORTED + admin_state_up: + type: boolean + description: A boolean value specifying the administrative status of the network + required: false + default: true + status: SUPPORTED + qos_policy: + type: string + description: The name or ID of QoS policy to attach to this network + required: false + status: SUPPORTED + subnets: + type: map + description: Network related subnets + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + value_specs: + type: map + description: Extra parameters to include in the request + required: false + default: {} + status: SUPPORTED + entry_schema: + type: string + attributes: + qos_policy_id: + type: string + description: The QoS policy ID attached to this network + status: SUPPORTED + show: + type: string + description: Detailed information about resource + status: SUPPORTED + subnets_name: + type: list + description: Subnets name of this network + status: SUPPORTED + entry_schema: + type: string + subnets: + type: map + description: Network related subnets + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.neutron.Subnet + mtu: + type: scalar-unit.size + description: The maximum transmission unit size(in bytes) for the network + status: SUPPORTED + status: + type: string + description: The status of the network + status: SUPPORTED + capabilities: + attachment: + type: tosca.capabilities.Attachment + occurrences: + - 1 + - UNBOUNDED + org.openecomp.resource.abstract.nodes.contrail.AbstractSubstitute: + derived_from: org.openecomp.resource.abstract.nodes.AbstractSubstitute + properties: + availability_zone: + type: string + description: Availability zone to create servers in + required: false + status: SUPPORTED + static_routes_list: + type: list + description: Static routes enabled + required: false + status: SUPPORTED + entry_schema: + type: boolean + availability_zone_enable: + type: boolean + description: Indicates availability zone is enabled + required: false + default: false + status: SUPPORTED + service_template_name: + type: string + description: Service template name + required: false + status: SUPPORTED + ordered_interfaces: + type: boolean + description: Indicates if service interface are ordered + required: false + default: false + status: SUPPORTED + flavor: + type: string + description: flavor + required: false + status: SUPPORTED + image_name: + type: string + description: Image name + required: true + status: SUPPORTED + service_type: + type: string + description: Service type + required: true + status: SUPPORTED + constraints: + - valid_values: + - firewall + - analyzer + - source-nat + - loadbalancer + service_interface_type_list: + type: list + description: List of interface types + required: true + status: SUPPORTED + entry_schema: + type: string + constraints: + - valid_values: + - management + - left + - right + - other + service_instance_name: + type: string + description: Service instance name + required: true + status: SUPPORTED + interface_list: + type: list + description: List of interfaces + required: false + status: SUPPORTED + entry_schema: + type: org.openecomp.datatypes.heat.network.contrail.InterfaceData + service_mode: + type: string + description: Service mode + required: true + status: SUPPORTED + constraints: + - valid_values: + - transparent + - in-network + - in-network-nat + shared_ip_list: + type: list + description: Shared ips enabled + required: false + status: SUPPORTED + entry_schema: + type: boolean + attributes: + tenant_id: + type: string + description: Tenant id of the Service Instance + status: SUPPORTED + fq_name: + type: string + description: The FQ name of the service instance + status: SUPPORTED + service_template_name: + type: string + description: Service Template of the Service Instance + status: SUPPORTED + show: + type: string + description: All attributes + status: SUPPORTED + active_vms: + type: string + description: Number of service VMs active for this Service Instance + status: SUPPORTED + service_instance_name: + type: string + description: The name of the service instance + status: SUPPORTED + virtual_machines: + type: string + description: Service VMs for the Service Instance + status: SUPPORTED + status: + type: string + description: Status of the service instance + status: SUPPORTED + org.openecomp.resource.vl.nodes.network.Network: + derived_from: tosca.nodes.network.Network + properties: + vendor: + type: string + required: false + vl_name: + type: string + required: false + capabilities: + end_point: + type: tosca.capabilities.Endpoint + org.openecomp.resource.cp.nodes.heat.contrailV2.VirtualMachineInterface: + derived_from: org.openecomp.resource.cp.nodes.network.Port + properties: + name: + description: Virtual Machine Interface name + type: string + status: SUPPORTED + required: false + security_group_refs: + description: List of security groups. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + virtual_network_refs: + description: List of virtual networks. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + virtual_machine_interface_properties: + description: virtual machine interface properties. + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.interface.Properties + status: SUPPORTED + required: false + port_tuple_refs: + description: List of port tuples. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + virtual_machine_interface_mac_addresses: + description: List of mac addresses. + type: list + status: SUPPORTED + entry_schema: + type: string + required: false + virtual_machine_interface_allowed_address_pairs: + description: Virtual Machine Interface allowed address pairs. + type: org.openecomp.datatypes.heat.contrailV2.virtual.machine.subInterface.AddressPairs + status: SUPPORTED + required: false + attributes: + fq_name: + description: The FQ name of the Virtual Network. + type: string + status: SUPPORTED + show: + description: All attributes. + type: string + status: SUPPORTED + capabilities: + binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 0 + - UNBOUNDED + valid_source_types: + - org.openecomp.resources.cp.nodes.heat.network.contrailV2.VLANSubInterface diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/policies.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/policies.yml new file mode 100644 index 0000000..6063d08 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/policies.yml @@ -0,0 +1,134 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- data.yml +policy_types: + tosca.policies.Root: + description: The TOSCA Policy Type all other TOSCA Policy Types derive from + tosca.policies.Placement: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern placement of TOSCA nodes or groups of nodes. + tosca.policies.Scaling: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern scaling of TOSCA nodes or groups of nodes. + tosca.policies.Update: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to govern update of TOSCA nodes or groups of nodes. + tosca.policies.Performance: + derived_from: tosca.policies.Root + description: The TOSCA Policy Type definition that is used to declare performance requirements for TOSCA nodes or groups of nodes. + org.openecomp.policies.placement.Antilocate: + derived_from: tosca.policies.Placement + description: My placement policy for separation based upon container type value + properties: + name: + type: string + description: The name of the policy + required: false + status: SUPPORTED + container_type: + type: string + description: container type + required: false + status: SUPPORTED + constraints: + - valid_values: + - host + - region + - compute + org.openecomp.policies.placement.Colocate: + derived_from: tosca.policies.Placement + description: Keep associated nodes (groups of nodes) based upon affinity value + properties: + name: + type: string + description: The name of the policy + required: false + status: SUPPORTED + affinity: + type: string + description: affinity + required: true + status: SUPPORTED + constraints: + - valid_values: + - host + - region + - compute + org.openecomp.policies.placement.valet.Diversity: + derived_from: tosca.policies.Placement + description: Valet Diversity + properties: + level: + type: string + description: diversity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.placement.valet.Exclusivity: + derived_from: tosca.policies.Placement + description: Valet Exclusivity + properties: + level: + type: string + description: exclusivity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.placement.valet.Affinity: + derived_from: tosca.policies.Placement + description: Valet Affinity + properties: + level: + type: string + description: affinity + required: false + default: host + status: SUPPORTED + constraints: + - valid_values: + - host + - rack + org.openecomp.policies.scaling.Fixed: + derived_from: tosca.policies.Scaling + properties: + quantity: + description: the exact number of instances to keep up + type: integer + required: true + org.openecomp.policies.External: + derived_from: tosca.policies.Root + description: externally managed policy (for example, type="network assignment", source="Policy Manager", name="route target") + properties: + source: + type: string + description: The name of the server that exposes the policy with predefined type and name. + required: false + type: + type: string + description: The type (category) of the policy same as it is defined in the source. + required: false + name: + type: string + description: The name of the policy, that related to specific type, same as it is defined in the source. + required: false diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/relationships.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/relationships.yml new file mode 100644 index 0000000..f8b4335 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/relationships.yml @@ -0,0 +1,125 @@ +# +# 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. +# +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- capabilities.yml +- data.yml +- interfaces.yml +relationship_types: + tosca.relationships.Root: + description: This is the default (root) TOSCA Relationship Type definition that all other TOSCA Relationship Types derive from. + attributes: + tosca_id: + description: A unique identifier of the realized instance of a Relationship Template that derives from any TOSCA normative type. + type: string + tosca_name: + description: This attribute reflects the name of the Relationship Template as defined in the TOSCA service template. This name is not unique to the realized instance model of corresponding deployed application as each template in the model can result in one or more instances (e.g., scaled) when orchestrated to a provider environment. + type: string + state: + description: The state of the relationship instance. + type: string + default: initial + interfaces: + Configure: + type: tosca.interfaces.relationship.Configure + tosca.relationships.RoutesTo: + derived_from: tosca.relationships.ConnectsTo + description: This type represents an intentional network routing between two Endpoints in different networks. + valid_target_types: + - tosca.capabilities.Endpoint + tosca.relationships.network.LinksTo: + derived_from: tosca.relationships.DependsOn + description: This relationship type represents an association relationship between Port and Network node types. + valid_target_types: + - tosca.capabilities.network.Linkable + tosca.relationships.AttachesTo: + derived_from: tosca.relationships.Root + description: This type represents an attachment relationship between two nodes. For example, an AttachesTo relationship type would be used for attaching a storage node to a Compute node. + valid_target_types: + - tosca.capabilities.Attachment + properties: + location: + description: 'The relative location (e.g., path on the file system), which + provides the root location to address an attached node. e.g., a mount point + / path such as ''/usr/data''. Note: The user must provide it and it cannot + be "root".' + type: string + constraints: + - min_length: 1 + device: + description: The logical device name which for the attached device (which is represented by the target node in the model). e.g., '/dev/hda1'. + type: string + required: false + attributes: + device: + description: 'The logical name of the device as exposed to the instance. Note: + A runtime property that gets set when the model gets instantiated by the + orchestrator.' + type: string + tosca.relationships.network.BindsTo: + derived_from: tosca.relationships.DependsOn + description: This type represents a network association relationship between Port and Compute node types. + valid_target_types: + - tosca.capabilities.network.Bindable + tosca.relationships.HostedOn: + derived_from: tosca.relationships.Root + description: This type represents a hosting relationship between two nodes. + valid_target_types: + - tosca.capabilities.Container + tosca.relationships.DependsOn: + derived_from: tosca.relationships.Root + description: This type represents a general dependency relationship between two nodes. + valid_target_types: + - tosca.capabilities.Node + tosca.relationships.ConnectsTo: + derived_from: tosca.relationships.Root + description: This type represents a network connection relationship between two nodes. + valid_target_types: + - tosca.capabilities.Endpoint + properties: + credential: + type: tosca.datatypes.Credential + required: false + org.openecomp.relationships.VolumeAttachesTo: + derived_from: org.openecomp.relationships.AttachesTo + description: This type represents an attachment relationship for associating volume + properties: + volume_id: + description: The ID of the volume to be attached + type: string + status: SUPPORTED + required: true + instance_uuid: + description: The ID of the server to which the volume attaches + type: string + status: SUPPORTED + required: true + attributes: + show: + description: Detailed information about resource + type: string + status: SUPPORTED + org.openecomp.relationships.AttachesTo: + derived_from: tosca.relationships.AttachesTo + description: This type represents an attachment relationship + properties: + location: + description: The relative location (e.g., path on the file system), which provides the root location to address an attached node. + type: string + status: SUPPORTED + required: false + org.openecomp.relationships.ForwardsTo: + derived_from: tosca.relationships.Root + valid_target_types: + - org.openecomp.capabilities.Forwarder diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template-interface.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template-interface.yml new file mode 100644 index 0000000..5a20b62 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template-interface.yml @@ -0,0 +1,678 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + org.openecomp.resource.vf.CscfNokia: + derived_from: org.openecomp.resource.abstract.nodes.VF + properties: + nf_naming: + type: org.openecomp.datatypes.Naming + default: + ecomp_generated_naming: true + multi_stage_design: + type: boolean + default: false + nf_function: + type: string + nf_naming_code: + type: string + availability_zone_max_count: + type: integer + default: 1 + nf_role: + type: string + min_instances: + type: integer + max_instances: + type: integer + nf_type: + type: string + capabilities: + lb_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + lb.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + cscf.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscf.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + oam.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + internal.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscf.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + oam.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbcpd_diameter.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscf.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscf.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + oam.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + oam.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + lbcpd_sip.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + cscf.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscf_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oamcpd_om.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbcpd_om.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + cscf.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscf.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + lb.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscf.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + lb.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lb.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oam_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + requirements: + - cscf.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - oam_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscf_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lb_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbcpd_om.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbcpd_diameter.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - oam.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - oamcpd_om.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lb_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lb.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbcpd_sip.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - oam_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscf.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - oam.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - lb.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - oam_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscf_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lb_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbcpd_om.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbcpd_diameter.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - oamcpd_om.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbcpd_sip.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscf.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - oam.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - lb.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - oam_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscf_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lb_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbcpd_om.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbcpd_diameter.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - oamcpd_om.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbcpd_sip.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template.yml new file mode 100644 index 0000000..d6130dc --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-CscfNokia-template.yml @@ -0,0 +1,600 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: 2ed01e73-2a23-4717-a7fe-8d067ff6bb87 + UUID: 8612efa5-9df9-43ef-8e76-5a3cca97a15e + name: CSCF Nokia + description: CSCF Nokia + type: VF + category: Generic + subcategory: Network Elements + resourceVendor: onap + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +- resource-CSCF Nokia-interface: + file: resource-CscfNokia-template-interface.yml +- resource-VDU Compute: + file: resource-VduCompute-template.yml +- resource-VDU Cpd: + file: resource-VduCpd-template.yml +- resource-VnfVirtualLinkDesc: + file: resource-Vnfvirtuallinkdesc-template.yml +- resource-VDU VirtualStorage: + file: resource-VduVirtualstorage-template.yml +topology_template: + inputs: + nf_naming: + type: org.openecomp.datatypes.Naming + default: + ecomp_generated_naming: true + multi_stage_design: + type: boolean + default: false + nf_function: + type: string + nf_naming_code: + type: string + availability_zone_max_count: + type: integer + default: 1 + nf_role: + type: string + min_instances: + type: integer + max_instances: + type: integer + nf_type: + type: string + node_templates: + internal: + type: tosca.nodes.nfv.VnfVirtualLinkDesc + metadata: + invariantUUID: ffa0bcc5-7903-4332-adb9-3c44f577621e + UUID: ecb39b27-06c8-4337-9304-d6a88c8c0fae + customizationUUID: 582c18d7-d466-4b8c-9cab-536e45f3a14a + version: '2.0' + name: VnfVirtualLinkDesc + description: VnfVirtualLinkDesc + type: VL + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + vl_flavours: + flavours: + flavourId: test + connectivity_type: + layer_protocol: ipv4 + lbCpd_SIP: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 1ec6019b-ea02-4065-8db3-dc631e468f61 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: lb + lbCpd_Diameter: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 1c9bfa55-d4fe-43ff-b8ad-984e26795fc9 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: lb + oam_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 845ba157-b397-4ed1-8c1c-02bfa29b2515 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 300G + id: oam_Storage + type_of_storage: volume + oamCpd_OM: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 2a71f014-924a-4966-8bba-db5d68f5088a + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: oam + lbCpd_OM: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 9bf40aab-eff2-4c22-b516-b1f106b6a797 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: lb + lb_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 3d22021f-f602-45f1-8bcd-d339ba5fd536 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 300G + id: lb_Storage + type_of_storage: volume + lb: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: d87fb984-012e-4789-8098-b20115fae393 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + requirements: + - virtual_storage: + capability: virtual_storage + node: lb_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 32G + virtual_cpu: + num_virtual_cpu: 12 + endpoint: + properties: + secure: true + cscf_internal: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: d9e1d2f1-4a0c-4a19-9472-1aa819acd79f + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: internal + - virtual_binding: + capability: virtual_binding + node: cscf + oam_internal: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 7e9afa7a-ed8a-4445-9e01-c7eea12e761a + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: internal + - virtual_binding: + capability: virtual_binding + node: oam + oam: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 77154a9e-8fc7-4158-b79e-eecb034384bd + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + requirements: + - virtual_storage: + capability: virtual_storage + node: oam_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 32G + virtual_cpu: + num_virtual_cpu: 4 + endpoint: + properties: + secure: true + lb_internal: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: b009969e-472e-4956-90e0-15237838baca + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: leaf + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: internal + - virtual_binding: + capability: virtual_binding + node: lb + cscf: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 133b949c-b711-4c5f-a7ce-8ed33ff401ea + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + virtual_cpu: + num_virtual_cpu: 8 + endpoint: + properties: + secure: true + substitution_mappings: + node_type: org.openecomp.resource.vf.CscfNokia + capabilities: + lb_storage.feature: + - lb_storage + - feature + oam.host: + - oam + - host + lb.os: + - lb + - os + cscf.virtual_binding: + - cscf + - virtual_binding + oam.virtual_binding: + - oam + - virtual_binding + cscf.host: + - cscf + - host + oam.endpoint: + - oam + - endpoint + internal.virtual_linkable: + - internal + - virtual_linkable + cscf.endpoint: + - cscf + - endpoint + oam.binding: + - oam + - binding + lb_internal.feature: + - lb_internal + - feature + lb.virtual_binding: + - lb + - virtual_binding + oam.feature: + - oam + - feature + lbcpd_diameter.feature: + - lbcpd_diameter + - feature + oam.scalable: + - oam + - scalable + cscf.scalable: + - cscf + - scalable + cscf.monitoring_parameter: + - cscf + - monitoring_parameter + lb_storage.virtual_storage: + - lb_storage + - virtual_storage + lb.virtual_compute: + - lb + - virtual_compute + oam.virtual_compute: + - oam + - virtual_compute + oam.os: + - oam + - os + lbcpd_sip.feature: + - lbcpd_sip + - feature + lb.endpoint: + - lb + - endpoint + cscf.feature: + - cscf + - feature + cscf_internal.feature: + - cscf_internal + - feature + oamcpd_om.feature: + - oamcpd_om + - feature + oam_internal.feature: + - oam_internal + - feature + lbcpd_om.feature: + - lbcpd_om + - feature + lb.host: + - lb + - host + cscf.binding: + - cscf + - binding + lb.scalable: + - lb + - scalable + cscf.os: + - cscf + - os + lb.feature: + - lb + - feature + cscf.virtual_compute: + - cscf + - virtual_compute + lb.monitoring_parameter: + - lb + - monitoring_parameter + oam_storage.feature: + - oam_storage + - feature + oam.monitoring_parameter: + - oam + - monitoring_parameter + internal.feature: + - internal + - feature + lb.binding: + - lb + - binding + oam_storage.virtual_storage: + - oam_storage + - virtual_storage + requirements: + lbcpd_diameter.virtual_link: + - lbcpd_diameter + - virtual_link + lbcpd_om.dependency: + - lbcpd_om + - dependency + oam.dependency: + - oam + - dependency + lbcpd_diameter.virtual_binding: + - lbcpd_diameter + - virtual_binding + cscf_internal.virtual_link: + - cscf_internal + - virtual_link + oamcpd_om.virtual_binding: + - oamcpd_om + - virtual_binding + lb.dependency: + - lb + - dependency + lb_storage.dependency: + - lb_storage + - dependency + cscf_internal.virtual_binding: + - cscf_internal + - virtual_binding + lb_internal.virtual_link: + - lb_internal + - virtual_link + lbcpd_om.virtual_binding: + - lbcpd_om + - virtual_binding + cscf.local_storage: + - cscf + - local_storage + lbcpd_diameter.dependency: + - lbcpd_diameter + - dependency + lbcpd_sip.virtual_link: + - lbcpd_sip + - virtual_link + cscf_internal.dependency: + - cscf_internal + - dependency + lb_internal.virtual_binding: + - lb_internal + - virtual_binding + oam_storage.dependency: + - oam_storage + - dependency + oam_internal.dependency: + - oam_internal + - dependency + internal.dependency: + - internal + - dependency + oam_internal.virtual_binding: + - oam_internal + - virtual_binding + lb_internal.dependency: + - lb_internal + - dependency + oamcpd_om.dependency: + - oamcpd_om + - dependency + oam.virtual_storage: + - oam + - virtual_storage + cscf.dependency: + - cscf + - dependency + lbcpd_om.virtual_link: + - lbcpd_om + - virtual_link + cscf.virtual_storage: + - cscf + - virtual_storage + oamcpd_om.virtual_link: + - oamcpd_om + - virtual_link + oam.local_storage: + - oam + - local_storage + lbcpd_sip.virtual_binding: + - lbcpd_sip + - virtual_binding + lbcpd_sip.dependency: + - lbcpd_sip + - dependency + lb.virtual_storage: + - lb + - virtual_storage + lb.local_storage: + - lb + - local_storage + oam_internal.virtual_link: + - oam_internal + - virtual_link diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-ExtZteVl-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-ExtZteVl-template.yml new file mode 100644 index 0000000..b8d7488 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-ExtZteVl-template.yml @@ -0,0 +1,80 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: d0d43bd0-4088-4b1c-9ac1-c6303d9f923a + UUID: 0f93d9d8-a815-4da9-820f-6cc77f670623 + name: ext ZTE VL + description: Ext ZTE VL + type: VL + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + tosca.nodes.nfv.ext.zte.VL: + derived_from: tosca.nodes.Root + description: Ext ZTE VL + properties: + segmentation_id: + type: string + network_name: + type: string + is_predefined: + type: boolean + mtu: + type: integer + dns_nameservers: + type: list + entry_schema: + type: string + physical_network: + type: string + dhcp_enabled: + type: boolean + network_id: + type: string + host_routes: + type: list + entry_schema: + type: tosca.datatypes.nfv.ext.HostRouteInfo + ip_version: + type: integer + vendor: + type: string + name: + type: string + start_ip: + type: string + vlan_transparent: + type: boolean + cidr: + type: string + gateway_ip: + type: string + network_type: + type: string + end_ip: + type: string + location_info: + type: tosca.datatypes.nfv.ext.LocationInfo + capabilities: + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template-interface.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template-interface.yml new file mode 100644 index 0000000..615bdf6 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template-interface.yml @@ -0,0 +1,1716 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + org.openecomp.resource.vf.SbcHuawei: + derived_from: org.openecomp.resource.abstract.nodes.VF + properties: + nf_naming: + type: org.openecomp.datatypes.Naming + default: + ecomp_generated_naming: true + multi_stage_design: + type: boolean + default: false + nf_function: + type: string + nf_naming_code: + type: string + availability_zone_max_count: + type: integer + default: 1 + nf_role: + type: string + min_instances: + type: integer + max_instances: + type: integer + nf_type: + type: string + capabilities: + ccu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + bsu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru2medianet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + bsu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + scu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cmu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + scu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + lbu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + ccu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + vpu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + ccu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + cmu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + hru.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + bsu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + bsu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + hru_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + omu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + cmu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + vpu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + lbu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + omu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu2managenet.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + upiru_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu2signalnet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + ccu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + hru.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + ccu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + ccu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + lbu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + bsu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + ccu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + ccu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + bsu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + ccu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + bsu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + bsu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + bsu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + omu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + bsu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + intranet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + upiru_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + intranet1.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + ccu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + lbu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + lbu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu2signalnet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + bsu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + scu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru2medianet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + omu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + ccu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + scu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + hru.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + intranet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + vpu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cmu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + bsu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + scu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + intranet2.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + hru.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + omu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + ccu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + lbu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + scu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + requirements: + - scu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - vpu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cmu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - omu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - bsu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - intranet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - vpu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - intranet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - scu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - upiru_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cmu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - upiru_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - bsu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - omu2managenet.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - ccu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - omu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - ccu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cmu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - omu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - scu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - bsu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu2signalnet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - ccu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu2signalnet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - lbu_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru2medianet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - hru2medianet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - vpu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - bsu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - lbu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - cmu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - ccu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - omu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - scu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - hru.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - omu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - hru_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - hru_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - scu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - upiru_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - upiru_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - omu2managenet.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - ccu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cmu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - bsu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbu2signalnet1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbu2signalnet2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - lbu_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - hru2medianet1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - hru2medianet2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - vpu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - bsu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - lbu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - cmu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - ccu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - omu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - scu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - hru.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - omu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - hru_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - hru_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - scu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - upiru_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - upiru_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - omu2managenet.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - ccu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cmu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - bsu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbu2signalnet1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbu2signalnet2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - lbu_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - hru2medianet1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - hru2medianet2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template.yml new file mode 100644 index 0000000..c7c51b5 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-SbcHuawei-template.yml @@ -0,0 +1,1546 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: 459372a6-51a2-4f35-8193-b11ca47c2a24 + UUID: 4563686a-a63a-457d-8232-a3d07b314028 + name: SBC Huawei + description: SBC Huawei + type: VF + category: Generic + subcategory: Network Elements + resourceVendor: onap + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +- resource-SBC Huawei-interface: + file: resource-SbcHuawei-template-interface.yml +- resource-VDU VirtualStorage: + file: resource-VduVirtualstorage-template.yml +- resource-VDU Compute: + file: resource-VduCompute-template.yml +- resource-VDU Cpd: + file: resource-VduCpd-template.yml +- resource-VnfVirtualLinkDesc: + file: resource-Vnfvirtuallinkdesc-template.yml +topology_template: + inputs: + nf_naming: + type: org.openecomp.datatypes.Naming + default: + ecomp_generated_naming: true + multi_stage_design: + type: boolean + default: false + nf_function: + type: string + nf_naming_code: + type: string + availability_zone_max_count: + type: integer + default: 1 + nf_role: + type: string + min_instances: + type: integer + max_instances: + type: integer + nf_type: + type: string + node_templates: + SCU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 592668f7-6eab-451a-bccb-018db1fd17d1 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: SCU + descrption: the virtual machine of SCU + requirements: + - virtual_storage: + capability: virtual_storage + node: SCU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 2 + endpoint: + properties: + secure: true + LBU2SignalNet1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 19e73b12-a0d0-49f0-8f9b-7fac22688c70 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ethernet + requirements: + - virtual_binding: + capability: virtual_binding + node: LBU + CCU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 4daec8ff-8dc2-44c3-abac-4580c5d5c292 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet1 + - virtual_binding: + capability: virtual_binding + node: CCU + LBU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: c6b492b3-2674-4d29-b190-04788e08ab39 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: LBU + - virtual_link: + capability: virtual_linkable + node: Intranet1 + OMU2ManageNet: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: e2967dfa-15fb-4b71-b5aa-a4f0a95fff60 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + LBU_VduCpd_Intra2: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 8a4b0534-8c48-4631-a1a4-7de4a090faf7 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet2 + - virtual_binding: + capability: virtual_binding + node: LBU + OMU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 156e7686-96a2-4ade-8a52-1f2d2e291653 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + rdma_enabled: false + size_of_storage: 256G + id: OMU_Storage + type_of_storage: volume + HRU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 1ef6b212-4bd3-4e58-878d-29e18c2ce930 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: HRU + descrption: the virtual machine of HRU + requirements: + - virtual_storage: + capability: virtual_storage + node: HRU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 12G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 3 + endpoint: + properties: + secure: true + VPU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 69c6e716-f8c4-4ee7-b517-908dc23f0c74 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: VPU_Storage + type_of_storage: volume + SCU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 482a3f60-5c44-4587-840d-53df210df213 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: SCU + - virtual_link: + capability: virtual_linkable + node: Intranet1 + HRU_VduCpd_Intra2: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 69c33f3b-75ba-4766-865d-e751439ceb63 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet2 + - virtual_binding: + capability: virtual_binding + node: HRU + HRU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 9a844ac0-6676-42d1-b10e-b766eeb2582e + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: HRU + - virtual_link: + capability: virtual_linkable + node: Intranet1 + CCU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 6d15fa4c-77d4-4f6e-9635-d8d95c5e0476 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: CCU_Storage + type_of_storage: volume + BSU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: e95a5f3f-8037-48a6-80cd-a245b71429c8 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet1 + - virtual_binding: + capability: virtual_binding + node: BSU + Intranet1: + type: tosca.nodes.nfv.VnfVirtualLinkDesc + metadata: + invariantUUID: ffa0bcc5-7903-4332-adb9-3c44f577621e + UUID: ecb39b27-06c8-4337-9304-d6a88c8c0fae + customizationUUID: 4635dd5e-a3f6-4fa2-9701-42b843de0da4 + version: '2.0' + name: VnfVirtualLinkDesc + description: VnfVirtualLinkDesc + type: VL + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + vl_flavours: + flavours: + flavourId: test1 + connectivity_type: + layer_protocol: ipv4 + Intranet2: + type: tosca.nodes.nfv.VnfVirtualLinkDesc + metadata: + invariantUUID: ffa0bcc5-7903-4332-adb9-3c44f577621e + UUID: ecb39b27-06c8-4337-9304-d6a88c8c0fae + customizationUUID: bf49e290-c9da-446e-b32f-4ca63462f0be + version: '2.0' + name: VnfVirtualLinkDesc + description: VnfVirtualLinkDesc + type: VL + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + vl_flavours: + flavours: + flavourId: test2 + connectivity_type: + layer_protocol: ipv4 + VPU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 6ef26ba3-0abb-48b4-bfba-20a86b521f36 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: VPU + descrption: the virtual machine of VPU + requirements: + - virtual_storage: + capability: virtual_storage + node: VPU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 5 + endpoint: + properties: + secure: true + LBU2SignalNet2: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 7df93c99-cdd6-49be-be6d-1769760442cf + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: LBU + OMU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: baf8ef19-47ea-406c-95ef-483690b32171 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet1 + - virtual_binding: + capability: virtual_binding + node: OMU + LBU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 34020892-4b2b-412b-9acf-91cfb80f5d0f + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: LBU + descrption: the virtual machine of LBU + requirements: + - virtual_storage: + capability: virtual_storage + node: LBU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 4 + endpoint: + properties: + secure: true + CMU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: db655574-25ed-48d1-ae39-b6e041148064 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_link: + capability: virtual_linkable + node: Intranet1 + - virtual_binding: + capability: virtual_binding + node: CMU + CMU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: 269f5f42-ef96-465f-892e-361d6dcb12ee + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: CMU_Storage + type_of_storage: volume + BSU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 66e9d293-68b6-4086-a700-df7b4ffc6689 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: BSU + descrption: the virtual machine of BSU + requirements: + - virtual_storage: + capability: virtual_storage + node: BSU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 1 + endpoint: + properties: + secure: true + CMU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 0ba6264c-1b85-4c7b-89f1-7533ce9b08e0 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: CMU + descrption: the virtual machine of CMU + requirements: + - virtual_storage: + capability: virtual_storage + node: CMU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 1 + endpoint: + properties: + secure: true + SCU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: b5df1233-babf-44f1-b565-fa41a30c9f7b + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: SCU_Storage + type_of_storage: volume + HRU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: c24eae39-81a5-4ca2-af7d-3cdb81a46b40 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: HRU_Storage + type_of_storage: volume + CCU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 51f263d2-9d80-4c93-afbd-442cd7276477 + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: CCU + descrption: the virtual machine of CCU + requirements: + - virtual_storage: + capability: virtual_storage + node: CCU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 16G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 2 + endpoint: + properties: + secure: true + OMU: + type: tosca.nodes.nfv.VDU.Compute + metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + customizationUUID: 4ad39620-ccff-4067-aa1f-12216c0c8ebf + version: '2.0' + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + configurable_properties: + test: + additional_vnfc_configurable_properties: + aaa: '1' + name: OMU + descrption: the virtual machine of OMU + requirements: + - virtual_storage: + capability: virtual_storage + node: OMU_Storage + capabilities: + scalable: + properties: + max_instances: 1 + min_instances: 1 + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 16G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 4 + endpoint: + properties: + secure: true + BSU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: e483151b-38fd-4ea3-b13f-11d6f085e276 + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: BSU_Storage + type_of_storage: volume + UPIRU_VduCpd_Intra1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 940826f5-4339-4370-8d93-f82cc5821c89 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: VPU + - virtual_link: + capability: virtual_linkable + node: Intranet1 + UPIRU_VduCpd_Intra2: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: cc7fd241-a3a3-4ad9-a173-6834b2363ae6 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: VPU + - virtual_link: + capability: virtual_linkable + node: Intranet2 + HRU2MediaNet1: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: b8f4d611-3e0e-495f-a6b5-612f6b9acc99 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ethernet + requirements: + - virtual_binding: + capability: virtual_binding + node: HRU + LBU_Storage: + type: tosca.nodes.nfv.VDU.VirtualStorage + metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + customizationUUID: bae734f4-21b8-44e3-bd54-8561c4de821f + version: '2.0' + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + size_of_storage: 4G + id: LBU_Storage + type_of_storage: volume + HRU2MediaNet2: + type: tosca.nodes.nfv.VduCpd + metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + customizationUUID: 05ee15f6-ce45-4278-9567-9a2978b881d2 + version: '2.0' + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + properties: + role: root + layer_protocol: ipv4 + requirements: + - virtual_binding: + capability: virtual_binding + node: HRU + substitution_mappings: + node_type: org.openecomp.resource.vf.SbcHuawei + capabilities: + ccu_storage.feature: + - ccu_storage + - feature + bsu.binding: + - bsu + - binding + hru2medianet2.feature: + - hru2medianet2 + - feature + vpu.os: + - vpu + - os + bsu.os: + - bsu + - os + scu.scalable: + - scu + - scalable + cmu.host: + - cmu + - host + scu.virtual_compute: + - scu + - virtual_compute + lbu_vducpd_intra1.feature: + - lbu_vducpd_intra1 + - feature + omu.scalable: + - omu + - scalable + ccu.virtual_binding: + - ccu + - virtual_binding + cmu.binding: + - cmu + - binding + lbu.virtual_compute: + - lbu + - virtual_compute + vpu.virtual_binding: + - vpu + - virtual_binding + ccu.feature: + - ccu + - feature + lbu.feature: + - lbu + - feature + scu.host: + - scu + - host + cmu.os: + - cmu + - os + hru.virtual_binding: + - hru + - virtual_binding + omu.os: + - omu + - os + bsu_storage.feature: + - bsu_storage + - feature + cmu.feature: + - cmu + - feature + omu.endpoint: + - omu + - endpoint + bsu.virtual_binding: + - bsu + - virtual_binding + vpu.binding: + - vpu + - binding + vpu.scalable: + - vpu + - scalable + hru_vducpd_intra2.feature: + - hru_vducpd_intra2 + - feature + hru.feature: + - hru + - feature + cmu_storage.virtual_storage: + - cmu_storage + - virtual_storage + omu.virtual_compute: + - omu + - virtual_compute + omu.binding: + - omu + - binding + vpu_storage.feature: + - vpu_storage + - feature + cmu.virtual_compute: + - cmu + - virtual_compute + cmu.scalable: + - cmu + - scalable + vpu.host: + - vpu + - host + lbu_storage.virtual_storage: + - lbu_storage + - virtual_storage + omu_vducpd_intra1.feature: + - omu_vducpd_intra1 + - feature + lbu_vducpd_intra2.feature: + - lbu_vducpd_intra2 + - feature + scu_storage.feature: + - scu_storage + - feature + hru.host: + - hru + - host + omu_storage.virtual_storage: + - omu_storage + - virtual_storage + omu2managenet.feature: + - omu2managenet + - feature + cmu.endpoint: + - cmu + - endpoint + upiru_vducpd_intra1.feature: + - upiru_vducpd_intra1 + - feature + lbu2signalnet2.feature: + - lbu2signalnet2 + - feature + lbu.monitoring_parameter: + - lbu + - monitoring_parameter + cmu.monitoring_parameter: + - cmu + - monitoring_parameter + vpu.monitoring_parameter: + - vpu + - monitoring_parameter + hru_vducpd_intra1.feature: + - hru_vducpd_intra1 + - feature + cmu_storage.feature: + - cmu_storage + - feature + scu_vducpd_intra1.feature: + - scu_vducpd_intra1 + - feature + vpu.virtual_compute: + - vpu + - virtual_compute + ccu.endpoint: + - ccu + - endpoint + hru.scalable: + - hru + - scalable + ccu.binding: + - ccu + - binding + ccu_vducpd_intra1.feature: + - ccu_vducpd_intra1 + - feature + cmu.virtual_binding: + - cmu + - virtual_binding + omu_storage.feature: + - omu_storage + - feature + omu.feature: + - omu + - feature + lbu.scalable: + - lbu + - scalable + lbu.os: + - lbu + - os + bsu_vducpd_intra1.feature: + - bsu_vducpd_intra1 + - feature + hru.monitoring_parameter: + - hru + - monitoring_parameter + scu.virtual_binding: + - scu + - virtual_binding + ccu_storage.virtual_storage: + - ccu_storage + - virtual_storage + ccu.host: + - ccu + - host + bsu.endpoint: + - bsu + - endpoint + ccu.virtual_compute: + - ccu + - virtual_compute + bsu_storage.virtual_storage: + - bsu_storage + - virtual_storage + hru.binding: + - hru + - binding + bsu.feature: + - bsu + - feature + bsu.virtual_compute: + - bsu + - virtual_compute + omu.virtual_binding: + - omu + - virtual_binding + hru.virtual_compute: + - hru + - virtual_compute + bsu.monitoring_parameter: + - bsu + - monitoring_parameter + scu.os: + - scu + - os + intranet1.feature: + - intranet1 + - feature + scu.feature: + - scu + - feature + upiru_vducpd_intra2.feature: + - upiru_vducpd_intra2 + - feature + lbu.binding: + - lbu + - binding + intranet1.virtual_linkable: + - intranet1 + - virtual_linkable + vpu.endpoint: + - vpu + - endpoint + ccu.os: + - ccu + - os + lbu.endpoint: + - lbu + - endpoint + lbu_storage.feature: + - lbu_storage + - feature + hru_storage.virtual_storage: + - hru_storage + - virtual_storage + lbu2signalnet1.feature: + - lbu2signalnet1 + - feature + bsu.scalable: + - bsu + - scalable + scu.binding: + - scu + - binding + vpu_storage.virtual_storage: + - vpu_storage + - virtual_storage + hru2medianet1.feature: + - hru2medianet1 + - feature + hru_storage.feature: + - hru_storage + - feature + omu.host: + - omu + - host + ccu.scalable: + - ccu + - scalable + scu.endpoint: + - scu + - endpoint + hru.endpoint: + - hru + - endpoint + intranet2.feature: + - intranet2 + - feature + vpu.feature: + - vpu + - feature + cmu_vducpd_intra1.feature: + - cmu_vducpd_intra1 + - feature + bsu.host: + - bsu + - host + scu.monitoring_parameter: + - scu + - monitoring_parameter + intranet2.virtual_linkable: + - intranet2 + - virtual_linkable + hru.os: + - hru + - os + omu.monitoring_parameter: + - omu + - monitoring_parameter + lbu.host: + - lbu + - host + ccu.monitoring_parameter: + - ccu + - monitoring_parameter + lbu.virtual_binding: + - lbu + - virtual_binding + scu_storage.virtual_storage: + - scu_storage + - virtual_storage + requirements: + scu_vducpd_intra1.dependency: + - scu_vducpd_intra1 + - dependency + cmu_vducpd_intra1.dependency: + - cmu_vducpd_intra1 + - dependency + lbu2signalnet1.dependency: + - lbu2signalnet1 + - dependency + hru2medianet2.dependency: + - hru2medianet2 + - dependency + cmu_vducpd_intra1.virtual_link: + - cmu_vducpd_intra1 + - virtual_link + vpu.local_storage: + - vpu + - local_storage + scu_vducpd_intra1.virtual_binding: + - scu_vducpd_intra1 + - virtual_binding + lbu_vducpd_intra2.virtual_binding: + - lbu_vducpd_intra2 + - virtual_binding + cmu.dependency: + - cmu + - dependency + omu2managenet.dependency: + - omu2managenet + - dependency + hru_vducpd_intra1.virtual_binding: + - hru_vducpd_intra1 + - virtual_binding + upiru_vducpd_intra2.dependency: + - upiru_vducpd_intra2 + - dependency + bsu_vducpd_intra1.dependency: + - bsu_vducpd_intra1 + - dependency + hru_vducpd_intra2.virtual_link: + - hru_vducpd_intra2 + - virtual_link + scu.local_storage: + - scu + - local_storage + bsu_storage.dependency: + - bsu_storage + - dependency + bsu.virtual_storage: + - bsu + - virtual_storage + hru2medianet2.virtual_binding: + - hru2medianet2 + - virtual_binding + hru_vducpd_intra1.dependency: + - hru_vducpd_intra1 + - dependency + lbu2signalnet1.virtual_link: + - lbu2signalnet1 + - virtual_link + bsu.local_storage: + - bsu + - local_storage + ccu_vducpd_intra1.dependency: + - ccu_vducpd_intra1 + - dependency + upiru_vducpd_intra1.virtual_link: + - upiru_vducpd_intra1 + - virtual_link + omu_vducpd_intra1.virtual_link: + - omu_vducpd_intra1 + - virtual_link + omu_storage.dependency: + - omu_storage + - dependency + lbu_vducpd_intra1.virtual_link: + - lbu_vducpd_intra1 + - virtual_link + bsu_vducpd_intra1.virtual_binding: + - bsu_vducpd_intra1 + - virtual_binding + lbu.dependency: + - lbu + - dependency + lbu_vducpd_intra2.dependency: + - lbu_vducpd_intra2 + - dependency + upiru_vducpd_intra2.virtual_link: + - upiru_vducpd_intra2 + - virtual_link + hru_vducpd_intra2.dependency: + - hru_vducpd_intra2 + - dependency + omu_vducpd_intra1.virtual_binding: + - omu_vducpd_intra1 + - virtual_binding + scu.dependency: + - scu + - dependency + lbu_vducpd_intra2.virtual_link: + - lbu_vducpd_intra2 + - virtual_link + lbu2signalnet2.virtual_binding: + - lbu2signalnet2 + - virtual_binding + hru2medianet1.virtual_binding: + - hru2medianet1 + - virtual_binding + hru2medianet1.dependency: + - hru2medianet1 + - dependency + upiru_vducpd_intra1.virtual_binding: + - upiru_vducpd_intra1 + - virtual_binding + lbu_vducpd_intra1.dependency: + - lbu_vducpd_intra1 + - dependency + upiru_vducpd_intra1.dependency: + - upiru_vducpd_intra1 + - dependency + lbu2signalnet2.virtual_link: + - lbu2signalnet2 + - virtual_link + hru_storage.dependency: + - hru_storage + - dependency + hru.dependency: + - hru + - dependency + omu2managenet.virtual_binding: + - omu2managenet + - virtual_binding + omu.local_storage: + - omu + - local_storage + scu_storage.dependency: + - scu_storage + - dependency + cmu_vducpd_intra1.virtual_binding: + - cmu_vducpd_intra1 + - virtual_binding + scu.virtual_storage: + - scu + - virtual_storage + omu2managenet.virtual_link: + - omu2managenet + - virtual_link + bsu_vducpd_intra1.virtual_link: + - bsu_vducpd_intra1 + - virtual_link + vpu.virtual_storage: + - vpu + - virtual_storage + scu_vducpd_intra1.virtual_link: + - scu_vducpd_intra1 + - virtual_link + upiru_vducpd_intra2.virtual_binding: + - upiru_vducpd_intra2 + - virtual_binding + cmu_storage.dependency: + - cmu_storage + - dependency + bsu.dependency: + - bsu + - dependency + lbu2signalnet2.dependency: + - lbu2signalnet2 + - dependency + hru_vducpd_intra1.virtual_link: + - hru_vducpd_intra1 + - virtual_link + hru_vducpd_intra2.virtual_binding: + - hru_vducpd_intra2 + - virtual_binding + vpu.dependency: + - vpu + - dependency + cmu.local_storage: + - cmu + - local_storage + lbu_vducpd_intra1.virtual_binding: + - lbu_vducpd_intra1 + - virtual_binding + cmu.virtual_storage: + - cmu + - virtual_storage + ccu.local_storage: + - ccu + - local_storage + lbu_storage.dependency: + - lbu_storage + - dependency + lbu.virtual_storage: + - lbu + - virtual_storage + omu_vducpd_intra1.dependency: + - omu_vducpd_intra1 + - dependency + ccu_vducpd_intra1.virtual_binding: + - ccu_vducpd_intra1 + - virtual_binding + omu.dependency: + - omu + - dependency + ccu_vducpd_intra1.virtual_link: + - ccu_vducpd_intra1 + - virtual_link + ccu_storage.dependency: + - ccu_storage + - dependency + lbu.local_storage: + - lbu + - local_storage + ccu.dependency: + - ccu + - dependency + intranet1.dependency: + - intranet1 + - dependency + hru.local_storage: + - hru + - local_storage + lbu2signalnet1.virtual_binding: + - lbu2signalnet1 + - virtual_binding + omu.virtual_storage: + - omu + - virtual_storage + hru.virtual_storage: + - hru + - virtual_storage + vpu_storage.dependency: + - vpu_storage + - dependency + hru2medianet2.virtual_link: + - hru2medianet2 + - virtual_link + intranet2.dependency: + - intranet2 + - dependency + hru2medianet1.virtual_link: + - hru2medianet1 + - virtual_link + ccu.virtual_storage: + - ccu + - virtual_storage diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCompute-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCompute-template.yml new file mode 100644 index 0000000..cf6ced5 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCompute-template.yml @@ -0,0 +1,169 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: 63007034-0330-4132-b51e-87c6a64065f3 + UUID: 9c6a1271-b443-48e3-8049-f5433db3d5f2 + name: VDU Compute + description: VDU Compute + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + tosca.nodes.nfv.VDU.Compute: + derived_from: tosca.nodes.Root + description: VDU Compute + properties: + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + name: + type: string + nfvi_constraints: + type: list + entry_schema: + type: string + descrption: + type: string + boot_order: + type: list + entry_schema: + type: string + capabilities: + scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + requirements: + - virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCpd-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCpd-template.yml new file mode 100644 index 0000000..d432f98 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduCpd-template.yml @@ -0,0 +1,57 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: a79633fa-0a7f-4858-9064-93d7f1bb8f88 + UUID: 04dcc383-181f-41c3-9ca0-49fa56278d2a + name: VDU Cpd + description: VDU Cpd + type: CP + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + tosca.nodes.nfv.VduCpd: + derived_from: tosca.nodes.Root + description: VDU Cpd + properties: + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + role: + type: string + bitrate_requirement: + type: integer + description: + type: string + layer_protocol: + type: string + address_data: + type: list + entry_schema: + type: tosca.datatype.nfv.AddressData + requirements: + - virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduVirtualstorage-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduVirtualstorage-template.yml new file mode 100644 index 0000000..f7415c7 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-VduVirtualstorage-template.yml @@ -0,0 +1,46 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: fabee67b-5538-453d-9dc0-41c5655c9105 + UUID: e852ea2a-3a48-4521-8ef7-f12682c75e86 + name: VDU VirtualStorage + description: VDU VirtualStorage + type: VFC + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + tosca.nodes.nfv.VDU.VirtualStorage: + derived_from: tosca.nodes.Root + description: VDU VirtualStorage + properties: + id: + type: string + size_of_storage: + type: string + rdma_enabled: + type: boolean + type_of_storage: + type: string + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-Vnfvirtuallinkdesc-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-Vnfvirtuallinkdesc-template.yml new file mode 100644 index 0000000..31cc3bf --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/resource-Vnfvirtuallinkdesc-template.yml @@ -0,0 +1,50 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: ffa0bcc5-7903-4332-adb9-3c44f577621e + UUID: ecb39b27-06c8-4337-9304-d6a88c8c0fae + name: VnfVirtualLinkDesc + description: VnfVirtualLinkDesc + type: VL + category: Generic + subcategory: Infrastructure + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + tosca.nodes.nfv.VnfVirtualLinkDesc: + derived_from: tosca.nodes.Root + description: VnfVirtualLinkDesc + properties: + vl_flavours: + type: map + entry_schema: + type: tosca.datatypes.nfv.VlFlavour + description: + type: string + test_access: + type: list + entry_schema: + type: string + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + capabilities: + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template-interface.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template-interface.yml new file mode 100644 index 0000000..80fb616 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template-interface.yml @@ -0,0 +1,2371 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +node_types: + org.openecomp.service.VimsV2: + derived_from: org.openecomp.resource.abstract.nodes.service + capabilities: + sbchuawei0.intranet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.cmu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + cscfnokia0.oam.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.hru.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscfnokia0.lb_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + cscfnokia0.oam.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + cscfnokia0.cscf.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.bsu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + cscfnokia0.oam_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.intranet2.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + cscfnokia0.lb.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.ccu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + oamnet.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + cscfnokia0.cscf.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.scu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.lbu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.omu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lbcpd_diameter.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.vpu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.vpu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.vpu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.cmu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.vpu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.vpu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.ccu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.lbu2signalnet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + servicenet.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.ccu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.omu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + cscfnokia0.lbcpd_om.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.vpu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.vpu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.bsu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscfnokia0.lb_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + cscfnokia0.oamcpd_om.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.upiru_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.hru.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + servicenet.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.cscf_internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.cscf.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.ccu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.lbu2signalnet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.lbu_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.cmu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + cscfnokia0.cscf.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.cscf.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.lbu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.vpu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.omu2managenet.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.cmu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.internal.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.omu_vducpd_intra1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru2medianet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru2medianet2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.ccu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lbcpd_sip.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu_storage.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.cscf.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.hru.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.upiru_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.cscf.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.bsu.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.bsu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.intranet1.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.vpu_storage.virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + cscfnokia0.cscf.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru.virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + requested_additional_capabilities: + type: map + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + sbchuawei0.hru.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.cmu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + cscfnokia0.cscf.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + sbchuawei0.scu.endpoint: + type: tosca.capabilities.Endpoint.Admin + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + secure: + type: boolean + default: true + required: false + cscfnokia0.oam.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.omu.scalable: + type: tosca.capabilities.Scalable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + max_instances: + type: integer + default: 1 + required: false + min_instances: + type: integer + default: 1 + required: false + default_instances: + type: integer + required: false + sbchuawei0.ccu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.vpu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.omu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + sbchuawei0.bsu.monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.internal.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.lbu.os: + type: tosca.capabilities.OperatingSystem + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + distribution: + type: string + required: false + type: + type: string + required: false + version: + type: version + required: false + architecture: + type: string + required: false + oamnet.virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.hru_vducpd_intra2.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.oam.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.vpu.binding: + type: tosca.capabilities.network.Bindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.scu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.ccu.host: + type: tosca.capabilities.Container + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + properties: + num_cpus: + type: integer + required: false + disk_size: + type: scalar-unit.size + required: false + cpu_frequency: + type: scalar-unit.frequency + required: false + mem_size: + type: scalar-unit.size + required: false + sbchuawei0.cmu.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + sbchuawei0.intranet1.feature: + type: tosca.capabilities.Node + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + cscfnokia0.lb.virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: + - 1 + - UNBOUNDED + valid_source_types: [ + ] + requirements: + - sbchuawei0.scu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.vpu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.cmu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.omu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.bsu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.intranet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.vpu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.intranet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.scu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.upiru_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.upiru_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.cmu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.bsu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.omu2managenet.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.ccu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.omu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.ccu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.cmu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.omu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.scu.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.bsu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu2signalnet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu_vducpd_intra1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu2signalnet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.ccu_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.lbu_vducpd_intra2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru2medianet1.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.hru2medianet2.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.cscf.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.oam_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.cscf_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lb_internal.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lbcpd_om.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lbcpd_diameter.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.oam.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.oamcpd_om.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lb_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lb.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.lbcpd_sip.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - cscfnokia0.oam_storage.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - servicenet.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - oamnet.dependency: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Node + node: tosca.nodes.Root + relationship: tosca.relationships.DependsOn + - sbchuawei0.vpu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.bsu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.lbu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.cmu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.ccu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.omu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.scu.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.hru.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - cscfnokia0.cscf.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - cscfnokia0.oam.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - cscfnokia0.lb.virtual_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualStorage + - sbchuawei0.hru_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.omu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.hru_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.scu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.upiru_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.upiru_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.omu2managenet.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.ccu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.cmu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.bsu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.lbu2signalnet1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.lbu_vducpd_intra1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.lbu2signalnet2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.lbu_vducpd_intra2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.hru2medianet1.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.hru2medianet2.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.oam_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.cscf_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.lb_internal.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.lbcpd_om.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.lbcpd_diameter.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.oamcpd_om.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - cscfnokia0.lbcpd_sip.virtual_link: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualLinkable + - sbchuawei0.vpu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.bsu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.lbu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.cmu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.ccu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.omu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.scu.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.hru.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - cscfnokia0.cscf.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - cscfnokia0.oam.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - cscfnokia0.lb.local_storage: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.Attachment + - sbchuawei0.hru_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.omu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.hru_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.scu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.upiru_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.upiru_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.omu2managenet.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.ccu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.cmu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.bsu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.lbu2signalnet1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.lbu_vducpd_intra1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.lbu2signalnet2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.lbu_vducpd_intra2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.hru2medianet1.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - sbchuawei0.hru2medianet2.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.oam_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.cscf_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.lb_internal.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.lbcpd_om.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.lbcpd_diameter.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.oamcpd_om.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable + - cscfnokia0.lbcpd_sip.virtual_binding: + occurrences: + - 0 + - UNBOUNDED + capability: tosca.capabilities.nfv.VirtualBindable diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template.yml b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template.yml new file mode 100644 index 0000000..e9ad518 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/Definitions/service-VimsV2-template.yml @@ -0,0 +1,1099 @@ +tosca_definitions_version: tosca_simple_yaml_1_1 +metadata: + invariantUUID: 19943f91-1dc1-4a8b-85bf-40a762f4803a + UUID: 3933006e-e87b-4a64-aedb-6358fcd67f0d + name: vIMS_v2 + description: vIMS v2 + type: Service + category: Network Service + serviceType: '' + serviceRole: '' + serviceEcompNaming: true + ecompGeneratedNaming: true + namingPolicy: '' + environmentContext: General_Revenue-Bearing +imports: +- nodes: + file: nodes.yml +- datatypes: + file: data.yml +- capabilities: + file: capabilities.yml +- relationships: + file: relationships.yml +- groups: + file: groups.yml +- policies: + file: policies.yml +- service-vIMS_v2-interface: + file: service-VimsV2-template-interface.yml +- resource-ext ZTE VL: + file: resource-ExtZteVl-template.yml +- resource-SBC Huawei: + file: resource-SbcHuawei-template.yml +- resource-SBC Huawei-interface: + file: resource-SbcHuawei-template-interface.yml +- resource-CSCF Nokia: + file: resource-CscfNokia-template.yml +- resource-CSCF Nokia-interface: + file: resource-CscfNokia-template-interface.yml +topology_template: + node_templates: + SBC Huawei 0: + type: org.openecomp.resource.vf.SbcHuawei + metadata: + invariantUUID: 459372a6-51a2-4f35-8193-b11ca47c2a24 + UUID: 4563686a-a63a-457d-8232-a3d07b314028 + customizationUUID: d0f6a032-c865-4c5f-957c-db72c5957b37 + version: '1.0' + name: SBC Huawei + description: SBC Huawei + type: VF + category: Generic + subcategory: Network Elements + resourceVendor: onap + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' + properties: + nf_naming: + ecomp_generated_naming: true + multi_stage_design: false + availability_zone_max_count: 1 + nf_type: huaweivnfmdriver + requirements: + - hru2medianet1.virtual_link: + capability: virtual_linkable + node: ServiceNet + - omu2managenet.virtual_link: + capability: virtual_linkable + node: OamNet + capabilities: + lbu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 4 + ccu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 16G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 2 + lbu.endpoint: + properties: + secure: true + bsu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 1 + omu.endpoint: + properties: + secure: true + vpu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 5 + hru.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 12G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 3 + ccu.endpoint: + properties: + secure: true + vpu.scalable: + properties: + max_instances: 1 + min_instances: 1 + hru.scalable: + properties: + max_instances: 1 + min_instances: 1 + cmu.endpoint: + properties: + secure: true + scu.scalable: + properties: + max_instances: 1 + min_instances: 1 + bsu.scalable: + properties: + max_instances: 1 + min_instances: 1 + lbu.scalable: + properties: + max_instances: 1 + min_instances: 1 + scu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 2 + omu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 16G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 4 + omu.scalable: + properties: + max_instances: 1 + min_instances: 1 + ccu.scalable: + properties: + max_instances: 1 + min_instances: 1 + cmu.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8G + requested_additional_capabilities: { + } + virtual_cpu: + num_virtual_cpu: 1 + scu.endpoint: + properties: + secure: true + vpu.endpoint: + properties: + secure: true + cmu.scalable: + properties: + max_instances: 1 + min_instances: 1 + hru.endpoint: + properties: + secure: true + bsu.endpoint: + properties: + secure: true + CSCF Nokia 0: + type: org.openecomp.resource.vf.CscfNokia + metadata: + invariantUUID: 2ed01e73-2a23-4717-a7fe-8d067ff6bb87 + UUID: 8612efa5-9df9-43ef-8e76-5a3cca97a15e + customizationUUID: b3cf8a5a-7fe9-435a-ab8e-d413f88a2f32 + version: '1.0' + name: CSCF Nokia + description: CSCF Nokia + type: VF + category: Generic + subcategory: Network Elements + resourceVendor: onap + resourceVendorRelease: '1.0' + resourceVendorModelNumber: '' + properties: + nf_naming: + ecomp_generated_naming: true + multi_stage_design: false + availability_zone_max_count: 1 + nf_type: NokiaSVNFM + requirements: + - lbcpd_om.virtual_link: + capability: virtual_linkable + node: OamNet + - lbcpd_sip.virtual_link: + capability: virtual_linkable + node: ServiceNet + capabilities: + cscf.endpoint: + properties: + secure: true + lb.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 32G + virtual_cpu: + num_virtual_cpu: 12 + oam.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 32G + virtual_cpu: + num_virtual_cpu: 4 + lb.endpoint: + properties: + secure: true + lb.scalable: + properties: + max_instances: 1 + min_instances: 1 + cscf.virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 24G + virtual_cpu: + num_virtual_cpu: 8 + oam.scalable: + properties: + max_instances: 1 + min_instances: 1 + oam.endpoint: + properties: + secure: true + cscf.scalable: + properties: + max_instances: 1 + min_instances: 1 + OamNet: + type: tosca.nodes.nfv.ext.zte.VL + metadata: + invariantUUID: d0d43bd0-4088-4b1c-9ac1-c6303d9f923a + UUID: 0f93d9d8-a815-4da9-820f-6cc77f670623 + customizationUUID: 4de4666a-a6bc-4a80-b1b9-f80014b4a847 + version: '2.0' + name: ext ZTE VL + description: Ext ZTE VL + type: VL + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + ServiceNet: + type: tosca.nodes.nfv.ext.zte.VL + metadata: + invariantUUID: d0d43bd0-4088-4b1c-9ac1-c6303d9f923a + UUID: 0f93d9d8-a815-4da9-820f-6cc77f670623 + customizationUUID: 0705b47f-ad55-4a25-be6d-d90748acb4dd + version: '2.0' + name: ext ZTE VL + description: Ext ZTE VL + type: VL + category: Generic + subcategory: Network Elements + resourceVendor: ATT (Tosca) + resourceVendorRelease: 1.0.0.wd03 + resourceVendorModelNumber: '' + substitution_mappings: + node_type: org.openecomp.service.VimsV2 + capabilities: + sbchuawei0.intranet2.feature: + - sbchuawei0 + - intranet2.feature + sbchuawei0.scu_storage.virtual_storage: + - sbchuawei0 + - scu_storage.virtual_storage + sbchuawei0.ccu_storage.virtual_storage: + - sbchuawei0 + - ccu_storage.virtual_storage + sbchuawei0.ccu.endpoint: + - sbchuawei0 + - ccu.endpoint + sbchuawei0.cmu.virtual_compute: + - sbchuawei0 + - cmu.virtual_compute + cscfnokia0.oam.endpoint: + - cscfnokia0 + - oam.endpoint + sbchuawei0.hru.scalable: + - sbchuawei0 + - hru.scalable + cscfnokia0.lb_storage.virtual_storage: + - cscfnokia0 + - lb_storage.virtual_storage + sbchuawei0.bsu.endpoint: + - sbchuawei0 + - bsu.endpoint + cscfnokia0.oam.host: + - cscfnokia0 + - oam.host + cscfnokia0.cscf.binding: + - cscfnokia0 + - cscf.binding + sbchuawei0.omu.virtual_compute: + - sbchuawei0 + - omu.virtual_compute + sbchuawei0.bsu_storage.virtual_storage: + - sbchuawei0 + - bsu_storage.virtual_storage + sbchuawei0.hru.monitoring_parameter: + - sbchuawei0 + - hru.monitoring_parameter + sbchuawei0.scu.virtual_compute: + - sbchuawei0 + - scu.virtual_compute + cscfnokia0.oam_storage.feature: + - cscfnokia0 + - oam_storage.feature + sbchuawei0.lbu.virtual_binding: + - sbchuawei0 + - lbu.virtual_binding + sbchuawei0.intranet2.virtual_linkable: + - sbchuawei0 + - intranet2.virtual_linkable + sbchuawei0.bsu.os: + - sbchuawei0 + - bsu.os + cscfnokia0.lb.endpoint: + - cscfnokia0 + - lb.endpoint + sbchuawei0.ccu_vducpd_intra1.feature: + - sbchuawei0 + - ccu_vducpd_intra1.feature + oamnet.feature: + - oamnet + - feature + cscfnokia0.lb.virtual_compute: + - cscfnokia0 + - lb.virtual_compute + cscfnokia0.cscf.os: + - cscfnokia0 + - cscf.os + sbchuawei0.scu_vducpd_intra1.feature: + - sbchuawei0 + - scu_vducpd_intra1.feature + cscfnokia0.oam.os: + - cscfnokia0 + - oam.os + sbchuawei0.lbu.endpoint: + - sbchuawei0 + - lbu.endpoint + sbchuawei0.omu.binding: + - sbchuawei0 + - omu.binding + sbchuawei0.hru_vducpd_intra1.feature: + - sbchuawei0 + - hru_vducpd_intra1.feature + cscfnokia0.lbcpd_diameter.feature: + - cscfnokia0 + - lbcpd_diameter.feature + sbchuawei0.vpu.monitoring_parameter: + - sbchuawei0 + - vpu.monitoring_parameter + sbchuawei0.bsu.binding: + - sbchuawei0 + - bsu.binding + cscfnokia0.lb.host: + - cscfnokia0 + - lb.host + sbchuawei0.vpu.scalable: + - sbchuawei0 + - vpu.scalable + sbchuawei0.vpu.virtual_binding: + - sbchuawei0 + - vpu.virtual_binding + sbchuawei0.scu.virtual_binding: + - sbchuawei0 + - scu.virtual_binding + sbchuawei0.lbu.feature: + - sbchuawei0 + - lbu.feature + sbchuawei0.cmu_vducpd_intra1.feature: + - sbchuawei0 + - cmu_vducpd_intra1.feature + sbchuawei0.hru.os: + - sbchuawei0 + - hru.os + sbchuawei0.cmu_storage.virtual_storage: + - sbchuawei0 + - cmu_storage.virtual_storage + sbchuawei0.ccu.scalable: + - sbchuawei0 + - ccu.scalable + sbchuawei0.vpu_storage.feature: + - sbchuawei0 + - vpu_storage.feature + sbchuawei0.vpu.virtual_compute: + - sbchuawei0 + - vpu.virtual_compute + sbchuawei0.ccu.virtual_binding: + - sbchuawei0 + - ccu.virtual_binding + sbchuawei0.cmu.binding: + - sbchuawei0 + - cmu.binding + sbchuawei0.lbu_vducpd_intra1.feature: + - sbchuawei0 + - lbu_vducpd_intra1.feature + cscfnokia0.oam_storage.virtual_storage: + - cscfnokia0 + - oam_storage.virtual_storage + sbchuawei0.ccu.os: + - sbchuawei0 + - ccu.os + sbchuawei0.lbu2signalnet2.feature: + - sbchuawei0 + - lbu2signalnet2.feature + cscfnokia0.lb_internal.feature: + - cscfnokia0 + - lb_internal.feature + servicenet.feature: + - servicenet + - feature + sbchuawei0.cmu.virtual_binding: + - sbchuawei0 + - cmu.virtual_binding + sbchuawei0.lbu.scalable: + - sbchuawei0 + - lbu.scalable + sbchuawei0.ccu_storage.feature: + - sbchuawei0 + - ccu_storage.feature + sbchuawei0.lbu_storage.virtual_storage: + - sbchuawei0 + - lbu_storage.virtual_storage + sbchuawei0.lbu_storage.feature: + - sbchuawei0 + - lbu_storage.feature + cscfnokia0.lb.scalable: + - cscfnokia0 + - lb.scalable + sbchuawei0.omu_storage.virtual_storage: + - sbchuawei0 + - omu_storage.virtual_storage + sbchuawei0.omu.host: + - sbchuawei0 + - omu.host + cscfnokia0.lbcpd_om.feature: + - cscfnokia0 + - lbcpd_om.feature + cscfnokia0.oam.binding: + - cscfnokia0 + - oam.binding + sbchuawei0.cmu.host: + - sbchuawei0 + - cmu.host + sbchuawei0.vpu.endpoint: + - sbchuawei0 + - vpu.endpoint + sbchuawei0.vpu.feature: + - sbchuawei0 + - vpu.feature + sbchuawei0.lbu.virtual_compute: + - sbchuawei0 + - lbu.virtual_compute + sbchuawei0.bsu_vducpd_intra1.feature: + - sbchuawei0 + - bsu_vducpd_intra1.feature + cscfnokia0.lb.binding: + - cscfnokia0 + - lb.binding + sbchuawei0.scu.scalable: + - sbchuawei0 + - scu.scalable + cscfnokia0.lb_storage.feature: + - cscfnokia0 + - lb_storage.feature + sbchuawei0.scu.os: + - sbchuawei0 + - scu.os + cscfnokia0.oamcpd_om.feature: + - cscfnokia0 + - oamcpd_om.feature + cscfnokia0.oam_internal.feature: + - cscfnokia0 + - oam_internal.feature + sbchuawei0.ccu.virtual_compute: + - sbchuawei0 + - ccu.virtual_compute + sbchuawei0.upiru_vducpd_intra1.feature: + - sbchuawei0 + - upiru_vducpd_intra1.feature + sbchuawei0.omu.virtual_binding: + - sbchuawei0 + - omu.virtual_binding + sbchuawei0.bsu_storage.feature: + - sbchuawei0 + - bsu_storage.feature + cscfnokia0.oam.monitoring_parameter: + - cscfnokia0 + - oam.monitoring_parameter + sbchuawei0.lbu.host: + - sbchuawei0 + - lbu.host + sbchuawei0.hru.virtual_binding: + - sbchuawei0 + - hru.virtual_binding + sbchuawei0.omu_storage.feature: + - sbchuawei0 + - omu_storage.feature + servicenet.virtual_linkable: + - servicenet + - virtual_linkable + sbchuawei0.hru_storage.feature: + - sbchuawei0 + - hru_storage.feature + cscfnokia0.cscf_internal.feature: + - cscfnokia0 + - cscf_internal.feature + cscfnokia0.cscf.host: + - cscfnokia0 + - cscf.host + sbchuawei0.ccu.binding: + - sbchuawei0 + - ccu.binding + cscfnokia0.lb.os: + - cscfnokia0 + - lb.os + sbchuawei0.lbu2signalnet1.feature: + - sbchuawei0 + - lbu2signalnet1.feature + sbchuawei0.cmu.os: + - sbchuawei0 + - cmu.os + sbchuawei0.lbu_vducpd_intra2.feature: + - sbchuawei0 + - lbu_vducpd_intra2.feature + sbchuawei0.bsu.feature: + - sbchuawei0 + - bsu.feature + sbchuawei0.bsu.host: + - sbchuawei0 + - bsu.host + sbchuawei0.cmu_storage.feature: + - sbchuawei0 + - cmu_storage.feature + sbchuawei0.scu.monitoring_parameter: + - sbchuawei0 + - scu.monitoring_parameter + sbchuawei0.cmu.endpoint: + - sbchuawei0 + - cmu.endpoint + cscfnokia0.cscf.feature: + - cscfnokia0 + - cscf.feature + cscfnokia0.cscf.scalable: + - cscfnokia0 + - cscf.scalable + sbchuawei0.lbu.binding: + - sbchuawei0 + - lbu.binding + cscfnokia0.oam.scalable: + - cscfnokia0 + - oam.scalable + sbchuawei0.vpu.host: + - sbchuawei0 + - vpu.host + sbchuawei0.omu2managenet.feature: + - sbchuawei0 + - omu2managenet.feature + sbchuawei0.scu.feature: + - sbchuawei0 + - scu.feature + sbchuawei0.lbu.monitoring_parameter: + - sbchuawei0 + - lbu.monitoring_parameter + sbchuawei0.cmu.monitoring_parameter: + - sbchuawei0 + - cmu.monitoring_parameter + cscfnokia0.internal.feature: + - cscfnokia0 + - internal.feature + sbchuawei0.scu.binding: + - sbchuawei0 + - scu.binding + sbchuawei0.hru.binding: + - sbchuawei0 + - hru.binding + cscfnokia0.oam.virtual_compute: + - cscfnokia0 + - oam.virtual_compute + sbchuawei0.omu_vducpd_intra1.feature: + - sbchuawei0 + - omu_vducpd_intra1.feature + sbchuawei0.hru.feature: + - sbchuawei0 + - hru.feature + sbchuawei0.hru2medianet1.feature: + - sbchuawei0 + - hru2medianet1.feature + sbchuawei0.bsu.virtual_binding: + - sbchuawei0 + - bsu.virtual_binding + sbchuawei0.omu.feature: + - sbchuawei0 + - omu.feature + sbchuawei0.hru2medianet2.feature: + - sbchuawei0 + - hru2medianet2.feature + sbchuawei0.hru_storage.virtual_storage: + - sbchuawei0 + - hru_storage.virtual_storage + sbchuawei0.ccu.monitoring_parameter: + - sbchuawei0 + - ccu.monitoring_parameter + cscfnokia0.lbcpd_sip.feature: + - cscfnokia0 + - lbcpd_sip.feature + sbchuawei0.scu_storage.feature: + - sbchuawei0 + - scu_storage.feature + sbchuawei0.omu.monitoring_parameter: + - sbchuawei0 + - omu.monitoring_parameter + cscfnokia0.cscf.virtual_compute: + - cscfnokia0 + - cscf.virtual_compute + sbchuawei0.hru.host: + - sbchuawei0 + - hru.host + sbchuawei0.upiru_vducpd_intra2.feature: + - sbchuawei0 + - upiru_vducpd_intra2.feature + cscfnokia0.cscf.monitoring_parameter: + - cscfnokia0 + - cscf.monitoring_parameter + cscfnokia0.lb.monitoring_parameter: + - cscfnokia0 + - lb.monitoring_parameter + sbchuawei0.bsu.virtual_compute: + - sbchuawei0 + - bsu.virtual_compute + sbchuawei0.bsu.scalable: + - sbchuawei0 + - bsu.scalable + sbchuawei0.intranet1.virtual_linkable: + - sbchuawei0 + - intranet1.virtual_linkable + sbchuawei0.vpu_storage.virtual_storage: + - sbchuawei0 + - vpu_storage.virtual_storage + sbchuawei0.omu.endpoint: + - sbchuawei0 + - omu.endpoint + cscfnokia0.cscf.virtual_binding: + - cscfnokia0 + - cscf.virtual_binding + sbchuawei0.hru.virtual_compute: + - sbchuawei0 + - hru.virtual_compute + sbchuawei0.hru.endpoint: + - sbchuawei0 + - hru.endpoint + sbchuawei0.cmu.scalable: + - sbchuawei0 + - cmu.scalable + cscfnokia0.cscf.endpoint: + - cscfnokia0 + - cscf.endpoint + sbchuawei0.scu.endpoint: + - sbchuawei0 + - scu.endpoint + cscfnokia0.oam.feature: + - cscfnokia0 + - oam.feature + sbchuawei0.omu.scalable: + - sbchuawei0 + - omu.scalable + sbchuawei0.ccu.feature: + - sbchuawei0 + - ccu.feature + sbchuawei0.vpu.os: + - sbchuawei0 + - vpu.os + sbchuawei0.omu.os: + - sbchuawei0 + - omu.os + sbchuawei0.bsu.monitoring_parameter: + - sbchuawei0 + - bsu.monitoring_parameter + cscfnokia0.internal.virtual_linkable: + - cscfnokia0 + - internal.virtual_linkable + sbchuawei0.lbu.os: + - sbchuawei0 + - lbu.os + oamnet.virtual_linkable: + - oamnet + - virtual_linkable + sbchuawei0.hru_vducpd_intra2.feature: + - sbchuawei0 + - hru_vducpd_intra2.feature + cscfnokia0.lb.feature: + - cscfnokia0 + - lb.feature + cscfnokia0.oam.virtual_binding: + - cscfnokia0 + - oam.virtual_binding + sbchuawei0.vpu.binding: + - sbchuawei0 + - vpu.binding + sbchuawei0.scu.host: + - sbchuawei0 + - scu.host + sbchuawei0.ccu.host: + - sbchuawei0 + - ccu.host + sbchuawei0.cmu.feature: + - sbchuawei0 + - cmu.feature + sbchuawei0.intranet1.feature: + - sbchuawei0 + - intranet1.feature + cscfnokia0.lb.virtual_binding: + - cscfnokia0 + - lb.virtual_binding + requirements: + sbchuawei0.bsu.local_storage: + - sbchuawei0 + - bsu.local_storage + sbchuawei0.omu_vducpd_intra1.dependency: + - sbchuawei0 + - omu_vducpd_intra1.dependency + sbchuawei0.lbu2signalnet1.virtual_link: + - sbchuawei0 + - lbu2signalnet1.virtual_link + sbchuawei0.omu_storage.dependency: + - sbchuawei0 + - omu_storage.dependency + sbchuawei0.hru2medianet2.dependency: + - sbchuawei0 + - hru2medianet2.dependency + sbchuawei0.hru_vducpd_intra2.dependency: + - sbchuawei0 + - hru_vducpd_intra2.dependency + sbchuawei0.omu2managenet.dependency: + - sbchuawei0 + - omu2managenet.dependency + sbchuawei0.omu_vducpd_intra1.virtual_link: + - sbchuawei0 + - omu_vducpd_intra1.virtual_link + sbchuawei0.scu_vducpd_intra1.virtual_link: + - sbchuawei0 + - scu_vducpd_intra1.virtual_link + sbchuawei0.scu.local_storage: + - sbchuawei0 + - scu.local_storage + sbchuawei0.hru_vducpd_intra1.virtual_binding: + - sbchuawei0 + - hru_vducpd_intra1.virtual_binding + sbchuawei0.hru_storage.dependency: + - sbchuawei0 + - hru_storage.dependency + sbchuawei0.upiru_vducpd_intra2.dependency: + - sbchuawei0 + - upiru_vducpd_intra2.dependency + sbchuawei0.lbu2signalnet2.dependency: + - sbchuawei0 + - lbu2signalnet2.dependency + cscfnokia0.lb_internal.virtual_binding: + - cscfnokia0 + - lb_internal.virtual_binding + cscfnokia0.oam_internal.dependency: + - cscfnokia0 + - oam_internal.dependency + sbchuawei0.lbu_vducpd_intra2.virtual_binding: + - sbchuawei0 + - lbu_vducpd_intra2.virtual_binding + sbchuawei0.lbu_vducpd_intra1.virtual_link: + - sbchuawei0 + - lbu_vducpd_intra1.virtual_link + sbchuawei0.lbu_vducpd_intra2.virtual_link: + - sbchuawei0 + - lbu_vducpd_intra2.virtual_link + sbchuawei0.bsu_vducpd_intra1.virtual_link: + - sbchuawei0 + - bsu_vducpd_intra1.virtual_link + sbchuawei0.lbu.virtual_storage: + - sbchuawei0 + - lbu.virtual_storage + sbchuawei0.bsu.dependency: + - sbchuawei0 + - bsu.dependency + cscfnokia0.lbcpd_om.virtual_link: + - cscfnokia0 + - lbcpd_om.virtual_link + sbchuawei0.omu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - omu_vducpd_intra1.virtual_binding + cscfnokia0.oamcpd_om.dependency: + - cscfnokia0 + - oamcpd_om.dependency + cscfnokia0.oam_storage.dependency: + - cscfnokia0 + - oam_storage.dependency + cscfnokia0.lbcpd_om.virtual_binding: + - cscfnokia0 + - lbcpd_om.virtual_binding + sbchuawei0.omu.virtual_storage: + - sbchuawei0 + - omu.virtual_storage + sbchuawei0.scu.dependency: + - sbchuawei0 + - scu.dependency + sbchuawei0.bsu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - bsu_vducpd_intra1.virtual_binding + sbchuawei0.hru.local_storage: + - sbchuawei0 + - hru.local_storage + sbchuawei0.cmu.virtual_storage: + - sbchuawei0 + - cmu.virtual_storage + sbchuawei0.lbu2signalnet2.virtual_link: + - sbchuawei0 + - lbu2signalnet2.virtual_link + sbchuawei0.hru2medianet1.virtual_link: + - sbchuawei0 + - hru2medianet1.virtual_link + cscfnokia0.lb_internal.dependency: + - cscfnokia0 + - lb_internal.dependency + servicenet.dependency: + - servicenet + - dependency + cscfnokia0.cscf_internal.virtual_link: + - cscfnokia0 + - cscf_internal.virtual_link + sbchuawei0.hru2medianet1.virtual_binding: + - sbchuawei0 + - hru2medianet1.virtual_binding + sbchuawei0.scu.virtual_storage: + - sbchuawei0 + - scu.virtual_storage + sbchuawei0.bsu_vducpd_intra1.dependency: + - sbchuawei0 + - bsu_vducpd_intra1.dependency + cscfnokia0.oam.local_storage: + - cscfnokia0 + - oam.local_storage + sbchuawei0.bsu_storage.dependency: + - sbchuawei0 + - bsu_storage.dependency + sbchuawei0.ccu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - ccu_vducpd_intra1.virtual_binding + sbchuawei0.ccu.dependency: + - sbchuawei0 + - ccu.dependency + sbchuawei0.hru2medianet1.dependency: + - sbchuawei0 + - hru2medianet1.dependency + sbchuawei0.scu_vducpd_intra1.dependency: + - sbchuawei0 + - scu_vducpd_intra1.dependency + sbchuawei0.omu.dependency: + - sbchuawei0 + - omu.dependency + sbchuawei0.hru_vducpd_intra1.dependency: + - sbchuawei0 + - hru_vducpd_intra1.dependency + sbchuawei0.ccu_vducpd_intra1.dependency: + - sbchuawei0 + - ccu_vducpd_intra1.dependency + cscfnokia0.cscf.virtual_storage: + - cscfnokia0 + - cscf.virtual_storage + sbchuawei0.ccu.local_storage: + - sbchuawei0 + - ccu.local_storage + cscfnokia0.lbcpd_diameter.virtual_link: + - cscfnokia0 + - lbcpd_diameter.virtual_link + cscfnokia0.lbcpd_diameter.virtual_binding: + - cscfnokia0 + - lbcpd_diameter.virtual_binding + sbchuawei0.vpu.virtual_storage: + - sbchuawei0 + - vpu.virtual_storage + cscfnokia0.oam_internal.virtual_link: + - cscfnokia0 + - oam_internal.virtual_link + oamnet.dependency: + - oamnet + - dependency + cscfnokia0.cscf_internal.virtual_binding: + - cscfnokia0 + - cscf_internal.virtual_binding + cscfnokia0.internal.dependency: + - cscfnokia0 + - internal.dependency + sbchuawei0.cmu.local_storage: + - sbchuawei0 + - cmu.local_storage + cscfnokia0.lbcpd_sip.virtual_binding: + - cscfnokia0 + - lbcpd_sip.virtual_binding + cscfnokia0.lb_storage.dependency: + - cscfnokia0 + - lb_storage.dependency + sbchuawei0.bsu.virtual_storage: + - sbchuawei0 + - bsu.virtual_storage + sbchuawei0.omu2managenet.virtual_binding: + - sbchuawei0 + - omu2managenet.virtual_binding + sbchuawei0.upiru_vducpd_intra2.virtual_link: + - sbchuawei0 + - upiru_vducpd_intra2.virtual_link + cscfnokia0.lb.dependency: + - cscfnokia0 + - lb.dependency + sbchuawei0.omu2managenet.virtual_link: + - sbchuawei0 + - omu2managenet.virtual_link + sbchuawei0.lbu_vducpd_intra1.dependency: + - sbchuawei0 + - lbu_vducpd_intra1.dependency + cscfnokia0.oamcpd_om.virtual_binding: + - cscfnokia0 + - oamcpd_om.virtual_binding + sbchuawei0.lbu.dependency: + - sbchuawei0 + - lbu.dependency + cscfnokia0.oamcpd_om.virtual_link: + - cscfnokia0 + - oamcpd_om.virtual_link + sbchuawei0.hru.dependency: + - sbchuawei0 + - hru.dependency + sbchuawei0.lbu2signalnet2.virtual_binding: + - sbchuawei0 + - lbu2signalnet2.virtual_binding + sbchuawei0.scu_storage.dependency: + - sbchuawei0 + - scu_storage.dependency + sbchuawei0.cmu.dependency: + - sbchuawei0 + - cmu.dependency + sbchuawei0.hru_vducpd_intra1.virtual_link: + - sbchuawei0 + - hru_vducpd_intra1.virtual_link + sbchuawei0.hru.virtual_storage: + - sbchuawei0 + - hru.virtual_storage + cscfnokia0.lbcpd_sip.virtual_link: + - cscfnokia0 + - lbcpd_sip.virtual_link + sbchuawei0.upiru_vducpd_intra1.dependency: + - sbchuawei0 + - upiru_vducpd_intra1.dependency + sbchuawei0.cmu_vducpd_intra1.dependency: + - sbchuawei0 + - cmu_vducpd_intra1.dependency + cscfnokia0.lbcpd_diameter.dependency: + - cscfnokia0 + - lbcpd_diameter.dependency + sbchuawei0.ccu.virtual_storage: + - sbchuawei0 + - ccu.virtual_storage + sbchuawei0.hru_vducpd_intra2.virtual_binding: + - sbchuawei0 + - hru_vducpd_intra2.virtual_binding + cscfnokia0.lb.local_storage: + - cscfnokia0 + - lb.local_storage + sbchuawei0.upiru_vducpd_intra1.virtual_binding: + - sbchuawei0 + - upiru_vducpd_intra1.virtual_binding + cscfnokia0.oam.virtual_storage: + - cscfnokia0 + - oam.virtual_storage + sbchuawei0.hru2medianet2.virtual_binding: + - sbchuawei0 + - hru2medianet2.virtual_binding + sbchuawei0.lbu_storage.dependency: + - sbchuawei0 + - lbu_storage.dependency + sbchuawei0.lbu.local_storage: + - sbchuawei0 + - lbu.local_storage + sbchuawei0.lbu2signalnet1.virtual_binding: + - sbchuawei0 + - lbu2signalnet1.virtual_binding + sbchuawei0.ccu_vducpd_intra1.virtual_link: + - sbchuawei0 + - ccu_vducpd_intra1.virtual_link + sbchuawei0.intranet2.dependency: + - sbchuawei0 + - intranet2.dependency + cscfnokia0.oam.dependency: + - cscfnokia0 + - oam.dependency + sbchuawei0.lbu2signalnet1.dependency: + - sbchuawei0 + - lbu2signalnet1.dependency + cscfnokia0.cscf.dependency: + - cscfnokia0 + - cscf.dependency + sbchuawei0.lbu_vducpd_intra2.dependency: + - sbchuawei0 + - lbu_vducpd_intra2.dependency + sbchuawei0.cmu_vducpd_intra1.virtual_link: + - sbchuawei0 + - cmu_vducpd_intra1.virtual_link + sbchuawei0.upiru_vducpd_intra2.virtual_binding: + - sbchuawei0 + - upiru_vducpd_intra2.virtual_binding + sbchuawei0.hru_vducpd_intra2.virtual_link: + - sbchuawei0 + - hru_vducpd_intra2.virtual_link + sbchuawei0.upiru_vducpd_intra1.virtual_link: + - sbchuawei0 + - upiru_vducpd_intra1.virtual_link + cscfnokia0.lb.virtual_storage: + - cscfnokia0 + - lb.virtual_storage + sbchuawei0.hru2medianet2.virtual_link: + - sbchuawei0 + - hru2medianet2.virtual_link + sbchuawei0.intranet1.dependency: + - sbchuawei0 + - intranet1.dependency + sbchuawei0.cmu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - cmu_vducpd_intra1.virtual_binding + cscfnokia0.cscf_internal.dependency: + - cscfnokia0 + - cscf_internal.dependency + sbchuawei0.scu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - scu_vducpd_intra1.virtual_binding + sbchuawei0.omu.local_storage: + - sbchuawei0 + - omu.local_storage + sbchuawei0.vpu.local_storage: + - sbchuawei0 + - vpu.local_storage + cscfnokia0.lbcpd_sip.dependency: + - cscfnokia0 + - lbcpd_sip.dependency + cscfnokia0.lb_internal.virtual_link: + - cscfnokia0 + - lb_internal.virtual_link + sbchuawei0.vpu_storage.dependency: + - sbchuawei0 + - vpu_storage.dependency + sbchuawei0.lbu_vducpd_intra1.virtual_binding: + - sbchuawei0 + - lbu_vducpd_intra1.virtual_binding + cscfnokia0.lbcpd_om.dependency: + - cscfnokia0 + - lbcpd_om.dependency + sbchuawei0.vpu.dependency: + - sbchuawei0 + - vpu.dependency + sbchuawei0.ccu_storage.dependency: + - sbchuawei0 + - ccu_storage.dependency + cscfnokia0.oam_internal.virtual_binding: + - cscfnokia0 + - oam_internal.virtual_binding + sbchuawei0.cmu_storage.dependency: + - sbchuawei0 + - cmu_storage.dependency + cscfnokia0.cscf.local_storage: + - cscfnokia0 + - cscf.local_storage diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..71ba636 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,7 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: Carlos Santana +Entry-Definitions: Definitions/service-VimsV2-template.yml + +Name: csar.meta +Content-Type: text/plain diff --git a/catalog/pub/utils/toscaparser/testdata/ns/service-vims/csar.meta b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/csar.meta new file mode 100644 index 0000000..9858cb6 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/ns/service-vims/csar.meta @@ -0,0 +1,2 @@ +SDC-TOSCA-Meta-File-Version: 1.0 +SDC-TOSCA-Definitions-Version: 5.0 diff --git a/catalog/pub/utils/toscaparser/testdata/pnf/ran-du.csar b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du.csar deleted file mode 100644 index 45168a96465d3d8feb46e00361664f075cc7e122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2688 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 diff --git a/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..24cb268 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ZTE +Entry-Definitions: ran-du.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/ran-du.yaml b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/ran-du.yaml new file mode 100644 index 0000000..858602a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/ran-du.yaml @@ -0,0 +1,65 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: RAN_DU + template_version: "1.0" + template_author: ZTE-0 + descriptor_id: pnf_test_01 +description: RAN_DU + +imports: + - type_definition.yaml + +node_types: + onap.ran.du: + derived_from: tosca.nodes.nfv.PNF + properties: + descriptor_id: + type: string + required: true + default: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: + type: string + required: true + default: ZTE + version: + type: string + required: true + default: v1.1.0 + descriptor_invariant_id: + type: string + required: true + default: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + name: + type: string + required: true + default: ZTE-RAN-DU + function_description: + type: string + required: true + default: RAN DU + config_script: + type: string + required: false + +topology_template: + substitution_mappings: + node_type: onap.ran.du + properties: + descriptor_id: 1 + provider: ZTE + version: 1.1.0 + descriptor_invariant_id: 1 + name: 1 + function_description: 1 + config_data: "/artifacts/config_data.conf" + + requirements: + - virtual_link: [ extCp2Du, virtual_link ] + - virtual_link: [ extCp2Ru, virtual_link ] + + node_templates: + extCp2Ru: + type: tosca.nodes.nfv.PnfExtPort + extCp2CU: + type: tosca.nodes.nfv.PnfExtPort + diff --git a/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/type_definition.yaml b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/type_definition.yaml new file mode 100644 index 0000000..e3ade54 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/pnf/ran-du/type_definition.yaml @@ -0,0 +1,251 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 + +capability_types: + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + +data_types: + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.ServiceAvailability: + derived_from: tosca.datatypes.Root + description: service availability + properties: + Level: + type: string + description: service availability levels + required: true + constraints: + - valid_values: [ Level1, Level2,Level3 ] + +node_types: + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: + type: string # GUID + required: true + descriptor_version: + type: string + required: true + provider: + type: string + required: true + product_name: + type: string + required: true + software_version: + type: string + required: true + product_info_name: + type: string + required: false + product_info_description: + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + tosca.nodes.nfv.PNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: + type: string + required: true + provider: + type: string + required: true + version: + type: string + required: true + descriptor_invariant_id: + type: string + required: true + name: + type: string + required: true + function_description: + type: string + required: true + #geographical_location_info: + # type: TBD + # required: true + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + + tosca.nodes.nfv.PnfExtPort: + derived_from: tosca.nodes.Root + + tosca.nodes.nfv.NsVirtualLink: + derived_from: tosca.nodes.Root + description: node definition of Virtual Links + properties: + provider: + type: string + required: false + version: + type: string + required: true + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + service_availability: + type: tosca.datatypes.nfv.ServiceAvailability + required: false + capabilities: + VirtualLinkable: + type: tosca.capabilities.nfv.VirtualLinkable + tosca.nodes.nfv.NS: + derived_from: tosca.nodes.Root + properties: + ns_id: + type: string + required: true + designer: + type: string + required: true + version: + type: string + required: true + name: + type: string + required: true + invariant_id: + type: string + required: true + capabilities: + #monitoring_parameter: + # modelled as ad hoc capabilities in VNF node template + requirements: + - virtual_link: + capability: + tosca.capabilities.nfv.VirtualLinkable + relationship: + tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.NsVirtualLink + occurrences: [ 0, UNBOUNDED ] + +relationship_types: + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC.csar deleted file mode 100644 index 921eafde6c60ea499e747cbec3fa8e97ddaefc2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11516 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 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..1f3426f --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,192 @@ +tosca_definitions_version: tosca_simple_profile_yaml_1_1 +description: the VNFD of Huawei SBC + +imports: + - onap_dm.yaml + +node_types: + org.openecomp.resource.vfc.Huawei.SBC.18.1: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: + - valid_values: + - b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: + - valid_values: + - Huawei + default: Huawei + product_name: + type: string + constraints: + - valid_values: + - SBC + default: SBC + software_version: + type: string + constraints: + - valid_values: + - 18 + default: 18 + descriptor_version: + type: string + constraints: + - valid_values: + - 1.0 + default: 1.0 + flavour_id: + type: string + constraints: + - valid_values: + - simple + default: simple +topology_template: + node_templates: + SBC_VNF: + type: org.openecomp.resource.vfc.Huawei.SBC.18.1 + properties: + descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + provider: Huawei + product_name: SBC + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: LBU_ACCESS + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: HRU_ACCESS + + LBU: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: LBU + description: LBU + configurable_properties: + test: {"additional_vnfc_configurable_properties":{"aaa":"1"}} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 4 + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8096 MB + virtual_cpu: + cpu_architecture: x86 + num_virtual_cpu: 2 + virtual_cpu_clock: 1800 MHz + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + node: LBU_Storage + + LBU_Storage: + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: LBU_Storage + size_of_storage: 4 GB + rdma_enabled: true + + LBU_ACCESS_CP: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ ipv4 ] + role: leaf + description: External connection point to access LBU_access + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: LBU_ACCESS + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + node: LBU + + LBU_ACCESS: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: [ ipv4 ] + flow_pattern: mesh + description: access network for LBU + vl_profile: + cidr: 192.168.1.24/24 + networkName: LBU_ACCESS + startIp: 192.168.1.1 + endIp: 192.168.1.10 + gatewayIp: 192.168.1.0 + segmentationId: 4000 + physicalNetwork: physicalNetwork + networkType: VLAN + dhcpEnabled: true + vlanTransparent: false + + HRU: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: HRU + description: HRU + configurable_properties: + test: {"additional_vnfc_configurable_properties":{"bbb":"1"}} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 4 + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8096 MB + virtual_cpu: + cpu_architecture: x86 + num_virtual_cpu: 3 + virtual_cpu_clock: 1800 MHz + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + node: HRU_Storage + + HRU_Storage: + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: HRU_Storage + size_of_storage: 12 GB + rdma_enabled: true + + HRU_ACCESS_CP: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ ipv4 ] + role: leaf + description: External connection point to access HRU_access + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: HRU_ACCESS + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + node: HRU + + HRU_ACCESS: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: [ ipv4 ] + flow_pattern: mesh + description: access network for HRU + vl_profile: + cidr: 192.168.1.24/24 + networkName: HRU_ACCESS + startIp: 192.168.2.1 + endIp: 192.168.2.10 + gatewayIp: 192.168.2.0 + segmentationId: 3000 + physicalNetwork: physicalNetwork + networkType: VLAN + dhcpEnabled: true + vlanTransparent: false \ No newline at end of file diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/onap_dm.yaml new file mode 100644 index 0000000..716c5cb --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/Definitions/onap_dm.yaml @@ -0,0 +1,826 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: list + entry_schema: + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.mf new file mode 100644 index 0000000..92bb5a7 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vSBC + vnf_provider_id: Huawei + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.16T10:00+03:00 + +source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.yaml new file mode 100644 index 0000000..8f699ac --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/MainServiceTemplate.yaml @@ -0,0 +1,189 @@ +tosca_definitions_version: tosca_simple_profile_yaml_1_1 +description: the VNFD of Huawei SBC + +node_types: + org.openecomp.resource.vfc.Huawei.SBC.18.1: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: + - valid_values: + - b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: + - valid_values: + - Huawei + default: Huawei + product_name: + type: string + constraints: + - valid_values: + - SBC + default: SBC + software_version: + type: string + constraints: + - valid_values: + - 18 + default: 18 + descriptor_version: + type: string + constraints: + - valid_values: + - 1.0 + default: 1.0 + flavour_id: + type: string + constraints: + - valid_values: + - simple + default: simple +topology_template: + node_templates: + SBC_VNF: + type: org.openecomp.resource.vfc.Huawei.SBC.18.1 + properties: + descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 + provider: Huawei + product_name: SBC + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: LBU_ACCESS + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: HRU_ACCESS + + LBU: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: LBU + description: LBU + configurable_properties: + test: {"additional_vnfc_configurable_properties":{"aaa":"1"}} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 4 + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8096 MB + virtual_cpu: + cpu_architecture: x86 + num_virtual_cpu: 2 + virtual_cpu_clock: 1800 MHz + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + node: LBU_Storage + + LBU_Storage: + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: LBU_Storage + size_of_storage: 4 GB + rdma_enabled: true + + LBU_ACCESS_CP: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ ipv4 ] + role: leaf + description: External connection point to access LBU_access + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: LBU_ACCESS + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + node: LBU + + LBU_ACCESS: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: [ ipv4 ] + flow_pattern: mesh + description: access network for LBU + vl_profile: + cidr: 192.168.1.24/24 + networkName: LBU_ACCESS + startIp: 192.168.1.1 + endIp: 192.168.1.10 + gatewayIp: 192.168.1.0 + segmentationId: 4000 + physicalNetwork: physicalNetwork + networkType: VLAN + dhcpEnabled: true + vlanTransparent: false + + HRU: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: HRU + description: HRU + configurable_properties: + test: {"additional_vnfc_configurable_properties":{"bbb":"1"}} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 4 + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 8096 MB + virtual_cpu: + cpu_architecture: x86 + num_virtual_cpu: 3 + virtual_cpu_clock: 1800 MHz + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + node: HRU_Storage + + HRU_Storage: + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: HRU_Storage + size_of_storage: 12 GB + rdma_enabled: true + + HRU_ACCESS_CP: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ ipv4 ] + role: leaf + description: External connection point to access HRU_access + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + node: HRU_ACCESS + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + node: HRU + + HRU_ACCESS: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: [ ipv4 ] + flow_pattern: mesh + description: access network for HRU + vl_profile: + cidr: 192.168.1.24/24 + networkName: HRU_ACCESS + startIp: 192.168.2.1 + endIp: 192.168.2.10 + gatewayIp: 192.168.2.0 + segmentationId: 3000 + physicalNetwork: physicalNetwork + networkType: VLAN + dhcpEnabled: true + vlanTransparent: false \ No newline at end of file diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..1111aa4 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-Version: 1.0 +CSAR-Version: 1.0 +Created-By: Test +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/onap_dm.yaml new file mode 100644 index 0000000..716c5cb --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vSBC/onap_dm.yaml @@ -0,0 +1,826 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: list + entry_schema: + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra.csar deleted file mode 100644 index 5c9fbcf009833eb9cae41140bfb3fa6863eafc49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15716 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 JNv_}S{vY
&MC diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/images/ubuntu_16.04 b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/images/ubuntu_16.04 new file mode 100644 index 0000000..e69de29 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Artifacts/keys/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..0d24d8c --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,764 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_infra + template_version: "1.0" + template_author: onap +description: vCPE_infra + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_infra: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-1111-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-1111-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_infra ] ] + default: vcpe_infra + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_infra +# requirements: +# virtual_link: [ Cp_vaaa_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vaaa_onap_private, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vdns_public, virtual_link ] +# virtual_link: [ Cp_vdns_onap_private, virtual_link ] +# virtual_link: [ Cp_vdhcp_public, virtual_link ] +# virtual_link: [ Cp_vdhcp_onap_private, virtual_link ] +# virtual_link: [ Cp_vweb_public, virtual_link ] +# virtual_link: [ Cp_vweb_onap_private, virtual_link ] + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mr_ip_addr: + type: string + description: message router ip that for vDHCP configuration + default: 10.0.11.1 + mr_ip_port: + type: integer + # label: Message Router Port + description: IP port of the Message Router that for vDHCP configuration + default: 80 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + cpe_signal_net_id: + type: string + description: cpe signal net name + default: zdfw1cpe01_private + cpe_signal_net_cidr: + type: string + description: cpe signal net cidr + default: 10.4.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vdhcp_name_0: + type: string + description: vdu vdhcp_0 name + default: zdcpe1cpe01dhcp01 + vdhcp_private_ip_0: + type: string + description: ip of vdhcp port to cpe signal net + default: 10.4.0.1 + vdhcp_private_ip_1: + type: string + description: ip of vdhcp port to onap oam net + default: 10.0.101.1 + vaaa_name_0: + type: string + description: vdu vaaa_0 name + default: zdcpe1cpe01aaa01 + vaaa_private_ip_0: + type: string + description: ip of vaaa port to cpe signal net + default: 10.4.0.4 + vaaa_private_ip_1: + type: string + description: ip of vaaa port to onap oam net + default: 10.0.101.2 + vdns_name_0: + type: string + description: vdu vdns_0 name + default: zdcpe1cpe01dns01 + vdns_private_ip_0: + type: string + description: ip of vdns port to cpe public net + default: 10.2.0.1 + vdns_private_ip_1: + type: string + description: ip of vdns port to onap oam net + default: 10.0.101.3 + vweb_name_0: + type: string + description: vdu vweb_0 name + default: zdcpe1cpe01web01 + vweb_private_ip_0: + type: string + description: ip of vweb port to cpe public net + default: 10.2.0.10 + vweb_private_ip_1: + type: string + description: ip of vweb port to onap oam net + default: 10.0.101.40 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_net_cidr } + dhcpEnabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_public_net_id} + cidr: { get_input: cpe_public_net_cidr } + dhcpEnabled: false + + # vaaa related + Cp_vaaa_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_public + + Cp_vaaa_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_1 } + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_onap_private + + Cp_vaaa_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_0 } + requirements: + - virtual_binding: VDU_vaaa_0 + - virtual_link: VL_cpe_signal + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vaaa_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vaaa_name_0 } + description: vaaa + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + cpe_signal_net_ipaddr: { get_input: vaaa_private_ip_0 } + oam_ipaddr: { get_input: vaaa_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_aaa_install.sh + cd /opt + chmod +x v_aaa_install.sh + ./v_aaa_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdns related + Cp_vdns_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdns_0 +# - virtual_link: VL_public + + Cp_vdns_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_1 } + requirements: + - virtual_binding: VDU_vdns_0 + #- virtual_link: VL_onap_private + + Cp_vdns_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_0 } + requirements: + - virtual_binding: VDU_vdns_0 + - virtual_link: VL_cpe_public + + VDU_vdns_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdns_name_0 } + description: vdns + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdns_private_ip_1 } + cpe_public_net_ipaddr: { get_input: vdns_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_net_ipaddr)" > /opt/config/cpe_public_net_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dns_install.sh + cd /opt + chmod +x v_dns_install.sh + ./v_dns_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdhcp related + Cp_vdhcp_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_public + + Cp_vdhcp_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_1 } + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_onap_private + + Cp_vdhcp_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_0 } + requirements: + - virtual_binding: VDU_vdhcp_0 + - virtual_link: VL_cpe_signal + + VDU_vdhcp_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdhcp_name_0 } + description: vdhcp + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdhcp_private_ip_1 } + cpe_signal_ipaddr: { get_input: vdhcp_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + mr_ip_addr: { get_input: mr_ip_addr } + mr_ip_port: { get_input: mr_ip_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_signal_ipaddr)" > /opt/config/cpe_signal_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata mr_ip_addr)" > /opt/config/mr_ip_addr.txt + echo "$(get_metadata mr_ip_port)" > /opt/config/mr_ip_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dhcp_install.sh + cd /opt + chmod +x v_dhcp_install.sh + ./v_dhcp_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vweb related + Cp_vweb_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_public + + Cp_vweb_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_1 } + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_onap_private + + Cp_vweb_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_0 } + requirements: + - virtual_binding: VDU_vweb_0 + - virtual_link: VL_cpe_public + + VDU_vweb_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vweb_name_0 } + description: vweb + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vweb_private_ip_1 } + cpe_public_ipaddr: { get_input: vweb_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_ipaddr)" > /opt/config/cpe_public_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_web_install.sh + cd /opt + chmod +x v_web_install.sh + ./v_web_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.mf new file mode 100644 index 0000000..67f80e5 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_infra + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.yaml new file mode 100644 index 0000000..537efde --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/MainServiceTemplate.yaml @@ -0,0 +1,763 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_infra + template_version: "1.0" + template_author: onap +description: vCPE_infra + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_infra: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-1111-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-1111-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_infra ] ] + default: vcpe_infra + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_infra +# requirements: +# virtual_link: [ Cp_vaaa_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vaaa_onap_private, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vdns_public, virtual_link ] +# virtual_link: [ Cp_vdns_onap_private, virtual_link ] +# virtual_link: [ Cp_vdhcp_public, virtual_link ] +# virtual_link: [ Cp_vdhcp_onap_private, virtual_link ] +# virtual_link: [ Cp_vweb_public, virtual_link ] +# virtual_link: [ Cp_vweb_onap_private, virtual_link ] + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mr_ip_addr: + type: string + description: message router ip that for vDHCP configuration + default: 10.0.11.1 + mr_ip_port: + type: string + label: Message Router Port + description: IP port of the Message Router that for vDHCP configuration + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + cpe_signal_net_id: + type: string + description: cpe signal net name + default: zdfw1cpe01_private + cpe_signal_net_cidr: + type: string + description: cpe signal net cidr + default: 10.4.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vdhcp_name_0: + type: string + description: vdu vdhcp_0 name + default: zdcpe1cpe01dhcp01 + vdhcp_private_ip_0: + type: string + description: ip of vdhcp port to cpe signal net + default: 10.4.0.1 + vdhcp_private_ip_1: + type: string + description: ip of vdhcp port to onap oam net + default: 10.0.101.1 + vaaa_name_0: + type: string + description: vdu vaaa_0 name + default: zdcpe1cpe01aaa01 + vaaa_private_ip_0: + type: string + description: ip of vaaa port to cpe signal net + default: 10.4.0.4 + vaaa_private_ip_1: + type: string + description: ip of vaaa port to onap oam net + default: 10.0.101.2 + vdns_name_0: + type: string + description: vdu vdns_0 name + default: zdcpe1cpe01dns01 + vdns_private_ip_0: + type: string + description: ip of vdns port to cpe public net + default: 10.2.0.1 + vdns_private_ip_1: + type: string + description: ip of vdns port to onap oam net + default: 10.0.101.3 + vweb_name_0: + type: string + description: vdu vweb_0 name + default: zdcpe1cpe01web01 + vweb_private_ip_0: + type: string + description: ip of vweb port to cpe public net + default: 10.2.0.10 + vweb_private_ip_1: + type: string + description: ip of vweb port to onap oam net + default: 10.0.101.40 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_net_cidr } + dhcpEnabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_public_net_id} + cidr: { get_input: cpe_public_net_cidr } + dhcpEnabled: false + + # vaaa related + Cp_vaaa_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_public + + Cp_vaaa_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_1 } + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_onap_private + + Cp_vaaa_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_0 } + requirements: + - virtual_binding: VDU_vaaa_0 + - virtual_link: VL_cpe_signal + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vaaa_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vaaa_name_0 } + description: vaaa + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + cpe_signal_net_ipaddr: { get_input: vaaa_private_ip_0 } + oam_ipaddr: { get_input: vaaa_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_aaa_install.sh + cd /opt + chmod +x v_aaa_install.sh + ./v_aaa_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdns related + Cp_vdns_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdns_0 +# - virtual_link: VL_public + + Cp_vdns_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_1 } + requirements: + - virtual_binding: VDU_vdns_0 + #- virtual_link: VL_onap_private + + Cp_vdns_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_0 } + requirements: + - virtual_binding: VDU_vdns_0 + - virtual_link: VL_cpe_public + + VDU_vdns_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdns_name_0 } + description: vdns + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdns_private_ip_1 } + cpe_public_net_ipaddr: { get_input: vdns_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_net_ipaddr)" > /opt/config/cpe_public_net_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dns_install.sh + cd /opt + chmod +x v_dns_install.sh + ./v_dns_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdhcp related + Cp_vdhcp_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_public + + Cp_vdhcp_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_1 } + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_onap_private + + Cp_vdhcp_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_0 } + requirements: + - virtual_binding: VDU_vdhcp_0 + - virtual_link: VL_cpe_signal + + VDU_vdhcp_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdhcp_name_0 } + description: vdhcp + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdhcp_private_ip_1 } + cpe_signal_ipaddr: { get_input: vdhcp_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + mr_ip_addr: { get_input: mr_ip_addr } + mr_ip_port: { get_input: mr_ip_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_signal_ipaddr)" > /opt/config/cpe_signal_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata mr_ip_addr)" > /opt/config/mr_ip_addr.txt + echo "$(get_metadata mr_ip_port)" > /opt/config/mr_ip_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dhcp_install.sh + cd /opt + chmod +x v_dhcp_install.sh + ./v_dhcp_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vweb related + Cp_vweb_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_public + + Cp_vweb_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_1 } + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_onap_private + + Cp_vweb_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_0 } + requirements: + - virtual_binding: VDU_vweb_0 + - virtual_link: VL_cpe_public + + VDU_vweb_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vweb_name_0 } + description: vweb + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vweb_private_ip_1 } + cpe_public_ipaddr: { get_input: vweb_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_ipaddr)" > /opt/config/cpe_public_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_web_install.sh + cd /opt + chmod +x v_web_install.sh + ./v_web_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/infra/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng.csar deleted file mode 100644 index b11a6ef9d7a0da665d929d28f4e265713c433a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15357 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 /opt/config/brgemu_bng_net_ipaddr.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata bng_gmux_net_ipaddr)" > /opt/config/bng_gmux_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata bng_gmux_cidr)" > /opt/config/bng_gmux_net_cidr.txt + echo "$(get_metadata cpe_signal_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata brgemu_bng_cidr)" > /opt/config/brgemu_bng_net_cidr.txt + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_bng_install.sh + cd /opt + chmod +x v_bng_install.sh + ./v_bng_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.mf new file mode 100644 index 0000000..3967e5a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vbng + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.yaml new file mode 100644 index 0000000..a4e54bd --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/MainServiceTemplate.yaml @@ -0,0 +1,436 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbng + template_version: "1.0" + template_author: onap +description: vCPE_vbng + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbng: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-5555-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-5555-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbng ] ] + default: vcpe_vbng + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbng +# requirements: +# virtual_link: [ Cp_vbng_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vbng_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + brgemu_bng_private_net_id: + type: string + description: Private network that connects vBRG to vBNG + default: zdfw1bngin01_private + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the input side of vGMUX private network + default: 10.1.0.0/24 + cpe_signal_net_id: + type: string + description: Private network that connects vCPE elements with vCPE infrastructure elements + default: zdfw1cpe01_private + cpe_signal_private_net_cidr: + type: string + description: The CIDR of the vAAA private network + default: 10.4.0.0/24 + vbng_private_ip_0: + type: string + description: Private IP address that is assigned to the vBNG IN + default: 10.3.0.1 + vbng_private_ip_1: + type: string + description: Private IP address that is assigned to the vBNG to communicate with ONAP components + default: 10.0.101.10 + vbng_private_ip_2: + type: string + description: Private IP address that is assigned to the vBNG in the CPE_SIGNAL network + default: 10.4.0.3 + vbng_private_ip_3: + type: string + description: Private IP address that is assigned to the vBNG to vGMUX port + default: 10.1.0.10 + vbng_name_0: + type: string + description: Name of the vBNG + default: zdcpe1cpe01bng01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_Metro_vBNG_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vBNG + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: IP address of the SDNC + default: 10.0.7.1 + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRG to vBNG + VL_brgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: brgemu_bng_private_net_id} + cidr: { get_input: brgemu_bng_private_net_cidr } + dhcpEnabled: false + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_private_net_cidr } + dhcpEnabled: false + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + + # vbng related + Cp_vbng_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_public + + Cp_vbng_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_1 } + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_onap_private + + Cp_vbng_brgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_brgemu_bng_private_net + + Cp_vbng_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_2 } + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_cpe_signal + + Cp_vbng_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_3 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_bng_gmux_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbng_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbng_name_0 } + description: vbng + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + + brgemu_bng_net_ipaddr: { get_input: vbng_private_ip_0 } + cpe_signal_net_ipaddr: { get_input: vbng_private_ip_2 } + bng_gmux_net_ipaddr: { get_input: vbng_private_ip_3 } + oam_ipaddr: { get_input: vbng_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + bng_gmux_cidr: { get_input: bng_gmux_private_net_cidr } + cpe_signal_cidr: { get_input: cpe_signal_private_net_cidr } + brgemu_bng_cidr: { get_input: brgemu_bng_private_net_cidr } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata brgemu_bng_net_ipaddr)" > /opt/config/brgemu_bng_net_ipaddr.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata bng_gmux_net_ipaddr)" > /opt/config/bng_gmux_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata bng_gmux_cidr)" > /opt/config/bng_gmux_net_cidr.txt + echo "$(get_metadata cpe_signal_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata brgemu_bng_cidr)" > /opt/config/brgemu_bng_net_cidr.txt + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_bng_install.sh + cd /opt + chmod +x v_bng_install.sh + ./v_bng_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbng/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu.csar deleted file mode 100644 index 730ea8d78af5e4cad6473ed4e8c28e5e39b33bb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14527 zcmeI3Wl&v97Vi)4?(Xgm!5xAGcXxMphd^*AxVyW%yK8{p7A#26m(0wYdvhmqXXeBE z@T%@PwRi1Zb?Vovd+ohW|GU?clL7&S2K@M_W+=$~?cyINXaFui(80;vMBmWKkwIAr z3INhzKdkxVaCUo;cT$)GFVl$}A1EHza5e&yV8i zlx2$yQ>MOLnb@`d_fi<~U4ypWO3L;I%2CG7na-lO8e{Lcv&1@>^#?fm0`~iiF4Q<- zByjv_gqg*adPPFrdha>8FV=x?)yv;_b-=_m%PlSBicZg1G;b_59<;<89?W20LXQ~+ zo65-|uUfQb)$YmI`^HhvQ}}PM^a8TmP5-74tlhr zip``9FNj&d@{qK&ObMtc3|#*#HWBW1?m8c`!be792}fCFJ?$jJp{!a_p*y6;jizP> zf*v4d{vnVZHwGDT4xu^-*j8=T^D82?HyWgQWjiv!zWq$$@rz9T}R{JpG z12G~39(q%=4XqMgZ*L>n*@~x0c*WD+8$G~5^x?*4byTCA%g$4UU_^o~s)!_BBdXLhUeWEjYM|f^U zS@=hc>|SLE0>P@5?6D40Sr|E?0159X zoO62>=G#fyY-!ax>}As{L2bAO$_%}iEBqjuR~PX)?-c$WI?BX#!27bzR7E7~DFe#) z>u38Gd`qerd#kGtBdY6SCjbM=B%$r8;yFVvgByxI^a3G5~mhP>I;mg$l+B5sFjpK=j;ab9J@Sg5NTUMX62Ee>_ zAgUKxW@zZS7sdU&0W}`kxg5)M(XJTd{c{I9v38G4aPWtp*|4 z3K#fmcJCO2On6(5H$`kq2YR)~iq_^3GW!TN71z5PCgmpPx(NzUkUaIv=Ah4(rt+j+ zrMFiycY|;YI2>!8K^OXvrgY1gFXfZP!@6iYHJ{5YrW&7&RaL`Y&yfn&ugUf;DL%Zg z40gw1E)2K}-OZR;V#3&65Ki3flLmUxAx$Vr7bHUPPdnLJ@5ii#8u{#}!U73REE5BP zChHLCQ%(~@+k z1^fulzeUwM8EHsIfSuBR*l^k}s-CaO51 z6d`wr94l-bp>SvC+1kdC`^|vc1Jp~vv1tCH#|YX%7CR*1X_K(pwGJI0%T3b&4{Hby z>+++V54GGuUSJheA{F`Kc_abX(t-M{_Y?(@s-DwF<;5>dpw6RHuu^+KA)_u^`)V3- z9EeEyiCRpKM)j#CCyg8F%!b#;G5zNm@3hWp$T(+WzlwxjCA8*ne+*{sWDl@wXYsawSsEZt`M&@b;|DHo(m+ix*J<-)Vd`1`!e?fdZ~Cj0^Pw_AGa@7zDL4dxQT#by3R zhE8(cd2C#A0ZxjJdUAZKPJwZrWy=BH1y%^1Y1e`NtqiTC%#3qsy~4$vBkY#L1PxW` zytAat*!UPN5H(Gsg23m)M{<*Wup;zCWAdVq{C)IY0NaT&`To8g(BER&ug4YkyWJwj zCgwKgPUf~Y|Jggg_1+??Lzo-^00=Pz05JbRv9-~+(>1cDch|SJ`m@e&;A-2hab9h7 z1#ot(14YHwdwPa;7Rc0EX4}`AYv5Kxf{Nwh>X6Ax$;)sz7EU+hs^F}{53ZP^U~Uq(5!&x&!{ zZXcq$M2eW{!*LQ-XpNi#jfC_dq#A1$pI)H55(+R>5)f2w2)?*3BM>HFpJEfcD{(Qd%gr1>C>2$w zCs&%yWf`jdsy11#td^eaR(I@2Y=_m_k8uJ_%_}8@wEr`aYr??R)O{ z^7{<(wydP;{VxYa25RY|Q$cOCc9znu5&*SYGB3~wKOc~ul$;<|v>_-)aA&UET3ph& z5T!G+Sv#1q5N4hnjg?-G#PEAGYc{^TOc<^(k@w4ixHFqR--6gVbf+Koubw^wdvobN zTi)E-lElGn%8F;3w~}8JV-eNM+X?s6?C36K`{6n$T}_Ya!YA8*$a}x95&`;@K4eZj z_aTs$eIhQ%ep?LFK`Up3tK2K}+RfED)Tg71mTI(RZ#GW5Xz~ubxqse~3P;OM2isCE z0f9E^{nzf8JzkYXk7ku1H-s;UK8WLn+ve6;VHmxFW>TPQ!i>KArnU*L^j=?)$*4xW z_B(rt4@1z7Ehb6$p+2EzuwTx6Q+ zCW67os`p9?aC-3_Q5#lMa7}=_g6?Yqmk`~P4f@Ye5A6bAo$i$~CB3oXn3^hhvkC@} zoGKe4ofID^X0~8D;jimx3k}G`{Y-3>fEO{%?Wkq8q{BHqD-B{kR>yce%D<#M3vwiM zd-$lFhQi5eQ&h}kw6O`rBpW36I~X3`EuCuY2KmXKSD8LwE>E?kcrqvnJdNDzmvF}% z!J|Tsr#5wVZ+Q@1ciu9Zn`vj$^4wZU5hEWKx5^MUmzgO{>|#5zBvNs*noF6{_Vv_{ zj(hW&do<31*n{HHQevV)-=}&^c(U0!Gy-SqO`Xuic7;+3@P1|O-6wY->_u6`ky(!d zLAdJkvtgmf8}SbHg{bR5!f~w*IblP$caGg|lRq^TFp@(HFac*xonwUt&8A>>urv@@ zdWVSx4@l?#H85Sr}&#%pEsa!hUd>J^_^5A^t;Y1L|RX3eKY21_dssxOFqaq=a& zj#m9K4c7~EC@LUj$$OyJ^Ku1Ur5W~!U93u}J-cmUucJJv(pDAX;3W^JBcoH~TyTkx zBAS)hHI)_ol`wCf8<7fjjk8MA^eadCfs>)j6mEtH z0C+~y$Fby9uUD52bt1YiAg?7X9lp1xf+B0dWW4hh)mR#}-sRkh#; z2A3k-L|7(N;FJlYfOT_Dd_wH!ljK?S8{EP_c0=Y})ER2;dp;C(tuCMKuU|c*MiWYE z)0*GdS25jBOp8BW%U<5eZiH3HS?Dc2W{rufrf%!^k4ppNRIS#!v93|}BS?+AV|>C0 zsK|MNHoTb*{}$6H6cQCo_Z+=Lf?*$wS zwGI}*B$Rntjf|u;LCp<69t3;1AYZ;I;vWUL6bcC|ZqQ1a%e=Gc=RACbiPA<#;Xos` zj|ePx>1oF}6I*67gX1SxWen}0A3}r;H!S3Nn%ECriSm`^bK{hHZ}Yf;9b9;7IWdlP zDJfpYZ^Lyf5ff~4#JUF*WOZ(sIvukbSx^h!_kM_YdGOwEsAp?D9n&eFg=V6T%g*AV zEXaa9huWv$tDxPL$jnMqU}(geC)cFK-{}( zTJnRsQ=6SVHjxBB5&QW>&lVxgBARn6ZnQSV%uP?`9|5p@ZO^D0V&pE#VN)jv!ZeGV(=ksk>TC@ne!Rgrq*~ zA*eg-*%x4!F|ROU3g&m(Q&Z3_ro zp04)Q(B=Z|yxnTn0U4=1k*R2*AA{e>%)Vc|jPeHiS_gU&a0c)v*lk3vwnlZFPM(li z0a^t+Da~sY+?pcQLu|p0_YlxSV1@*Sa8O(eo~B8ToKrcI^<-79C z(rlEy<&1vAZH(hjWW4Vwy4VUnOI*_x!dvm&LLTEXkF({@zzpIPh- zS+<6Vw4$#)VU9Pi_PM;2 zo;UwmWE0zxt(|EG-j)rWtx(xiC^U``Qz4iNj*jf~y@>L)Q#N_bO3==*#ECFE8K$eF zrGi~Les){HYz8fszNi5kO39gpekAi$K*H?U#%*ux$mR#9!?P)v#7$>rqHh&%+_fY5 zienI(D(52eJq?xLJRVhdq0;a8Ik+~KcaCwVY{tcSC`p*a+a8`f2)&&976+lP{CGGEy$ft7<9UBHn#xrHQk!-uwoOv zdfDdShH^JS(>5r$+b@cNO+8cJyG3-%DBRL5(xI#aT3W81maM&h7)E`6Oh@5Hc{}N& zr~C8N;_e9;uGW&+^!^tlZSBo+jwMyIjuEo5@_9q7{?Waq^u60ty(S)^N8 z#zeJg@w|a2DXax%l664{Uo}6>cYIRVC@_CGs}zfD&zu9gq0NgudONvnDY!to?~ZjK z;=G={$&hq-z5l#%FtKo>tgaD>Sq!ps{6*S5+oHwnB`HR~;`)Y~}$ zuSHe#6k=&ll6X@m2v;AA#< zxHf23t#`OC*JHmBrRL1^QD~`PW!DV2ec^_J={|rGbV3mU8-`-w#%E|hylY3-;?{c_n^O>I$ZKjH3CZ@pY2%(p zj`nKfChQe<<%s8sd&h}J?1C?}Lt>!*6+ZduvMHl`1o@j^7wrC&8nu5+*Iw4-s3n~g zS`sBU45sfuT#w;o0j%L%=4*I1A3Jl#4^3GklnHDJJrM7LH7u#hj+IqVTSxc%eZy~zNiV7cTQ2AFZ zjO*5->+t9dJaI}jUz{+N_^(A0JHHaC@)H1fjs5-nB*$^>+k{P~2@&dtAWH^uQ?8Z- zG!8iWPS`^5la|2b4>CVprpwnssdg3%zK&}`3E|qZEFWgBg9w3#)yXy1Sg7z1drzGp zr?2BszKSU4B}Z^?xaYy7VGl@4jV8RsOH$%u*{w{C;pQswMv8szqXPbD(FLZ-Dm|@J zF(}3{x>6^*i>qzsAQlk+v_YY7{|%h>G}yfYlj2+UBojM_JCpEt6M! zucm83BB_dum39HHrMD(+dMG%Vqs})SR`pq4H~cZfiJmUr>u^#~^7XwJ_DvvkjF~Gm ze?yn|t|txSOy)lPU*Fz%YQPdLy^*{38AfwnE*kjbN@NnA-t++vL89&S3&zweym=1TRp!E2N>>$njMA>cW?(jT*^ zkwX?7&JMq5`Lmuo_BE1Q_vp*>_NB*UxLtg?!-j(J6F z8n#MQW-)KWk?wyq*l@7m!h3n!kQ8X@bAL@$+*msuDz|c%&eb1Jc$zBl;*U4fMNx=* zic7L4>}9|rf?utt$u9qXY$fGWe_14563aEMY7_6+lp{C$&IsZqXU55R3L*vrWR~LB zn+dfr-|Gsc&pun+FK(4X1;z5z!V1A8gVy-aC(alUKw#6MD z+jU_F+$<-AF3;eteGJE}4@{9n=#4eR=`xWZWHr8U+hT$IaKTG4-v@7T_qG~;4Mqqb zjiO}Jn#=WtlT}Jb2XEwA%rJ5)t(kclu&f2hj)|4ntX!- zc9myP(d-r1UN{ucT*tejVRrdp!tHT6#^PE-7#7?xNXFgBunwZ3Jt{;2_2h%8i1Cw$^7x<>7R-ARV^~{28~1>@sgLL5jM244BQ+uM|Zw8&*@w$qale zY=u=%2ZwRwjgm-!aT?%XEu9N;RaBvQPrxLJv=H9&7DuG8^^qSMjmWl1wZHPEV)4@m2jye3Jx{Ae%EB%ii=e8O$5Ot0o zb>`k?H%*`HT^Q?DKNh9)`1GP!3n7>|9e?7lXV^STkGypSezk~)d&1}X)UX-*@uZ_{ zVyz5e5sU8&0Y7evW}V(aEaOD09r)VDiu2>x@LVH*s?*B|zx{2y{j}h*Xw})G+jYF|_!za(vfp$2c=9|VABjcxu-EK-eP2?=R#h>#ljMks z?>fP}weJkB`ZQS~LpV?$v**4d4^lau^I-(|G>Q_me6sj?mX%~)DLWF8h z!r&xs)N-NHRNC;Cz@g&x#emS1_X?32uaCF8*Uy#;>d9GI_kmA5i(zVahT6qZby!FU zv<`@Ea<88&6A57eTJ2Ll)B%vCSz3J_bxp{-p&2$YtG1NOf+$H$l&s-73|U_y)r2@Q z&3w<@?CtxU5)|9UO7;+j)s%S4qfw`&7xOgG}M!;-|iBid$Q`ppg?%?;# zg)+L%c|@pvAf6`IEdi|&TtT=zp}8<0);YW&Zq*sr)W@fAnT&frvq;nXOpCLh65G>b z02|%NEprhgACF9OfocvoR-Qd06o^CksNS-7=GAoT0++GYZecuACZc_WMim&6PMAHs zJXd?(tD$bD2n(ZABXjW%5uXMmuSPM1F2;bpBRsGQb|)uDn$s6$=ZS|EZK+nFE)QD> zm#g@`pGWg>MC$gycSACu8v|8F&qFz3Df?k-xQ`?>1kotveGUFDu2?BA$(Co5WIn5n6uIQ2*;|pdPA{B(|{mw zY!^O?8I63+mbjBMQV0hsg3tVocdt?3vIwqGYn}lSTEn`Fbhrv?FtgSnN^oIyM5RLA z15jY?&rXSDgg2l1VaKTq^a(%N8;yqzI$?Nj5j69&ifGkEQ04WA9sqZov$6D@XcFOX zKjYuP*@1Fan`8D9Dcx>Oo+1qhU4A^rDcyXdlpGofzFKVk6rMZ7XNRemi;13xA}uqM zbuKs)C>2dJIMh!v&))A;OUy*SND9742Z3iq%`ZDyEY4c$kKeK8lzOgx&FEDXXOpmcVO$%k}qBOT1h&hi* z_>#5~+9T!DiK!bUIq@p>N%i8HbbJf!>&8Nzqp0Ucfhug>3T-5h4h+}S;=LGXZk&8K z#4@$H!*}tBT+PMU4~n#ho)+S1`b5n@pt-F;y^6KkTUY@NnZg27$Qy<>($WOA6M@`1 z%=(^9)fi4W7?`6DzPH@g%@2`^pdf=Bvt3F)E^GZpk%CGm) z#8saQB~&z+~3`#;0 z?<(p~dd(5so)=4zQOG+G4>T#_GQ)pagDeT8mi|8RPgB|CEw<@cD-p}mn5~^@w798w zYu%+#WiIKUY@2%i%-xX;q5~8mZ=A_`VsrkM3b-cy-V^-rjN#C8znOTjU%bj-XZpPR z12w9(5}4GDvNwt7GYMVeht-5I<_s>gnDwHg3Vt^0a6Ne~#h`-pFOjOYEa;VQ7j)UD z`R8iu(dw07y0hk#(}$%r!bcY6<c#4vLA;MucHe7uWV3sxf2a4O3?U(c zr1p3p(8v4q=MYFjJ2uE}QIbw^Pa z?L5#%+Vqy!+|a5{sfVQ<;jAd-M=h%m>U6!UjAu(PN5%{v4<+W@7*!UwRXL@jSg7<4v+HfF!P48W?fxJt|Np{6$MXVABd^Vs7=sKxEr5Cv|ORSox3u9Fvncr%1U|AIovqc^*I4%3zKRAEVda^pFf(5tQ_xtZhZMYfs$~2;TM9u!Su# zQjjzRFc_sls@AS$P3V8z4E%zMiHh%3wq@RWy7V7tH{4>?~f5+ne6Z>P(Rey#3Iqmp=Z{p{NrSf|df5;qGR{AsO zZx74Q3CO?q=-t0Uf1i&0XZT-_Htau#<;M$C_5DXbXAS=u@i&8i&Kdr_!8d;({+vPl z-_d`+5E{KN-}fV%9PrB(h#$)<{~i1Hy} /opt/config/brgemu_bng_private_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_brgemu_install.sh + cd /opt + chmod +x v_brgemu_install.sh + ./v_brgemu_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.mf new file mode 100644 index 0000000..c6a971a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vbrgemu + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.yaml new file mode 100644 index 0000000..ffeceaa --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/MainServiceTemplate.yaml @@ -0,0 +1,290 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbrgemu + template_version: "1.0" + template_author: onap +description: vCPE_vbrgemu + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbrgemu: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-4444-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-4444-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbrgemu ] ] + default: vcpe_vbrgemu + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbrgemu +# requirements: +# virtual_link: [ Cp_vbrgemu_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + vbrgemu_bng_private_net_id: + type: string + description: Private network that connects vBRGEMU to vBNG + default: zdfw1bngin01_private + vbrgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + vbrgemu_private_ip_0: + type: string + description: Private IP address towards the BRGEMU-BNG network + default: 10.3.0.4 + vbrgemu_name_0: + type: string + description: Name of the vBRGEMU + default: zdcpe1cpe01brgemu01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_BGREMU_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_BRGEMU + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: SDNC ip address used to set NAT + default: 10.0.7.1 + compile_state: + type: string + description: State to compile code or not (done, auto or build) + default: auto + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRGEMU to vBNG + VL_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: vbrgemu_bng_private_net_id} + cidr: { get_input: vbrgemu_bng_private_net_cidr } + dhcpEnabled: false + + # vbrgemu related + Cp_vbrgemu_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbrgemu_0 + #- virtual_link: VL_public + + Cp_vbrgemu_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbrgemu_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbrgemu_0 + - virtual_link: VL_vbrgemu_bng_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbrgemu_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbrgemu_name_0 } + description: vbrgemu + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + vbrgemu_bng_private_net_cidr: { get_input: vbrgemu_bng_private_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata vbrgemu_bng_private_net_cidr)" > /opt/config/brgemu_bng_private_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_brgemu_install.sh + cd /opt + chmod +x v_brgemu_install.sh + ./v_brgemu_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vbrgemu/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux.csar deleted file mode 100644 index b0f37a78af346a9602d41bfa1509110bced2e0ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14970 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 t^2^%Mf5-lPE3kiPg%;IcvwvN?`FC`P? /opt/config/mux_to_bng_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata mux_gw_net_ipaddr)" > /opt/config/mux_gw_net_ipaddr.txt + echo "$(get_metadata bng_to_mux_net_ipaddr)" > /opt/config/bng_to_mux_net_ipaddr.txt + echo "$(get_metadata bng_mux_net_cidr)" > /opt/config/bng_mux_net_cidr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata mux_gw_net_cidr)" > /opt/config/mux_gw_net_cidr.txt + echo "$(get_metadata brg_bng_net_cidr)" > /opt/config/brg_bng_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gmux_install.sh + cd /opt + chmod +x v_gmux_install.sh + ./v_gmux_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.mf new file mode 100644 index 0000000..c096351 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vgmux + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.yaml new file mode 100644 index 0000000..0d1b8aa --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/MainServiceTemplate.yaml @@ -0,0 +1,381 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgmux + template_version: "1.0" + template_author: onap +description: vCPE_vgmux + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgmux: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-3333-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-3333-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgmux ] ] + default: vcpe_vgmux + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vgmux +# requirements: +# virtual_link: [ Cp_vgmux_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vgmux_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the vBNG-vGMUX private network + default: 10.1.0.0/24 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: The CIDR of the vGMUX private network + default: 10.5.0.0/24 + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the vBRG-vBNG private network + default: 10.3.0.0/24 + vgmux_private_ip_0: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with the vBNG + default: 10.1.0.20 + vgmux_private_ip_1: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with ONAP components + default: 10.0.101.20 + vgmux_private_ip_2: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with vGWs + default: 10.5.0.20 + vgmux_name_0: + type: string + description: Name of the vGMUX + default: zdcpe1cpe01mux01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_vGMUX_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vGMUX + bng_gmux_private_ip: + type: string + description: Private IP address that is assigned to the vBNG to communicate with the vGMUX + default: 10.1.0.10 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: mux_gw_private_net_id} + cidr: { get_input: mux_gw_private_net_cidr } + dhcpEnabled: false + + # vgmux related + Cp_vgmux_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_public + + Cp_vgmux_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_1 } + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_onap_private + + Cp_vgmux_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + #TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_bng_gmux_private_net + + Cp_vgmux_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_2 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + #TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_mux_gw_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vgmux_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgmux_name_0 } + description: vgmux + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_to_bng_net_ipaddr: { get_input: vgmux_private_ip_0 } + oam_ipaddr: { get_input: vgmux_private_ip_1 } + mux_gw_net_ipaddr: { get_input: vgmux_private_ip_2 } + bng_to_mux_net_ipaddr: { get_input: bng_gmux_private_ip } + bng_mux_net_cidr: { get_input: bng_gmux_private_net_cidr } + oam_cidr: { get_input: onap_private_net_cidr } + mux_gw_net_cidr: { get_input: mux_gw_private_net_cidr } + brg_bng_net_cidr: { get_input: brgemu_bng_private_net_cidr } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata mux_to_bng_net_ipaddr)" > /opt/config/mux_to_bng_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata mux_gw_net_ipaddr)" > /opt/config/mux_gw_net_ipaddr.txt + echo "$(get_metadata bng_to_mux_net_ipaddr)" > /opt/config/bng_to_mux_net_ipaddr.txt + echo "$(get_metadata bng_mux_net_cidr)" > /opt/config/bng_mux_net_cidr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata mux_gw_net_cidr)" > /opt/config/mux_gw_net_cidr.txt + echo "$(get_metadata brg_bng_net_cidr)" > /opt/config/brg_bng_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gmux_install.sh + cd /opt + chmod +x v_gmux_install.sh + ./v_gmux_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgmux/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw.csar deleted file mode 100644 index ca652bf6d6482bd7ac331b3ea5100ddc4302ae6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15008 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 /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata mux_gw_private_net_ipaddr)" > /opt/config/mux_gw_private_net_ipaddr.txt + echo "$(get_metadata mux_gw_private_net_cidr)" > /opt/config/mux_gw_private_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata mux_ip_addr)" > /opt/config/mux_ip_addr.txt + echo "$(get_metadata vg_vgmux_tunnel_vni)" > /opt/config/vg_vgmux_tunnel_vni.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gw_install.sh + cd /opt + chmod +x v_gw_install.sh + ./v_gw_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.mf new file mode 100644 index 0000000..808bc28 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vgw + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.yaml new file mode 100644 index 0000000..f36574d --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/MainServiceTemplate.yaml @@ -0,0 +1,377 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgw + template_version: "1.0" + template_author: onap +description: vCPE_vgw + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgw: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-2222-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgw ] ] + default: vcpe_vgw + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: + #substitution_mappings: + # node_type: onap.vcpe_vgw + # requirements: + # virtual_link: [ Cp_vgw_public, virtual_link ] # expose as external CP + # virtual_link: [ Cp_vgw_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: he CIDR of the vGMUX private network + default: 10.5.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vgw_private_ip_0: + type: string + description: Private IP address that is assigned to the vGW to communicate with vGMUX + default: 10.5.0.21 + vgw_private_ip_1: + type: string + description: Private IP address that is assigned to the vGW to communicate with ONAP components + default: 10.0.101.30 + vgw_private_ip_2: + type: string + description: Private IP address that is assigned to the vGW to communicate with vCPE public network + default: 10.2.0.3 + vgw_name_0: + type: string + description: Name of the vGW + default: zdcpe1cpe01gw01 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + mux_ip_addr: + type: string + description: IP address of vGMUX + default: 10.5.0.20 + vg_vgmux_tunnel_vni: + type: integer + description: vni value of vG-vGMUX vxlan tunnel + default: 100 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_GW_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_GW + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: mux_gw_private_net_id} + cidr: { get_input: mux_gw_private_net_cidr } + dhcpEnabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_public_net_id} + cidr: { get_input: cpe_public_net_cidr } + dhcpEnabled: false + + # vgw related + Cp_vgw_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgw_0 + #- virtual_link: VL_public + + Cp_vgw_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_1 } + requirements: + - virtual_binding: VDU_vgw_0 + #- virtual_link: VL_onap_private + + Cp_vgw_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + #TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_mux_gw_private_net + + Cp_vgw_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_2 } + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_cpe_public + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vgw_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgw_name_0 } + description: vgw + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC BUG + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_gw_private_net_ipaddr: { get_input: vgw_private_ip_0 } + oam_ipaddr: { get_input: vgw_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + mux_gw_private_net_cidr: { get_input: mux_gw_private_net_cidr } + mux_ip_addr: { get_input: mux_ip_addr } + vg_vgmux_tunnel_vni: { get_input: vg_vgmux_tunnel_vni } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata mux_gw_private_net_ipaddr)" > /opt/config/mux_gw_private_net_ipaddr.txt + echo "$(get_metadata mux_gw_private_net_cidr)" > /opt/config/mux_gw_private_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata mux_ip_addr)" > /opt/config/mux_ip_addr.txt + echo "$(get_metadata vg_vgmux_tunnel_vni)" > /opt/config/vg_vgmux_tunnel_vni.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gw_install.sh + cd /opt + chmod +x v_gw_install.sh + ./v_gw_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpedpdk/vgw/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra.csar deleted file mode 100644 index c91c034e45a77e710859a64190b5bb2c9efdb7b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15432 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 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/images/ubuntu_16.04 b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/images/ubuntu_16.04 new file mode 100644 index 0000000..e69de29 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Artifacts/keys/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..e9aa59f --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,738 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_infra + template_version: "1.0" + template_author: onap +description: vCPE_infra + +imports: + - onap_dm.yaml + +topology_template: + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mr_ip_addr: + type: string + description: message router ip that for vDHCP configuration + default: 10.0.11.1 + mr_ip_port: + type: integer + # label: Message Router Port + description: IP port of the Message Router that for vDHCP configuration + default: 80 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + cpe_signal_net_id: + type: string + description: cpe signal net name + default: zdfw1cpe01_private + cpe_signal_net_cidr: + type: string + description: cpe signal net cidr + default: 10.4.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vdhcp_name_0: + type: string + description: vdu vdhcp_0 name + default: zdcpe1cpe01dhcp01 + vdhcp_private_ip_0: + type: string + description: ip of vdhcp port to cpe signal net + default: 10.4.0.1 + vdhcp_private_ip_1: + type: string + description: ip of vdhcp port to onap oam net + default: 10.0.101.1 + vaaa_name_0: + type: string + description: vdu vaaa_0 name + default: zdcpe1cpe01aaa01 + vaaa_private_ip_0: + type: string + description: ip of vaaa port to cpe signal net + default: 10.4.0.4 + vaaa_private_ip_1: + type: string + description: ip of vaaa port to onap oam net + default: 10.0.101.2 + vdns_name_0: + type: string + description: vdu vdns_0 name + default: zdcpe1cpe01dns01 + vdns_private_ip_0: + type: string + description: ip of vdns port to cpe public net + default: 10.2.0.1 + vdns_private_ip_1: + type: string + description: ip of vdns port to onap oam net + default: 10.0.101.3 + vweb_name_0: + type: string + description: vdu vweb_0 name + default: zdcpe1cpe01web01 + vweb_private_ip_0: + type: string + description: ip of vweb port to cpe public net + default: 10.2.0.10 + vweb_private_ip_1: + type: string + description: ip of vweb port to onap oam net + default: 10.0.101.40 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure + + substitution_mappings: + node_type: tosca.nodes.nfv.VNF + properties: + descriptor_id: b1bb0ce7-1111-4fa7-95ed-4840d70a1177 + provider: onap + product_name: vcpe_infra + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + flavour_description: simple + vnfm_info: [ 'gvnfm' ] + + requirements: + - virtual_link: [ Cp_vaaa_public, virtual_link ] # expose as external CP + - virtual_link: [ Cp_vaaa_onap_private, virtual_link ] # expose as external CP + - virtual_link: [ Cp_vdns_public, virtual_link ] + - virtual_link: [ Cp_vdns_onap_private, virtual_link ] + - virtual_link: [ Cp_vdhcp_public, virtual_link ] + - virtual_link: [ Cp_vdhcp_onap_private, virtual_link ] + - virtual_link: [ Cp_vweb_public, virtual_link ] + - virtual_link: [ Cp_vweb_onap_private, virtual_link ] + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_net_cidr } + dhcpEnabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_public_net_id} + cidr: { get_input: cpe_public_net_cidr } + dhcpEnabled: false + + # vaaa related + Cp_vaaa_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_public + + Cp_vaaa_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_1 } + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_onap_private + + Cp_vaaa_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_0 } + requirements: + - virtual_binding: VDU_vaaa_0 + - virtual_link: VL_cpe_signal + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vaaa_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vaaa_name_0 } + description: vaaa + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + cpe_signal_net_ipaddr: { get_input: vaaa_private_ip_0 } + oam_ipaddr: { get_input: vaaa_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_aaa_install.sh + cd /opt + chmod +x v_aaa_install.sh + ./v_aaa_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdns related + Cp_vdns_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdns_0 +# - virtual_link: VL_public + + Cp_vdns_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_1 } + requirements: + - virtual_binding: VDU_vdns_0 + #- virtual_link: VL_onap_private + + Cp_vdns_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_0 } + requirements: + - virtual_binding: VDU_vdns_0 + - virtual_link: VL_cpe_public + + VDU_vdns_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdns_name_0 } + description: vdns + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdns_private_ip_1 } + cpe_public_net_ipaddr: { get_input: vdns_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_net_ipaddr)" > /opt/config/cpe_public_net_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dns_install.sh + cd /opt + chmod +x v_dns_install.sh + ./v_dns_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdhcp related + Cp_vdhcp_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_public + + Cp_vdhcp_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_1 } + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_onap_private + + Cp_vdhcp_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_0 } + requirements: + - virtual_binding: VDU_vdhcp_0 + - virtual_link: VL_cpe_signal + + VDU_vdhcp_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdhcp_name_0 } + description: vdhcp + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdhcp_private_ip_1 } + cpe_signal_ipaddr: { get_input: vdhcp_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + mr_ip_addr: { get_input: mr_ip_addr } + mr_ip_port: { get_input: mr_ip_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_signal_ipaddr)" > /opt/config/cpe_signal_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata mr_ip_addr)" > /opt/config/mr_ip_addr.txt + echo "$(get_metadata mr_ip_port)" > /opt/config/mr_ip_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dhcp_install.sh + cd /opt + chmod +x v_dhcp_install.sh + ./v_dhcp_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vweb related + Cp_vweb_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_public + + Cp_vweb_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_1 } + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_onap_private + + Cp_vweb_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_0 } + requirements: + - virtual_binding: VDU_vweb_0 + - virtual_link: VL_cpe_public + + VDU_vweb_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vweb_name_0 } + description: vweb + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vweb_private_ip_1 } + cpe_public_ipaddr: { get_input: vweb_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_ipaddr)" > /opt/config/cpe_public_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_web_install.sh + cd /opt + chmod +x v_web_install.sh + ./v_web_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.mf new file mode 100644 index 0000000..67f80e5 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_infra + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.yaml new file mode 100644 index 0000000..fa1b1fa --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/MainServiceTemplate.yaml @@ -0,0 +1,758 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_infra + template_version: "1.0" + template_author: onap +description: vCPE_infra + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_infra: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + provider: + type: string + product_name: + type: string + software_version: + type: string + descriptor_version: + type: string + flavour_id: + type: string + flavour_description: + type: string + vnfm_info: + type: list + entry_schema: + type: string + +topology_template: + substitution_mappings: + node_type: onap.vcpe_infra + properties: + descriptor_id: b1bb0ce7-1111-4fa7-95ed-4840d70a1177 + provider: onap + product_name: vcpe_infra + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + flavour_description: simple + vnfm_info: gvnfm + requirements: + virtual_link: [ Cp_vaaa_public, virtual_link ] # expose as external CP + virtual_link: [ Cp_vaaa_onap_private, virtual_link ] # expose as external CP + virtual_link: [ Cp_vdns_public, virtual_link ] + virtual_link: [ Cp_vdns_onap_private, virtual_link ] + virtual_link: [ Cp_vdhcp_public, virtual_link ] + virtual_link: [ Cp_vdhcp_onap_private, virtual_link ] + virtual_link: [ Cp_vweb_public, virtual_link ] + virtual_link: [ Cp_vweb_onap_private, virtual_link ] + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mr_ip_addr: + type: string + description: message router ip that for vDHCP configuration + default: 10.0.11.1 + mr_ip_port: + type: string + label: Message Router Port + description: IP port of the Message Router that for vDHCP configuration + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + cpe_signal_net_id: + type: string + description: cpe signal net name + default: zdfw1cpe01_private + cpe_signal_net_cidr: + type: string + description: cpe signal net cidr + default: 10.4.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vdhcp_name_0: + type: string + description: vdu vdhcp_0 name + default: zdcpe1cpe01dhcp01 + vdhcp_private_ip_0: + type: string + description: ip of vdhcp port to cpe signal net + default: 10.4.0.1 + vdhcp_private_ip_1: + type: string + description: ip of vdhcp port to onap oam net + default: 10.0.101.1 + vaaa_name_0: + type: string + description: vdu vaaa_0 name + default: zdcpe1cpe01aaa01 + vaaa_private_ip_0: + type: string + description: ip of vaaa port to cpe signal net + default: 10.4.0.4 + vaaa_private_ip_1: + type: string + description: ip of vaaa port to onap oam net + default: 10.0.101.2 + vdns_name_0: + type: string + description: vdu vdns_0 name + default: zdcpe1cpe01dns01 + vdns_private_ip_0: + type: string + description: ip of vdns port to cpe public net + default: 10.2.0.1 + vdns_private_ip_1: + type: string + description: ip of vdns port to onap oam net + default: 10.0.101.3 + vweb_name_0: + type: string + description: vdu vweb_0 name + default: zdcpe1cpe01web01 + vweb_private_ip_0: + type: string + description: ip of vweb port to cpe public net + default: 10.2.0.10 + vweb_private_ip_1: + type: string + description: ip of vweb port to onap oam net + default: 10.0.101.40 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_net_cidr } + dhcpEnabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_public_net_id} + cidr: { get_input: cpe_public_net_cidr } + dhcpEnabled: false + + # vaaa related + Cp_vaaa_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_public + + Cp_vaaa_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_1 } + requirements: + - virtual_binding: VDU_vaaa_0 +# - virtual_link: VL_onap_private + + Cp_vaaa_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vaaa_private_ip_0 } + requirements: + - virtual_binding: VDU_vaaa_0 + - virtual_link: VL_cpe_signal + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vaaa_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vaaa_name_0 } + description: vaaa + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + cpe_signal_net_ipaddr: { get_input: vaaa_private_ip_0 } + oam_ipaddr: { get_input: vaaa_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_aaa_install.sh + cd /opt + chmod +x v_aaa_install.sh + ./v_aaa_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdns related + Cp_vdns_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdns_0 +# - virtual_link: VL_public + + Cp_vdns_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_1 } + requirements: + - virtual_binding: VDU_vdns_0 + #- virtual_link: VL_onap_private + + Cp_vdns_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdns_private_ip_0 } + requirements: + - virtual_binding: VDU_vdns_0 + - virtual_link: VL_cpe_public + + VDU_vdns_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdns_name_0 } + description: vdns + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdns_private_ip_1 } + cpe_public_net_ipaddr: { get_input: vdns_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_net_ipaddr)" > /opt/config/cpe_public_net_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dns_install.sh + cd /opt + chmod +x v_dns_install.sh + ./v_dns_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vdhcp related + Cp_vdhcp_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_public + + Cp_vdhcp_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_1 } + requirements: + - virtual_binding: VDU_vdhcp_0 +# - virtual_link: VL_onap_private + + Cp_vdhcp_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vdhcp_private_ip_0 } + requirements: + - virtual_binding: VDU_vdhcp_0 + - virtual_link: VL_cpe_signal + + VDU_vdhcp_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vdhcp_name_0 } + description: vdhcp + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #SDC Bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vdhcp_private_ip_1 } + cpe_signal_ipaddr: { get_input: vdhcp_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_signal_net_cidr: { get_input: cpe_signal_net_cidr } + mr_ip_addr: { get_input: mr_ip_addr } + mr_ip_port: { get_input: mr_ip_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_signal_ipaddr)" > /opt/config/cpe_signal_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_signal_net_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata mr_ip_addr)" > /opt/config/mr_ip_addr.txt + echo "$(get_metadata mr_ip_port)" > /opt/config/mr_ip_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_dhcp_install.sh + cd /opt + chmod +x v_dhcp_install.sh + ./v_dhcp_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + + # vweb related + Cp_vweb_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_public + + Cp_vweb_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_1 } + requirements: + - virtual_binding: VDU_vweb_0 +# - virtual_link: VL_onap_private + + Cp_vweb_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vweb_private_ip_0 } + requirements: + - virtual_binding: VDU_vweb_0 + - virtual_link: VL_cpe_public + + VDU_vweb_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vweb_name_0 } + description: vweb + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + oam_ipaddr: { get_input: vweb_private_ip_1 } + cpe_public_ipaddr: { get_input: vweb_private_ip_0 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata cpe_public_ipaddr)" > /opt/config/cpe_public_ipaddr.txt + echo "$(get_metadata onap_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_web_install.sh + cd /opt + chmod +x v_web_install.sh + ./v_web_install.sh + capabilities: + virtual_compute: + properties: + #TODO add local disk size + virtual_memory: + virtual_mem_size: 4096 MB + virtual_cpu: + num_virtual_cpu: 2 + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/infra/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng.csar deleted file mode 100644 index 5011563a8299222051d14e11c681cfad96635d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15410 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 JG1z~*`#+|;n=JqU diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/images/ubuntu_16.04 b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/images/ubuntu_16.04 new file mode 100644 index 0000000..e69de29 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Artifacts/keys/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..a4e54bd --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,436 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbng + template_version: "1.0" + template_author: onap +description: vCPE_vbng + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbng: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-5555-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-5555-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbng ] ] + default: vcpe_vbng + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbng +# requirements: +# virtual_link: [ Cp_vbng_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vbng_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + brgemu_bng_private_net_id: + type: string + description: Private network that connects vBRG to vBNG + default: zdfw1bngin01_private + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the input side of vGMUX private network + default: 10.1.0.0/24 + cpe_signal_net_id: + type: string + description: Private network that connects vCPE elements with vCPE infrastructure elements + default: zdfw1cpe01_private + cpe_signal_private_net_cidr: + type: string + description: The CIDR of the vAAA private network + default: 10.4.0.0/24 + vbng_private_ip_0: + type: string + description: Private IP address that is assigned to the vBNG IN + default: 10.3.0.1 + vbng_private_ip_1: + type: string + description: Private IP address that is assigned to the vBNG to communicate with ONAP components + default: 10.0.101.10 + vbng_private_ip_2: + type: string + description: Private IP address that is assigned to the vBNG in the CPE_SIGNAL network + default: 10.4.0.3 + vbng_private_ip_3: + type: string + description: Private IP address that is assigned to the vBNG to vGMUX port + default: 10.1.0.10 + vbng_name_0: + type: string + description: Name of the vBNG + default: zdcpe1cpe01bng01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_Metro_vBNG_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vBNG + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: IP address of the SDNC + default: 10.0.7.1 + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRG to vBNG + VL_brgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: brgemu_bng_private_net_id} + cidr: { get_input: brgemu_bng_private_net_cidr } + dhcpEnabled: false + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_private_net_cidr } + dhcpEnabled: false + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + + # vbng related + Cp_vbng_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_public + + Cp_vbng_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_1 } + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_onap_private + + Cp_vbng_brgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_brgemu_bng_private_net + + Cp_vbng_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_2 } + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_cpe_signal + + Cp_vbng_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_3 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_bng_gmux_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbng_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbng_name_0 } + description: vbng + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + + brgemu_bng_net_ipaddr: { get_input: vbng_private_ip_0 } + cpe_signal_net_ipaddr: { get_input: vbng_private_ip_2 } + bng_gmux_net_ipaddr: { get_input: vbng_private_ip_3 } + oam_ipaddr: { get_input: vbng_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + bng_gmux_cidr: { get_input: bng_gmux_private_net_cidr } + cpe_signal_cidr: { get_input: cpe_signal_private_net_cidr } + brgemu_bng_cidr: { get_input: brgemu_bng_private_net_cidr } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata brgemu_bng_net_ipaddr)" > /opt/config/brgemu_bng_net_ipaddr.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata bng_gmux_net_ipaddr)" > /opt/config/bng_gmux_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata bng_gmux_cidr)" > /opt/config/bng_gmux_net_cidr.txt + echo "$(get_metadata cpe_signal_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata brgemu_bng_cidr)" > /opt/config/brgemu_bng_net_cidr.txt + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_bng_install.sh + cd /opt + chmod +x v_bng_install.sh + ./v_bng_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.mf new file mode 100644 index 0000000..3967e5a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vbng + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.yaml new file mode 100644 index 0000000..2684899 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/MainServiceTemplate.yaml @@ -0,0 +1,444 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbng + template_version: "1.0" + template_author: onap +description: vCPE_vbng + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbng: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-5555-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-5555-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbng ] ] + default: vcpe_vbng + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbng +# requirements: +# virtual_link: [ Cp_vbng_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vbng_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + onap_private_net_id: + type: string + description: onap OAM network id + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + brgemu_bng_private_net_id: + type: string + description: Private network that connects vBRG to vBNG + default: zdfw1bngin01_private + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the input side of vGMUX private network + default: 10.1.0.0/24 + cpe_signal_net_id: + type: string + description: Private network that connects vCPE elements with vCPE infrastructure elements + default: zdfw1cpe01_private + cpe_signal_private_net_cidr: + type: string + description: The CIDR of the vAAA private network + default: 10.4.0.0/24 + vbng_private_ip_0: + type: string + description: Private IP address that is assigned to the vBNG IN + default: 10.3.0.1 + vbng_private_ip_1: + type: string + description: Private IP address that is assigned to the vBNG to communicate with ONAP components + default: 10.0.101.10 + vbng_private_ip_2: + type: string + description: Private IP address that is assigned to the vBNG in the CPE_SIGNAL network + default: 10.4.0.3 + vbng_private_ip_3: + type: string + description: Private IP address that is assigned to the vBNG to vGMUX port + default: 10.1.0.10 + vbng_name_0: + type: string + description: Name of the vBNG + default: zdcpe1cpe01bng01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_Metro_vBNG_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vBNG + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: IP address of the SDNC + default: 10.0.7.1 + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRG to vBNG + VL_brgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: brgemu_bng_private_net_id} + cidr: { get_input: brgemu_bng_private_net_cidr } + dhcpEnabled: false + physicalNetwork: "physnet1" + + #cpe signal network + VL_cpe_signal: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: cpe_signal_net_id} + cidr: { get_input: cpe_signal_private_net_cidr } + dhcpEnabled: false + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + physicalNetwork: "physnet1" + + # vbng related + Cp_vbng_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_public + + Cp_vbng_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_1 } + requirements: + - virtual_binding: VDU_vbng_0 + #- virtual_link: VL_onap_private + + Cp_vbng_brgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_0 } + vnic_type: "direct" + virtual_network_interface_requirements: + - name: "sriov-support" + support_mandatory: true + network_interface_requirements: + interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}' + nic_io_requirements: + pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}' + pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}' + pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_brgemu_bng_private_net + + Cp_vbng_cpe_signal: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_2 } + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_cpe_signal + + Cp_vbng_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbng_private_ip_3 } + vnic_type: "direct" + virtual_network_interface_requirements: + - name: "sriov-support" + support_mandatory: true + network_interface_requirements: + interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}' + nic_io_requirements: + pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}' + pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}' + pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}' + requirements: + - virtual_binding: VDU_vbng_0 + - virtual_link: VL_bng_gmux_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbng_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbng_name_0 } + description: vbng + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + + brgemu_bng_net_ipaddr: { get_input: vbng_private_ip_0 } + cpe_signal_net_ipaddr: { get_input: vbng_private_ip_2 } + bng_gmux_net_ipaddr: { get_input: vbng_private_ip_3 } + oam_ipaddr: { get_input: vbng_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + bng_gmux_cidr: { get_input: bng_gmux_private_net_cidr } + cpe_signal_cidr: { get_input: cpe_signal_private_net_cidr } + brgemu_bng_cidr: { get_input: brgemu_bng_private_net_cidr } + dcae_collector_ip: { get_input: dcae_collector_ip } + dcae_collector_port: { get_input: dcae_collector_port } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata brgemu_bng_net_ipaddr)" > /opt/config/brgemu_bng_net_ipaddr.txt + echo "$(get_metadata cpe_signal_net_ipaddr)" > /opt/config/cpe_signal_net_ipaddr.txt + echo "$(get_metadata bng_gmux_net_ipaddr)" > /opt/config/bng_gmux_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata bng_gmux_cidr)" > /opt/config/bng_gmux_net_cidr.txt + echo "$(get_metadata cpe_signal_cidr)" > /opt/config/cpe_signal_net_cidr.txt + echo "$(get_metadata brgemu_bng_cidr)" > /opt/config/brgemu_bng_net_cidr.txt + echo "$(get_metadata dcae_collector_ip)" > /opt/config/dcae_collector_ip.txt + echo "$(get_metadata dcae_collector_port)" > /opt/config/dcae_collector_port.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_bng_install.sh + cd /opt + chmod +x v_bng_install.sh + ./v_bng_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbng/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu.csar deleted file mode 100644 index 0f9919928eb2f422b9946952eef007b8a09e7b45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14569 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 VXT=}@0Nl?n=+D=Diuu>o{{tbk361~& diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/images/ubuntu_16.04 b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/images/ubuntu_16.04 new file mode 100644 index 0000000..e69de29 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Artifacts/keys/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..ffeceaa --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,290 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbrgemu + template_version: "1.0" + template_author: onap +description: vCPE_vbrgemu + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbrgemu: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-4444-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-4444-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbrgemu ] ] + default: vcpe_vbrgemu + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbrgemu +# requirements: +# virtual_link: [ Cp_vbrgemu_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + vbrgemu_bng_private_net_id: + type: string + description: Private network that connects vBRGEMU to vBNG + default: zdfw1bngin01_private + vbrgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + vbrgemu_private_ip_0: + type: string + description: Private IP address towards the BRGEMU-BNG network + default: 10.3.0.4 + vbrgemu_name_0: + type: string + description: Name of the vBRGEMU + default: zdcpe1cpe01brgemu01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_BGREMU_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_BRGEMU + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: SDNC ip address used to set NAT + default: 10.0.7.1 + compile_state: + type: string + description: State to compile code or not (done, auto or build) + default: auto + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRGEMU to vBNG + VL_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: vbrgemu_bng_private_net_id} + cidr: { get_input: vbrgemu_bng_private_net_cidr } + dhcpEnabled: false + + # vbrgemu related + Cp_vbrgemu_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbrgemu_0 + #- virtual_link: VL_public + + Cp_vbrgemu_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbrgemu_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + # TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vbrgemu_0 + - virtual_link: VL_vbrgemu_bng_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbrgemu_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbrgemu_name_0 } + description: vbrgemu + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + vbrgemu_bng_private_net_cidr: { get_input: vbrgemu_bng_private_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata vbrgemu_bng_private_net_cidr)" > /opt/config/brgemu_bng_private_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_brgemu_install.sh + cd /opt + chmod +x v_brgemu_install.sh + ./v_brgemu_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.mf new file mode 100644 index 0000000..c6a971a --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vbrgemu + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.yaml new file mode 100644 index 0000000..3af4243 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/MainServiceTemplate.yaml @@ -0,0 +1,293 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vbrgemu + template_version: "1.0" + template_author: onap +description: vCPE_vbrgemu + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vbrgemu: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-4444-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-4444-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vbrgemu ] ] + default: vcpe_vbrgemu + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vbrgemu +# requirements: +# virtual_link: [ Cp_vbrgemu_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + onap_private_net_id: + type: string + description: onap OAM network id + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + vbrgemu_bng_private_net_id: + type: string + description: Private network that connects vBRGEMU to vBNG + default: zdfw1bngin01_private + vbrgemu_bng_private_net_cidr: + type: string + description: The CIDR of the input side of vBNG private network + default: 10.3.0.0/24 + vbrgemu_private_ip_0: + type: string + description: Private IP address towards the BRGEMU-BNG network + default: 10.3.0.4 + vbrgemu_name_0: + type: string + description: Name of the vBRGEMU + default: zdcpe1cpe01brgemu01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_BGREMU_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_BRGEMU + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + sdnc_ip_addr: + type: string + description: SDNC ip address used to set NAT + default: 10.0.7.1 + compile_state: + type: string + description: State to compile code or not (done, auto or build) + default: auto + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBRGEMU to vBNG + VL_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: vbrgemu_bng_private_net_id} + cidr: { get_input: vbrgemu_bng_private_net_cidr } + dhcpEnabled: false + physicalNetwork: "physnet1" + + # vbrgemu related + Cp_vbrgemu_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vbrgemu_0 + #- virtual_link: VL_public + + Cp_vbrgemu_vbrgemu_bng_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vbrgemu_private_ip_0 } + vnic_type: "direct" + virtual_network_interface_requirements: + - name: "sriov-support" + support_mandatory: true + network_interface_requirements: + interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}' + nic_io_requirements: + pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}' + pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}' + pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}' + requirements: + - virtual_binding: VDU_vbrgemu_0 + - virtual_link: VL_vbrgemu_bng_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vbrgemu_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vbrgemu_name_0 } + description: vbrgemu + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + vbrgemu_bng_private_net_cidr: { get_input: vbrgemu_bng_private_net_cidr } + demo_artifacts_version: { get_input: demo_artifacts_version } + install_script_version: { get_input: install_script_version } + sdnc_ip: { get_input: sdnc_ip_addr } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata vbrgemu_bng_private_net_cidr)" > /opt/config/brgemu_bng_private_net_cidr.txt + echo "$(get_metadata demo_artifacts_version)" > /opt/config/demo_artifacts_version.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata sdnc_ip)" > /opt/config/sdnc_ip.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_brgemu_install.sh + cd /opt + chmod +x v_brgemu_install.sh + ./v_brgemu_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacats/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vbrgemu/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux.csar deleted file mode 100644 index 3d2dbf732ceef5181b2fd7299405a0ce46450f03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15023 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 a!RO!6L4W3b0sz4M{DJ;_&68MvyZb-SkHrB1 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/images/ubuntu_16.04 b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/images/ubuntu_16.04 new file mode 100644 index 0000000..e69de29 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Artifacts/keys/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..0d1b8aa --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,381 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgmux + template_version: "1.0" + template_author: onap +description: vCPE_vgmux + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgmux: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-3333-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-3333-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgmux ] ] + default: vcpe_vgmux + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vgmux +# requirements: +# virtual_link: [ Cp_vgmux_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vgmux_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the vBNG-vGMUX private network + default: 10.1.0.0/24 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: The CIDR of the vGMUX private network + default: 10.5.0.0/24 + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the vBRG-vBNG private network + default: 10.3.0.0/24 + vgmux_private_ip_0: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with the vBNG + default: 10.1.0.20 + vgmux_private_ip_1: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with ONAP components + default: 10.0.101.20 + vgmux_private_ip_2: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with vGWs + default: 10.5.0.20 + vgmux_name_0: + type: string + description: Name of the vGMUX + default: zdcpe1cpe01mux01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_vGMUX_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vGMUX + bng_gmux_private_ip: + type: string + description: Private IP address that is assigned to the vBNG to communicate with the vGMUX + default: 10.1.0.10 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: mux_gw_private_net_id} + cidr: { get_input: mux_gw_private_net_cidr } + dhcpEnabled: false + + # vgmux related + Cp_vgmux_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_public + + Cp_vgmux_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_1 } + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_onap_private + + Cp_vgmux_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + #TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_bng_gmux_private_net + + Cp_vgmux_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_2 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + #TODO HPA + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_mux_gw_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vgmux_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgmux_name_0 } + description: vgmux + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_to_bng_net_ipaddr: { get_input: vgmux_private_ip_0 } + oam_ipaddr: { get_input: vgmux_private_ip_1 } + mux_gw_net_ipaddr: { get_input: vgmux_private_ip_2 } + bng_to_mux_net_ipaddr: { get_input: bng_gmux_private_ip } + bng_mux_net_cidr: { get_input: bng_gmux_private_net_cidr } + oam_cidr: { get_input: onap_private_net_cidr } + mux_gw_net_cidr: { get_input: mux_gw_private_net_cidr } + brg_bng_net_cidr: { get_input: brgemu_bng_private_net_cidr } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata mux_to_bng_net_ipaddr)" > /opt/config/mux_to_bng_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata mux_gw_net_ipaddr)" > /opt/config/mux_gw_net_ipaddr.txt + echo "$(get_metadata bng_to_mux_net_ipaddr)" > /opt/config/bng_to_mux_net_ipaddr.txt + echo "$(get_metadata bng_mux_net_cidr)" > /opt/config/bng_mux_net_cidr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata mux_gw_net_cidr)" > /opt/config/mux_gw_net_cidr.txt + echo "$(get_metadata brg_bng_net_cidr)" > /opt/config/brg_bng_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gmux_install.sh + cd /opt + chmod +x v_gmux_install.sh + ./v_gmux_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/onap_dm.yaml new file mode 100644 index 0000000..0a3faba --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/Definitions/onap_dm.yaml @@ -0,0 +1,827 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +#Artifact Types +#Based on R2 Design-time Resource DM clean version v8 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + +#Capabilities Type +#Based on R2 Design-time Resource DM clean version v21 +capability_types: + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.Metric: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Root + properties: + logical_node: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + compute_requirements: + type: map + entry_schema: + type: string + required: false + requested_additional_capabilities: + type: map + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + required: false + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + required: true + + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + +#Data Types +#Based on R2 Design-time Resource DM clean version v45 +data_types: + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + properties: + mac_address_assignment: + type: boolean + required: true + + tosca.datatypes.nfv.injectFile: + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + properties: + ip_address_assignment: + type: boolean + required: true + floating_ip_activated: + type: boolean + required: true + ip_address_type: + type: string + required: false + constraints: + - valid_values: [ipv4, ipv6] + number_of_ip_address: + type: integer + required: false + fixed_ip_address: + type: list + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + properties: + address_type: + type: string + required: true + constraints: + - valid_values: [mac_address, ip_address] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData # empty in "GS NFV IFA011 V0.7.3" + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + required: false + + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: false + description: + type: string + required: false + support_mandatory: + type: boolean + required: true + #TODO HPA + network_interface_requirements: + type: map + entry_schema: + type: string + required: true + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + required: false + + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + properties: + layer_protocol: + type: string + required: true + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + flow_pattern: + type: string + required: false + constraints: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + - valid_values: [Line, Tree, Mesh] + + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + properties: + #name: + # key of containing map + support_mandatory: + type: boolean + required: true + min_requested_additional_capability_version: + type: string + required: false + preferred_requested_additional_capability_version: + type: string + required: false + requested_additional_capability_name: + type: string + required: true + target_performance_parameters: + type: map + entry_schema: + type: string + required: true + + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + properties: + virtual_mem_size: + type: scalar-unit.size # Number + required: true + virtual_mem_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_memory_requirements: + type: map + entry_schema: + type: string + required: false + numa_enabled: + type: boolean + required: false + + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + properties: + cpu_architecture: + type: string + required: false + num_virtual_cpu: + type: integer + required: true + virtual_cpu_clock: + type: scalar-unit.frequency + required: false + virtual_cpu_oversubscription_policy: + type: string + required: false + #TODO HPA + vdu_cpu_requirements: + type: map + entry_schema: + type: string + required: false + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + required: false + + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + properties: + cpu_pinning_policy: + type: string # CpuPinningPolicy + constraints: + - valid_values: [ static, dynamic ] + required: false + cpu_pinning_map: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + additional_vnfc_configurable_properties: + type: map + entry_schema: + type: string + required: false + + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + properties: + min_number_of_instances: + type: integer + required: true + max_number_of_instances: + type: integer + required: true + #localAffinityOrAntiAffinityRule: # not defined in SOL001 v.6.0 + # type: tosca.datatype.nfv.LocalAffinityOrAntiAffinityRule + # required: true + #affinityOrAntiAffinityGroupId: # not defined in SOL001 v.6.0 + # type: string + # required: true + watchdog: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: true + vmBootUpTimeOut: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + properties: + max_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + min_bit_rate_requirements: + type: tosca.datatypes.nfv.LinkBitRateRequirements + required: true + qos: + type: tosca.datatypes.nfv.Qos + required: false + initiationParameters: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: map + entry_schema: + type: string + required: false + cidr: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkName: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + startIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + endIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + gatewayIp: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + segmentationId: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: integer + required: false + physicalNetwork: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + networkType: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: string + required: false + constraints: + - valid_values: [VLAN, VXLAN] + dhcpEnabled: # not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + vlanTransparent: #Align with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v.6.0 + type: boolean + required: false + + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + properties: + description: + type: string + required: true + vdu_levels: + type: map # key: vduId + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + scale_info: + type: map # key: aspectId + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + properties: + number_of_instances: + type: integer + required: true + + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + #properties: + #parameters: + #modeled as part of operation parameter list + + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + scaling_by_more_than_one_step_supported: + type: boolean + + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + arbitrary_target_levels_supported: + type: boolean + + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + #parameters: + #modeled as part of the operation parameter list + causes: + type: list + entry_schema: + type: string + + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + properties: + min_graceful_termination_timeout: + type: integer + max_recommended_graceful_termination_timeout: + type: integer + + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + properties: + scaleLevel: + type: integer + required: true + + tosca.datatypes.nfv.ScaleAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + associated_group: + type: string #Identifier + required: false + max_scale_level: + type: integer #PositiveInteger + required: true + + tosca.datatypes.nfv.LinkBitRateRequirements: + derived_from: tosca.datatypes.Root + properties: + root: + type: integer + required: true + leaf: + type: integer + required: true + + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + properties: + latency: + type: integer #Number [ms] + required: true + packet_delay_variation: + type: integer #Number [ms] + required: true + packet_loss_ratio: + type: float + constraints: + - in_range: [ 0.0, 1.0 ] + required: false + + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + properties: + asscociated_layer_protocol: + type: string + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + required: true + address_data: + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + properties: + is_autoscale_enabled: + type: boolean + required: false + is_autoheal_enabled: + type: boolean + required: false + additional_configurable_properties: + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + required: false + + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + required: false + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + required: false + + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + properties: + #TODO HPA + logical_node_requirements: + type: map # not defined in SOL001 v.6.0 + entry_schema: + type: string + required: false + +#Interface Types +#Based on R2 Design-time Resource DM clean version v10 +interface_types: + tosca.interfaces.nfv.vnf.lifecycle.Nfv: + derived_from: tosca.interfaces.Root + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + # indicator_changed: + # description: On receiving a VNF indicator value change notification + +#Node Types +#Based on R2 Design-time Resource DM clean version v36 +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + entry_schema: + type: string + required: false + nfvi_constraints: + type: list + entry_schema: + type: string + required: false + configurable_properties: + type: map + entry_schema: + type: tosca.datatypes.nfv.VnfcConfigurableProperties + required: true + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + required: true + inject_files: #Aligned with ONAP R2 IM. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + #type: list + #entry_schema: + #TODO workaround of SDC bug + type: tosca.datatypes.nfv.injectFile + required: false + meta_data: #metadata attached to the VM or container + type: map + entry_schema: + type: string + required: false + user_data: #cloudinit userdata script support + type: string + required: false + #attributes: NOT DEFINED IN ONAP IM and SOL001 + #private_address: + # status: deprecated + #public_address: + # status: deprecated + #networks: + # status: deprecated + #ports: + # status: deprecated + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [1, UNBOUNDED] + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.Vdu.AttachedTo + node: tosca.nodes.nfv.Vdu.VirtualStorage + occurrences: [ 0, UNBOUNDED ] + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.nfv.SwImage + + tosca.nodes.nfv.Vdu.VirtualStorage: + derived_from: tosca.nodes.Root + properties: + #id: + # node name + type_of_storage: + type: string + constraints: + - valid_values: [volume, object, root, block] + required: true + size_of_storage: + type: scalar-unit.size + required: true + #TODO HPA + vdu_storage_requirements: + type: map + entry_schema: + type: string + required: false + rdma_enabled: + type: boolean + required: false + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + #artifacts: + # - sw_image: + # file: + # type: tosca.artifacts.Deployment.Image + + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + properties: + layer_protocol: + type: list + entry_schema: + constraints: + - valid_values: [ethernet, mpls, odu2, ipv4, ipv6, pseudo_wire ] + type: string + required: true + role: #Name in ETSI NFV IFA011 v0.7.3 cpRole + type: string + constraints: + - valid_values: [ root, leaf ] + required: false + description: + type: string + required: false + protocol_data: + type: list + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + required: true + trunk_mode: + type: boolean + required: true + allowedAddressData: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: tosca.datatypes.nfv.AddressData + required: false + + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + properties: + bitrate_requirement: + type: integer + required: false + vnic_name: # Aligned with ONAP R2 Im.not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + required: false + vnic_order: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: integer + required: false + vnic_type: # Aligned with ONAP R2 Im. not defined in IFA011 v2.4.1 and SOL001 v0.6.0 + type: string + constraints: + - valid_values: [normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder] + required: false + virtual_network_interface_requirements: + type: list + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + required: false + #order: + # type: integer + # required: false + # constraints: + # - greater_or_equal: 0 + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + required: true + description: + type: string + required: false + test_access: + type: list + entry_schema: + type: string + required: false + vl_profile: + type: tosca.datatypes.nfv.VlProfile + required: true + capabilities: + monitoring_parameter: + type: tosca.capabilities.nfv.Metric + occurrences: [0, UNBOUNDED] + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + required: true + descriptor_version: # instead of vnfd_version + type: string + required: true + provider: # instead of vnf_provider + type: string + required: true + product_name: # instead of vnf_product_name + type: string + required: true + software_version: # instead of vnf_software_version + type: string + required: true + product_info_name: # instead of vnf_product_info_name + type: string + required: false + product_info_description: # instead of vnf_product_info_description + type: string + required: false + vnfm_info: + type: list + entry_schema: + type: string + required: true + localization_languages: + type: list + entry_schema: + type: string + required: false + default_localization_language: + type: string + required: false + configurable_properties: + type: tosca.datatypes.nfv.VnfConfigurableProperties + required: false + modifiable_attributes: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + required: false # true in IFA011, but all of members are false + flavour_id: + type: string + required: true + flavour_description: + type: string + required: true + #capabilities: + # monitoring_parameter: + # modelled as ad hoc capabilities in the VNF node template + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + node: tosca.nodes.nfv.VnfVirtualLink + occurrences: [ 0, UNBOUNDED ] + interfaces: + Nfv: + type: tosca.interfaces.nfv.vnf.lifecycle.Nfv + +#Relationship Types +#Based on R2 Design-time Resource DM clean version v4 +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable] + + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable] + + tosca.relationships.nfv.Vdu.AttachedTo: + derived_from: tosca.relationships.DependsOn + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.mf new file mode 100644 index 0000000..c096351 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vgmux + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.yaml new file mode 100644 index 0000000..ff10975 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/MainServiceTemplate.yaml @@ -0,0 +1,389 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgmux + template_version: "1.0" + template_author: onap +description: vCPE_vgmux + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgmux: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-3333-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-3333-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgmux ] ] + default: vcpe_vgmux + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: simple + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + +topology_template: +# substitution_mappings: +# node_type: onap.vcpe_vgmux +# requirements: +# virtual_link: [ Cp_vgmux_public, virtual_link ] # expose as external CP +# virtual_link: [ Cp_vgmux_onap_private, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + onap_private_net_id: + type: string + description: onap OAM network id + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + bng_gmux_private_net_id: + type: string + description: Private network that connects vBNG to vGMUX + default: zdfw1bngmux01_private + bng_gmux_private_net_cidr: + type: string + description: The CIDR of the vBNG-vGMUX private network + default: 10.1.0.0/24 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: The CIDR of the vGMUX private network + default: 10.5.0.0/24 + brgemu_bng_private_net_cidr: + type: string + description: The CIDR of the vBRG-vBNG private network + default: 10.3.0.0/24 + vgmux_private_ip_0: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with the vBNG + default: 10.1.0.20 + vgmux_private_ip_1: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with ONAP components + default: 10.0.101.20 + vgmux_private_ip_2: + type: string + description: Private IP address that is assigned to the vGMUX to communicate with vGWs + default: 10.5.0.20 + vgmux_name_0: + type: string + description: Name of the vGMUX + default: zdcpe1cpe01mux01 + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_vGMUX_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Intrastructure_Metro_vGMUX + bng_gmux_private_ip: + type: string + description: Private IP address that is assigned to the vBNG to communicate with the vGMUX + default: 10.1.0.10 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: integer + description: dcae collector port + default: 8080 + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + + node_templates: + #onap public net +# VL_public: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: public_net_id } +# +# #onap oam net +# VL_onap_private: +# type: tosca.nodes.nfv.VnfVirtualLink +# properties: +# connectivity_type: +# layer_protocol: ipv4 +# vl_profile: +# max_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# min_bit_rate_requirements: +# root: 10000000 +# leaf: 10000000 +# networkName: { get_input: onap_private_net_id } +# cidr: { get_input: onap_private_net_cidr } + + #Private network that connects vBNG to vGMUX + VL_bng_gmux_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: bng_gmux_private_net_id} + cidr: { get_input: bng_gmux_private_net_cidr } + dhcpEnabled: false + physicalNetwork: "physnet1" + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocol: ipv4 + vl_profile: + max_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + min_bit_rate_requirements: + root: 10000000 + leaf: 10000000 + networkName: { get_input: mux_gw_private_net_id} + cidr: { get_input: mux_gw_private_net_cidr } + dhcpEnabled: false + physicalNetwork: "physnet1" + + # vgmux related + Cp_vgmux_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_public + + Cp_vgmux_onap_private: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_1 } + requirements: + - virtual_binding: VDU_vgmux_0 + #- virtual_link: VL_onap_private + + Cp_vgmux_bng_gmux_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_0 } + vnic_type: "direct" + virtual_network_interface_requirements: + - name: "sriov-support" + support_mandatory: true + network_interface_requirements: + interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}' + nic_io_requirements: + pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}' + pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}' + pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_bng_gmux_private_net + + Cp_vgmux_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocol: [ipv4] + trunk_mode: false + protocol_data: + - asscociated_layer_protocol: ipv4 + address_data: + address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgmux_private_ip_2 } + vnic_type: "direct" + virtual_network_interface_requirements: + - name: "sriov-support" + support_mandatory: true + network_interface_requirements: + interfaceType: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "SR-IOV"}' + nic_io_requirements: + pciVendorId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1234"}' + pciDeviceId: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "5678"}' + pciNumDevices: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1"}' + requirements: + - virtual_binding: VDU_vgmux_0 + - virtual_link: VL_mux_gw_private_net + + VirtualStorage_root_all: + # this indicate the VDU root storage size + type: tosca.nodes.nfv.Vdu.VirtualStorage + properties: + type_of_storage: root + size_of_storage: 40 GB + + VDU_vgmux_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgmux_name_0 } + description: vgmux + configurable_properties: + additional_vnfc_configurable_properties: {} + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: #TODO SDC bug + source_path: ../Artifacts/keys/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_to_bng_net_ipaddr: { get_input: vgmux_private_ip_0 } + oam_ipaddr: { get_input: vgmux_private_ip_1 } + mux_gw_net_ipaddr: { get_input: vgmux_private_ip_2 } + bng_to_mux_net_ipaddr: { get_input: bng_gmux_private_ip } + bng_mux_net_cidr: { get_input: bng_gmux_private_net_cidr } + oam_cidr: { get_input: onap_private_net_cidr } + mux_gw_net_cidr: { get_input: mux_gw_private_net_cidr } + brg_bng_net_cidr: { get_input: brgemu_bng_private_net_cidr } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + user_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata mux_to_bng_net_ipaddr)" > /opt/config/mux_to_bng_net_ipaddr.txt + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata mux_gw_net_ipaddr)" > /opt/config/mux_gw_net_ipaddr.txt + echo "$(get_metadata bng_to_mux_net_ipaddr)" > /opt/config/bng_to_mux_net_ipaddr.txt + echo "$(get_metadata bng_mux_net_cidr)" > /opt/config/bng_mux_net_cidr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata mux_gw_net_cidr)" > /opt/config/mux_gw_net_cidr.txt + echo "$(get_metadata brg_bng_net_cidr)" > /opt/config/brg_bng_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gmux_install.sh + cd /opt + chmod +x v_gmux_install.sh + ./v_gmux_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + # HPA requirements + vdu_memory_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + requirements: + - virtual_storage: VirtualStorage_root_all + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/images/ubuntu_16.04 + type: tosca.artifacts.nfv.SwImage + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgmux/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw.csar b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw.csar deleted file mode 100644 index 79e0d2012d09784fef48c89ae3ef6e0240d0f08c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23182 zcmeGCQ_L_-5G4#gwr$(CZQHhO+qP}n#{1Z|ZEL@of0Nz$lbPL%z1&W!)9IY*i>{>3 zsp?jc1_prw_#eYjt5oiPF8-g>|JW6DaOSNPxJQ2!U4h^d2(y{E0Ioy-5h z1^a*JBCjGLs`Nh{Q2>AdAOKu6OXc2VWgz$f0RVjeGphfyqoJ#dg}sxdm#K-qwW+5w z>cpg55Ced~f^UD3w;VhaRf7xyia14@fE!Gq1O|!W^jdr0PInHve$06OK7Yloh)rF( zO5<)fI9`A~*zPaG-8VCEFy(5XA726@e8{78m==2OcCJFEk-?2(cc3eMebOlx-9sl( z@SUdV45F~Y==Z;dl>CBv8*jUqPD)N*L_M7eP-Zc)D@(Ti_H5}Qdp+8u_hQ$`UT-_d zI2MxB^Avrft#)%_<*_v}1iG`g%fj8U37BLtwcZ$7J@1N^0k`M0We-o#i{!)kD!Gsx zf5C(g<>8U}7x&KkWCqX?`65P&3uXN>ij#9J9pdNUC?PFj0CyG}yluf;gPngfOO5hoV|7e%{=#0}rbS@IyEq*&oh;imIcLYMiNSo~!7q z)|5PVzF04l;VAoX(CM(ry#@!g1a<(mFq62-kVv@4&^rhB{Wj36W(}85FLY9e!rDra z==_3J$Ie>YS!c5G*#g!B)Rb|kxq=+hrd3yd)3M^jYM=}kS|UnA8O~cryv;F2B3s|W z=}J#^hsMO>2pYI|8T!*P#g`~#L||&n@Af^FSYTC&Ih3jGYVq#cmh!nk25t1Zb> zk-V^~PDQa-T44jGQ|AIUTD-EF-K;Dxutm`NxQvW!C5R|A?8qV(APPtDYW=#f{1{Z!Q5hNmqfqRYb+aU#XK>ucvhszCoK3dPGWv< z1M;2RGG!QgEa?*gkCUTS_sfdN4Qi!lBQ?F^?AcY*e-5 zg?yFn(-s)f$}ODY@s)^)CC{objdPlS2&)}w+?gii7*j3+N!1BRy?95i^(tgKP&eIj z=#v!y#bZ?+`h0!`>pzGC_KJBc6nDSQ~{ zrs06)dgyQ=q59l!lbTwg@w@@jx!NXiZ>eb{cZ@(FDJzVIea*>*8kNy7l$&Vw-xia4 z5w#PnCD-){ZgBH|X&3!I7Joo%PNcr$S_2>O6>#J-FlyJJoo82<0a-pjzFC5^*$t7L zG}q3H>L;&iYW!Pb*9uvz2R0SV4lq6)mgTLLagQ#H8TRo(3~e$jXyP4or)cpsRx?U1 z>JSt#H|Cz)4XQOkZRU6(lCn-Qse$b;(H;BNo>rl0*EUj{!UFq`u%U`8|;70p#SeYM*9Cv2BmXwHTwTk*#GY+Y$JQn4*tK3hyBk8 z{yzl3*3jIPT9#^tnlhH1Wr>;L00`iJuYh3wJ50pX%+k)%#nRsH|I$kT7juRMm&#dA z>6ys=2RUK{03i9lA!Q9M?UYTO+$@bvRZMLiYz$pY={yZ>ZEmzKoVM5ye(%Z!PUM#2 zs1=iP*VV>vCX#YHUJ5nh>gB>hB@}{0kzfFn(w3e#qJ?`ZMclmP6EoMx^za*^N!=vn zGC*aqIoHQ=kn=MUi)6kR0kcLL&^sn_gy&eb&75b1aW)f%XR!cqAhC`oo(sdd2rgma zrY(4;6qIaR)rvKzlnf@wL)-u!3<*x@<>9|h8{RJWORV+qa^T}<7eAO(~lcfyr)3aQ4 zFcR;dgyr+CE#U)P54)WY#6b$|fnUH~beV+Pvaa!gu7UXmVG6t{M*ktSb^(n|7uJGl zuPRs5o)Yan$Xs)mP+S;|B~u#awjaCK<-Ln)&oZ@ z;|Zy|F!HwoJD3<%TMYmO<`|+oed2H>Vdj`6&>C)301%(twTPxu`A@r<13FH6*jWQ3CNQH>qYf zHOQ*7f&KI_QtGg*S+Oni7rzK4_T2B{%;k0T1g1&BJVG8b34To+!idnz@9F@{jnJ#t zL>vvenb8{h@L0DQU118y?}k7E^%nnf62u7vqhSQ`%trBg*1eY063dN!DHq8>nGwm4 z`ki!v=4-T`(r7P3`(@3T^4XiOp_{&vJ zsz-b1of}I_%`oI!_|t6sxm82yUeSxVyKUl5Yy`YBb*km%sx_~y+o%!R{)I}IRw_t1 zN%!<+3Zx!%bT!L^x_d>{{d1%Nk_T_%8H%#eM#w~S)HSK3BGOn$Ljs8;7!W*}wU6wz zSI10hT|}0ZTqtVXlyffEjLzphMVV1oon0q!i%R%+rMk>zir_N3zQ^Mm(7U>Ag+Ian zwX?S4%emvb#jQ?cYYK0boATslheF2abb(&_oJ!w+hy0_!c*!xPqzOd2_{#nQAQ1me-cU8rI^p5L&w$YtkZ|6n^ zE^BtPbT$056}~21?0tlTd)p0ua8T)M!>fUuzZYwl{o8i)QeVyuU+;1Edg{`}n;Yv^ z7S^X)_?3{E;B+kzos9x&qB@s{JT#d7WbB!$D1NAN38Vx%oHO4^lrsSFLBOW)4RC*ZqTrAmx*)WV5=(wP z$r=n!#-jeaWTwpe(C1qcjURvHMjPv}@Q!#b#;2!>b`VNMv08TJg_o?$y%4^oO=;DN z)parH)^8;D#3;xl84BkG(9BVJ6s)+@3k$909Bn1>PJx0Y3=N)=NnbCM%O_Z1%UvdZ zy)YUtT<8LfTsi_V4{YmU1;CppvfUpKha*zRd}oYMpp$ z8}QUmiPBp6_FE)3si}x*oDw^!ts#xQQ3+2dnP^*iLB&;k@1s6m_6fG{EaC}T>77Z` z^+{gj%pt^6XI&ceNeA>3?zElxMgmL>Kn?mSxxvO*?)XnP%l+5uISUd+HoC~JbNIh!7Vy|YnrB?6{ zex85HslSRxncT0jF!Rb+OG651mYo2R_RRV0juoI~cy9p_oH{J4obUmr{CPCvXo|_- zTHblt`;f{-ftQf#Rnk{q20{#}K00e^Z(74Skye;}Q^BHx4iM+-_$3kre5HLA< z{A_$;JVhG`XCU1fsRySe;@;qq0(M`@N_@#H_)oqSexC1dAx-{d6mSN2zFNTV+`wO< z^9C6HZwiCdkw~aK)$?S7<#PmiLQ&PereCyVcc+)&i5Hi)oS2)2XZlEAqs+?q z!X2IV2lQEardfhEa(2YdV`Tm(+?V^rVOaw;=<498<{u2q7jMJgsi|02VuF^@A3?s0 zK(V3Aky+Y;c%by@qWIXxXmzl&u)lUNegbWG6HEmk_@*$yczcve2 zjBJdl5#C_~%3)Wj(tS{#3{Qf!Z%T)at~VT6l$3_-SunLHd_*Uzn}`yD!U30(#AO5ZKU;pl^1@sCe+j}(w;Ny95_r~zH|&a0`cbR>o2|QJY%zQa?dfp9Y=qf9;0aR+d8K2b ziG&Pihp{BNWn~5av{R}Ce+G;q#I}S3BJD=M<(IL>`uV)|-}<87_?jj;7YUP-OX&}6PIs%fpwAs+)qt*A z5do6q(V?B#?cmu(oQ=##ahnFmKg7Z?McFAoyLHMJ02<$owUA3}f5j1Dyh3Nu>ar{t z{sOpltJ^*R@-I<7?i8NU&3=ZKSU{ZO!uc2Wv`^bcAk|CsusVTR9LPl4QFX|>qjNmq zx)mGy(S4~n*r8c1$mUGaV7EX)nXCjYcji->s7u@{+eGX3iHBdf|FsT9H@%LvX8-_TVh04k_`lU7_I8F2`X;vjvj(}w)wMrn zxzE)%+~J*FDPAx5Sb9piP1-<2jiNE@~%mk)O`~Y)$CGv^u@IDzjv0qCY*Y$2dcn1%*c2^?xuG^*W!mAEh zMh<1Uos_^pqSjv$wZs(YjkFXvgpy-jsW9zsJ%)=GGo(^MW4cQ;zip-FA5elW6|$&u zzzv*ZSz1)`9hkj@<7)0g^P$$%k#LDTVbrhUai}2v#NzGYOGLTx1_9IBGX5*InBf=P!=>X6a~4zV@%3JV zx+Rl#GDkqBM5!L3=WGTdK=snJe!}Q(+2k1+RJgA9LE;6v`s0 zS#{UcZ?3ZUoNJ3mnF}MfX#$c7X>yiJG{WZgF*AF2ZL*u@T@8t0suPsOnJ(q7R_@RK z`S8{=~!8kd+?LT>Q^ScJo$|%*_&ifyk-%1vIAz3a-}kMrAzbUM%hDQqzmziK~gPX z#0VmmnaS2mvFy{y#srt1Q+Pt)+Hy_EuR%)s$h>@dd1f#f4T9zbXnYS6v71-L^^VCc zm@p8B9Irjs1;={|PAtKlKl14@x`Y(qtl2Rx)P^1C_0KhoiWv_wG?RaW_DX|@1%y+a zQeIitGjS^-;zdYuI2Bfq9+mn%HZKtK44NtDewV;s!}^J-HG2w}x0|{W#es)UX*(to z<=vqdcj7TB#_XU|9U$_F$w@)Hs^mBVeax2#|CR2PMRtS2^mYT3) znbGS<0%$SpzFCG12-R4eViQv&)yH9&y67&Vvye%DXSuh--8^xakUy#K@N9cDA_#46 zFAczLn%3t~QqPRa!i8o2Z+C9z#v1-fYXy~_wdKuzHOa|mw`%O@F7G{!{7%s0!Ipj8 z`sB+=08j(`>&PoOn<0A9IoZ)TQ#bM`@f<5J=y*dTy#;m2;z}E#9OTeHyf6)?_s>)J@U97xG6sI`=4y*H)eaZPMtQSGc2wU4i)ws)3B{4bW!kyev{$RB^p1L=(f$v? zDk<7@I7#Rdb$ak}7h?0K<`sa+G3e0{?%+O}N)wo49Y{B_(8od+<}fF)d92v-XQf5F zRKba3gLpAy#GgMlqpm6ujgW3#$!)c*sJ0mA%#D7lQ!Q>w<0~~uS$R(t$j&$ex7y&-)KK&qUoWZ`mY zQ5oOvL#LWp*AF1?c*HciiIa-`1rZo~W8XHd>UDABBHAabGZ|zCBHBj}sH%YG z@qs;Lt>kDNmLGFum@k_xMf%>wViR;98t8vLll4g?V2Dt8!I;n)Tz2YM%P16hzRhCG z%)k0`^1}h1mF43o1-biADB(T7!v}(mk5py6q<+BL+z*zHOVq9^WFh!YTU#JY?vxb6 ztl?gHdjxd-$%^B@%PR1WmeHx_!(I(l_24>?(rs;Txx*zIRBnvJ`q3A4sSV{yPsC1Ba5|sHa(0!y^xy}F5*RabmVzk z>2mv2F5M5GXKsCZHnQWNs&O~g7c_m*v;@mWDn}{7IEOsIJE%FVnf^A9$R1MevS-DnQ zfNBY5yG-t4l71eI$QA8~!1GWe41jk;Vy>1#$f|gUoq; zrdxXBP|-uPf76DTqoz1hXuX~1M1@}^zofQ7>b=qBi^)tMFJYL}U{3njU0FI)_Z1mZ zE*hxhUE9VGb&}9cR`fe4gLF{qhjZLx@`JBZ`ktw)(-*=?u<$81U~eBLtVj z3%nHj-1Ra_lFB$ziz*pGknstYUaDbW`C}j zIU@HMk`93nd1EZ+!mO)teSIUI#kAp`Do5l)Luu}7{TS51>Ji8_X%JY1N&PegL#;`H zVbt_FG)UqwYifR-}=!8rk+4i_7@Ni8bk!u2r>*dd6dZkszy$=EGaUBizb$5#KB zX0m>K{C5fYLwNqPthih+L}d$k(rX(z%`6@tYk`F+*}614$A`6<-BpcgYqw10*Ie2T~;jULk8ANWE*G65KbY?_& zGB+#e?!L|b;W)@8s?y_u`IC}dTkuCKq?~Fe z0w9r@gI+uiIOJ%2!(O~DUIPPk?6E_M*uKJhSb$zTdwpLRde9&zVzxN%s3YTez5n=n zCak2=jz?bMoYmbUM#F|b7fmAY^+v0{kMF)t;G+KL$0hD+LANV|N4EDJK6IR2d!uzq z95(=7KTLxj*9(4qb1va73ah_9^6GtfY_zDczsiifdy63qNZO*thH|IWbo zeSGtPQUx+rp0o7SZ0+Wd6=bGNBWrR0^DbkKvp#ytjpucZ!iJq4y=g3weaQ09^=|c= zfgTW!n4@I1>bYdJEWrP&m5OVp#plKW%dlE#r#EB_=n3F6 zE*4aF7^ut>kXZ50%pD^%gNxc4b&R{}T>cSS)Bdq!C%GATtRgdHKhSOqOX@_6GZ+#l z%aU9pz+#RTHVKwQnx*o$XTGh{90Nj9-~L#NyNdPzjz04sc5r^HnaoaOI%cOJ+0DzF zAuRe+LvLq?oiKSV5tf60o{yoFO^nCh4OPAx4Q`=}vhYIW*$fKtW%ls8H`ANVjQP#z zFBRxkwd*HtM^665p68}1#;rmVxAh3I1NuAq_~DJ&!Mqvi^Im=I7ZI-Xvzy~v*nV_c z-V1xkF}_%`Chtz}>RugjzCXLs>=?;_VU|yPVOKffS>9VGA{ApV7#`H=jwM_rdy4W< zXu(AeUgKs+SYBk^-RWR_HZpY9GPF4#n3WJ1;X~QJ%B}K*?38jQQ??d8I6$6(NLw8d zb)}HV38PE;b-ozTi-3snn#hyt`eH{a?5@tR} zCiOJK3Qq*E2J_;1+kb2X-|4=Ss)d%4r)`Ree?EvoXrROZb!csO&%n;%cX;0&A)?xk z8;TG}Uc|+RFrasY`P)7hV9q;CxGt2sQdav|Hnl}%-`THOz%{U244XN=+PxD~7kY1w zMYX{rj-@y9{wKc|PK=iC{f>i$OZLdN=N`!}Pl(v^@nc(Bt130la|ghR1u(Sr?&8)q zQrjOEhm^fjpl%!rq|!2~NE>N4t*F~It9J#Zw_MG>vEB<;H(2Ww zw6=->qeC7;`Ir&;Vr@g=D>zm#m_7!chThAyZA%5r;V*dq4=_H$5q%4*r}w=G=Ol2s=NooH2)Oob@P zzZ^t|xLV9y87sCQQ3z5H{yf%a@kLDNFwp_P-T6aoIW3^bfN>o>9ZDTpwS69kQCSHT zy^Nn#eh9eXP8c=YF=vOHEV_QerAd6 z4UYN;(~;Vio!P;Vw8h&qX!gtg(NJ8T+6eBWsgY}MHAK9dfGBhNjjX`KKV6XM_bsiq z_rxXAxahX$zJJX8*XZs%3%fk`3+Mb<-PDqBQ16@>?_b+lXY*pBbd z=k`h0@t$r?G~`VE^0JiLxt=lxL{TdY_fBB;0cX^LfA4-4-r@+(@OwTS(YwKx4_9}3 zzSuvXm+tWjz*A>7+fVCOl3W%O7g5*Qbk}33YzD*v7E$I~YDikgc0|!l+Bk?t=I68~ zyNq4{jo8mTI^I{7vITrew>=|22C9(BGT9Cu0$ zr~rC@gEz5bvnM)p%u7ew(*Nyme27AQTd#P`rx$TS_p4seXF&?^Xv(`xl=svfO8M20 z=c|96%FKl~0@$m)yX6i+edSu)uaX<_ZX%JST0bsM-pqto8$J)Kx;VZ*9o%1&aCto- z5zBLQp*x9w6B?RWcRnn|?!lcAxZG;9ew|W_$1MmAZU!d9n&gb!EngdpH z=ue4pXO3B%`fTuzS-L-rlQVQ&jp*!5jH%>lr`tMYrzBbbOGi$R{w@U`&h_S`(`K3> z-m!r0o1F_X4(Zwydu zEG&9zp7mtn0uQg37oB7LW3kM<9h$JK1Y2l|_!Ce%Qj`jUZj6H{VpmL z&q8IF^M2}B_3EJtMbq~I;g=c+*-KdOw$~|q>#;t6tASgs8OY$?f|~a*S~VDeV`xSE zX0I8V^Lo;>_apOC_IW&)^*CC~zU_YToAX*)0JBfdTul-cw^}SlNwC2KP__;1(jiqY zw+mg)XwidMDe+f_pEyNz&04Q~3e1Vsi=mAU`(BRgdN8{}vkbwAyRArxb+_O0IN*i& zgz>hfLfZ5dzec?&AM&r=ro@cw#4_7gO|QMkjOcKsjoH#|w+;XR=9qZ@YazJyYH+2k z#j*mpT(IDzV zmM7d9Z{c!NioRFyCsA&-U62 z$VQMM7n%dq)V+q6*Yehai22&F=<0IFPlLAn`%A}oh_p}B_phy7`@5}OEiPpcD?YiKhZ=Nf zkKyJZE5#clOWTF4z5h+7g7jh9p#tISRK54Fy<9!n+~9{lK$VXJyS_zSD-$n zv0cJ{tnd=}q`5k{A&`u<%N-19K)23M zm`2AR(q3;5xPkW~xeftPOjN*a1TvrcMn19hCwYMEa{rimuACn|k^|Q)xGm&Q zK#?T82NTRU8N3h1(KZOQtu2>Hig$Jww~yB;+6Y^(aPv-3jHh{>+FHukrM-AL1U!OS zEI~~5W1JluM>lB2!z=7YE|M>98qqXo=BdcaZ99i#&3}W%%x6wOiL-~^W^1R<(lM=c z-4A{aev7hUnbq9~*SkUKY-o4xFrA8o_0n3&Fyqk*F$0bLX~J<)r5A??;y>y?#dpQL zU)IFz`rO{!UUIq?>XkJPh}Oul_gxSSaA8oKRu#V>0?|Cv+jj% zy0x3Oc6XECbkhKdasv2^nkYgzWgOi|pBnGT`dWR`irdT2)VgC6)x_x^uD!|2l)vpM zAFAl{4vv)~QfZ_!l?M{}SU|6Lzi0??r6Ri7wwmL%>H(M2 zXpX{z*D^Q>bey|k&GXn{qB~n#q&rPJUqyVWVW0LSWlcz{OCrwGmawFsy(&q#J{sM}? zPl1{XMn9^;twlyD6nX}XJY9UQsXLr$odiEri~|yjOpU_S|M6H)NcX%tx-JM=03~eE z6mI2)1g$RF#f+~I@88;#)OiQV9ETOx-r@*^t!@=UnY&a|`fB1(a77sDLe)uE$qYeh z!-prYW_%d!L^8EO(lpOfLQmY5w3Vd^pxQKHw((b75IZg?$)Pygv`r4MtJ7Y9$ z+M!M6Fva!Nnn7s@aT9V-PE&S5?Uy#IM@G`(*vO|idI7mhn=8llP6v6E9umbhh-GaHe?hNnh$!9pqD-2H|7RQ+4R6X?d!s0F-k%TixOERM*+l zT(RlX$_^tgN2`rA?}c{!+9gK*6HJC#;k>41a2CxZ75!u0OaICr9qSQ9_4G*xHd$mJ z6)A-UpwPr`?bkeZnDUfD3h#Do7%(h%@MK0tps))uF6i(D(^>2o#o=nbJuuwA9b$BA zSqr_UvvW5O-*}^!<$Z>2G;62j7MrI>A=5gcj0`1-2?8y?M5DsGWeI@r_7c4T&HV{)5%cPxVV$AZLI5)1b9)600 zkypdxW)g;%#DVY=D;Y}=88)LUC( zbqrRVQ$n)8c6)Mx{JRz*8d6y#hnK{ZN~YebAsU!h_x{lEoAWNR>TU zVM`ANSE%rD>8ZHKV$zcB zec_80cHqt@T8b-B)PoOh2Z3-nAj~5Np{luMi)yR28Mjt`X3nmOmG<52ic9afvB~0y zv*n01?r4(OR3BjO05AW-*>5Egk-KMZRKB9{=RzjDfr5-BS*(G{>?Vp^{cJsRs;yo! z@H(7$)cF9jaP z<94{9RhDrSO-4+`MI_hg&&u(n6pRQRmNVVWcMuJf2{Ok zersfEDW0*y8H>51!&;$8pr>FSpG&wQE2yVjRosi4>nJxfi;(t6rUB)stG|Z_(Gkk2 z3g}1g!3VrE>?Yj#FX6JA{`I2UJbs6{y4&w#ir$cdw2 zDZfm+2_+!-VR4XZ)7J*+=fVOwSri>BE=~x%xjXO7TP|h#Y)MCAyf0WFdr&VXi%099Y;7Sfr50Hlc28DBf7SEH9exalLNzA(zXyLq*@o(( z&ogx{bpmiP+bG_=U{BP&@aFc?gsWPOv+--@Z=R1<0x|9gVyM|e1#DWkHK)C9|F=H7 z6jUTCM>aTw;d>xyGoU-m3xjx?Yf?tgj-*!O()klo?*cCa)M84r02{!)%>wJ%IZDu zmaP02oRq$5+q-k6mBW$Zp&FHfx~DAlgp?ZXQE3T02w@OMmFbO_p>&K%QfOGQz=ET* z1j)8D)8aY}gglY!oaHR{k5UHzgSC%DBkSJrJP${z3!|0FBTZYfgCn}Tmcy`%^J6HS zxV(BgINGd6Rc=8eHNfLd>1aTWDpFQC_;=4Q4O?!d>D9*PF~wN@{SKay^amRO&O@ek zaMDsB0{MCdK(PtE<_ZWkPxz|Vf7E0usW_e3$R$Lvo~t7sor$)cWouQ9LY-CO2*8iq zc7W0G!OWZEhsN~qFroybb#L!;zndzR0NN8q7tJb<@1;a}T|ooTU?GK* zJ-t3@dFbL+^}O8Kjm8e$;MX$OS}XlvXF|t-`LS8id=36evcG^h*5!IS*YdXyL`N1L z%M88Hk@#~TQIpwan!XF{HB-dH=hC8y=TGpT&vH&?=sgV9jwhq82F1-slsw%Y%v%ZX z^#qOI=Jp7XYr=Y9%qfxu9a|QPy+QepT=JUI8K-1`3#cEY5~mPR2$GL8l5uLhcpp{= z7OkzWpm{XP+_q*F%~h$8fgfZO#}Teltxo&}UGLKIAmk%MXTvyTz^$kvoS^_}Vgi^2 zdenau+5>_{p7+uu+!VQSO+0cb)SgR9=&&urx4f#SQ|J;YfK*y9BlIg=vOr`#0? zdvy}3A0q(PhO@Y)+AB#$aUWv^(fg_KQ)u3qf=jgR$-0Z+ zZTRQm4SLv5U%!Lou&{}|e-}>sH97zU1DM0q4RQ$LaL$n^<^gMu#vJ;@peVCUTg-Kx zMu~F40Vz^{=V)O_(3`HLa!R5>LMkpM6XD@-XRG>C73aj)E7#ydqro9xUgKS!+`&d( z6*WZdhs>rbE<9d#hr-ViF5jv!4)_bBimyJVz&}q=4x&n5&7=LOf8cu(=%|VC_?{nd zm;>4IrG(KGKFb?pL66sS%%(~t-)@~4#8k17(<@k{LeI#+4Oo)1|KjOQ;0o*jJXs;! zX(Mk~)P29=vAVsJOSCkib5sfIQRB$Dc-#mmE+goaNgf_*KPitv|Nk*_SJQjbMYZ)V zi#>iCW4pK`acKnirp<;m!cTaXX9*r*n8@=;ut!UL(pI+i?`ICKjA{D3=Y~V$3Ri*SKLL>L|e}@4U2BgUefqfuT5=@Vy$al z1@BqrZS(X`W8F0GnOicw+GP!;YVsy6>R8;?#>T@EJ!zNLQvdjaMI!e)q%v>w++VG` zuI_Bm%mwBOxz3_yxvr7BmpJf=mOh8XFs&eyy#y1 zbx+n&ss2A3-`WZ9{W0l2U%~XC1usK(-%#*Z@~(QfPlUI~!_jqB73b21TW$XG+_CHy z3*=Mho>;%Pim}>iLc!JGvWw~kZXyzz_S^2y+NambA~xUn)a@m68Y`U^cP=>c#rTxj zC+)v^(*itY?aW%fZt^YLxqGcoO51wxy5sv-wY~J#s7n*tc<8KfoulX^f0l1OW&C2N z@>tDObQC53etF6DMdR9)54*C%{w&STXz+yk*4Ug_Frmmi&rEih!*iPc}!h*fs;{2$#cKX3t8VstEL=nW7({{ z<-(3R0ZVFDmk2CS**~{AZBt&cs+`279otnZPPH4vNS*g8=)ZNrxTav$?*uXKnCSeV z>1;0VLpw`W*kt}pTeE7yyas7T+ZETld3@fQWazprI2$N4k8k7oHRam`Y!9zEUUg|# zkG0ghuWYXC0EBqtMt=Q#Wt|fr z_8xg*^{e9ly}j1ozgd=CJ}CdORH;7TlYRZOr~O`h>x$$|H=Yl?yT9P#M!5-r)^`5! zdkoa?Ok0=tq;q{=h0*7B2LB_@xt~=wZ|2+GaK(##rG##?Y_`ah#?&)bA^0hTL-|bjFS?%bBo3G54h5z0&<=TN+)7oczEUT%vnX>c4o^NqA z?A?#9Exi+YBmO?emhhtF?JE{9vJv4J^y|Fg33pCE{BLsU-T&GfH-&Mq1G?kmae|N>bn9v zqdVhrPdSkTd~N?Er7uVMeCOU}5tMoEf{SAH8kKtzHp%jcEf(lozCl|ou(^J8oA>B8 z@6m1Equabkw|S3l^B&#iJ-W?%bes3+Ht*4G-lN;RDck0a{U}e+saGNX!Oo7lzNsaN zDTyVCXlHDOeW+fa3RF}9#FChb!Fu&_fqJ<=@|Tre`Rc3dd8PF98PBV{-nv@n&Ya&I zWN^j!K@ndWkCT|;lOjDYUmZ{1i>0f!1bz5k%=4fKc#hVpE2W;kr_Y?$Vbs#z7Ub~g z#c#E=XROP`rlzVbZ(H(A>rl04&k7iUT|q`B5eDpD;R2tb1#}{V0Ehqr#2KYr z;A6cQ7(n~l3-b2Hd}O-H*zmNaMVk34Bg4P{jvs)0d}fQHn5}_gHqyDK$kr@)46$ZI z{p~hlt&v8tCK{JDkh4&cEmM%$5B8J6i@@Pv32a%w0xD+3%l@LGxNT~!qC#;_A% zCFqzvY}S4_)`{0z)Z^rkeR`JzzqO#l<*?bfprjj%jo9-64@x4^;zT`x4%zezCl7#A z&4e4rcO8PLo~T**z6Jbj@useaFjp^M|XGZ_JD?hkZpp6 zS%7X&6J}n+o*wv7(!=Rsi~=9of`lEAf~3H@5pR&8Rtv~M_5;%bL?wZ26)bixoSuMY W6)W&0VFm_1AbbKmS9nSYhz9@^r6-sG diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/authorized_keys b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/authorized_keys new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/authorized_keys @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa new file mode 100644 index 0000000..6059757 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAxsekiqwLgs9VfChnr2bnpLC3VqD1iT+s969vWe05j1RDozPu +zyD3krNgVUcd65x2QQJWrDK2fnyQUtubbPb3wviLXs0Gof4a/b65JsMQkeeC2/OK +aFvrE6D3heouXmWO1vo1iXy2hUhcfXdr6eM3rP3zpU9zb2Al25/90Ha8kKBpe1RS +PKHpmcqVXIpGVxJSXnioAFXUsJ687qrTv7Zm13AHkm2L1Y5IvMsGHLFjFTGFlFoY +ftQQAepF507CFqs66tD378vvNVg8LYqrKpnfdx2PIRNLHAa1xQWc0EvwGHyBQZRL +hTXS3M3IZ7Y22dJ+3Zg15PMx7QmWDZO5MG/JPwIDAQABAoIBAE5KS1AiutXmezDP +aSb4TLvcrhj8hDhuT92txxmQCV+ePJWG2sPRpDCvXX246NvnX9vy49gmkSH4RY+c +1vZvvt2XrqzD65zZzB+sgpf1tA0DNdMTdKvtqASvHU4tEd4z+bJKEdP4vpp4CZWQ +93vC9ia4TsIJLNns8Hwz42+7lEEResKYZA2djGnzHl+83vR1dm0GGBD6BKR1C3Cx +HbEhqx42EV61+8nAweQNjWKxeAc2hg+H8o8qWJM1aKy0TnqW6kudOYRyYIpX0rJA +siE2HwvDA1mDd5M8ntZ/Cx0pnTc/cuZB8BQJ0jN1JXbrJGbWspBNXformw7isbyO +WIOjvEECgYEA84XKV3aPrTE2JBs5vzzs59NMPV+5frw+xzDyPxqK5Q7+jjVKDwxh +/WRatCaTdRxhOI905HfVsDYjrsPOpmF9MHsLxmBhwk8zBFOu/xtYr7zBNkJhmCsq +kZMdxf8bpu08E7kMQJ2MvT7OhM5HRlWIUR0jdja8Hz51Ro4oOb/po7kCgYEA0Pb5 +v12ZsaSHMF0r4l983PifNwYmI22iQIEtRT2DxgTkDKgBTjbRzqZmEhaADMAO48o9 +sIZy+KJ/a8G9fPQVwMgBID8zOHnWsrFmM3qkj5hhrAQdtq7OE71zgaP0tyE1TG4u +Zs3a7eSyuoildHHFqX88oXSYsTlfV8vn23UpwLcCgYEAwXiCuBger8dQL0FeEJwz +zz5k7MG3WoPuEEzHuPC6dp8CCDM4IlqBI1JuaX/YWQtyBgCbKsQ2BigNE1THQhJj +5ndrdHCwWjKX4pElj9HHFN+OVTBJ3x40VLGfzuUNsAH8X+L9Y/yHivZyFrrXj352 +rZLL0KhNrzjs7WAVf0QEOCkCgYBe2s1xnZZnueyX+qMyBfBTChST0Jm9WUXejAS1 +un+3gn7Wc+jrzRyd9pC8wzPrFb9sjWBFYjKMRI8cpfxS3SWGtgM01Rt2FnBr+vUO +hyxt9ljX0aJ/S4hGE6h7/6XU/yEHibhMeENZ24d5/w9D9WUpVJV8IMYzJHzwCKI9 +z0hdrwKBgQDMKvY3DBpZjhZe9YnOgdj4SRpNwaasUSf3a3SZYY1JyOZVUzeSSzoX +rYLfxBRDjkJ8Nnod+nR/JSRqYa/SJYEMZEZFsC+k/pvBiaP6tk694IlpLD/2MXN6 +14FUV5LH/rGSbZJMSfZ9yNX1XZDowH8nOu+qlmlU4lmgiOuityTmtw== +-----END RSA PRIVATE KEY----- diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa.pub b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa.pub new file mode 100644 index 0000000..444ca79 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/image b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/image new file mode 100644 index 0000000..f31d15d --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Artifacts/Deployment/OTHER/image @@ -0,0 +1 @@ +ubuntu_16.04 diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/MainServiceTemplate.yaml new file mode 100644 index 0000000..2caae19 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/MainServiceTemplate.yaml @@ -0,0 +1,345 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgw + template_version: "1.0" + template_author: onap + VNFD_SCHEMA_VERSION: "2.5.1+1" +description: vCPE_vgw + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgw: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-2222-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgw ] ] + default: vcpe_vgw + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: "" + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + requirements: + - virtual_link_public: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + occurrences: [ 0, 1 ] + - virtual_link_private: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + occurrences: [ 0, 1 ] + +topology_template: + substitution_mappings: + node_type: onap.vcpe_vgw + requirements: + virtual_link_public: [ Cp_vgw_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: he CIDR of the vGMUX private network + default: 10.5.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vgw_private_ip_0: + type: string + description: Private IP address that is assigned to the vGW to communicate with vGMUX + default: 10.5.0.21 + vgw_private_ip_1: + type: string + description: Private IP address that is assigned to the vGW to communicate with ONAP components + default: 10.0.101.30 + vgw_private_ip_2: + type: string + description: Private IP address that is assigned to the vGW to communicate with vCPE public network + default: 10.2.0.3 + vgw_name_0: + type: string + description: Name of the vGW + default: zdcpe1cpe01gw01 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: string + description: dcae collector port + default: "8080" + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + mux_ip_addr: + type: string + description: IP address of vGMUX + default: 10.5.0.20 + vg_vgmux_tunnel_vni: + type: string + description: vni value of vG-vGMUX vxlan tunnel + default: "100" + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_GW_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_GW + + node_templates: + LLU_VNF: + type: onap.vcpe_vgw + properties: + descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: onap + product_name: vcpe_vgw + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + flavour_description: simple + vnfm_info: ['gvnfm'] + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocols: [ipv4] + vl_profile: + max_bitrate_requirements: + root: 10000000 + leaf: 10000000 + min_bitrate_requirements: + root: 10000000 + leaf: 10000000 + virtual_link_protocol_data: + - associated_layer_protocol: ipv4 + l3_protocol_data: + name: { get_input: mux_gw_private_net_id } + ip_version: ipv4 + cidr: { get_input: mux_gw_private_net_cidr } + dhcp_enabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocols: [ipv4] + vl_profile: + max_bitrate_requirements: + root: 10000000 + leaf: 10000000 + min_bitrate_requirements: + root: 10000000 + leaf: 10000000 + virtual_link_protocol_data: + - associated_layer_protocol: ipv4 + l3_protocol_data: + name: { get_input: cpe_public_net_id } + ip_version: ipv4 + cidr: { get_input: cpe_public_net_cidr } + dhcp_enabled: false + + # vgw related + Cp_vgw_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgw_0 + #- virtual_link: VL_public + + Cp_vgw_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_mux_gw_private_net + + Cp_vgw_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_2 } + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_cpe_public + + VDU_vgw_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgw_name_0 } + description: vgw + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC BUG + source_path: ../Artifacts/Deployment/OTHER/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_gw_private_net_ipaddr: { get_input: vgw_private_ip_0 } + oam_ipaddr: { get_input: vgw_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + mux_gw_private_net_cidr: { get_input: mux_gw_private_net_cidr } + mux_ip_addr: { get_input: mux_ip_addr } + vg_vgmux_tunnel_vni: { get_input: vg_vgmux_tunnel_vni } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + boot_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata mux_gw_private_net_ipaddr)" > /opt/config/mux_gw_private_net_ipaddr.txt + echo "$(get_metadata mux_gw_private_net_cidr)" > /opt/config/mux_gw_private_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata mux_ip_addr)" > /opt/config/mux_ip_addr.txt + echo "$(get_metadata vg_vgmux_tunnel_vni)" > /opt/config/vg_vgmux_tunnel_vni.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gw_install.sh + cd /opt + chmod +x v_gw_install.sh + ./v_gw_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + vdu_mem_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + virtual_local_storage: + - size_of_storage: 40 GB + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/Deployment/OTHER/image + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/onap_dm.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/onap_dm.yaml new file mode 100644 index 0000000..80d1153 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/Definitions/onap_dm.yaml @@ -0,0 +1,1695 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +artifact_types: + tosca.artifacts.nfv.SwImage: + derived_from: tosca.artifacts.Deployment.Image + description: describes the software image which is directly loaded on the virtualisation container realizing of the VDU or is to be loaded on a virtual + tosca.artifacts.Implementation.nfv.Mistral: + derived_from: tosca.artifacts.Implementation + description: artifacts for Mistral workflows + mime_type: application/x-yaml + file_ext: [ yaml ] + +capability_types: + tosca.capabilities.nfv.VirtualStorage: + derived_from: tosca.capabilities.Root + description: Describes the attachment capabilities related to Vdu.Storage + tosca.capabilities.nfv.VirtualCompute: + derived_from: tosca.capabilities.Node + description: Describes the capabilities related to virtual compute resources + properties: + logical_node: + type: map + description: Describes the Logical Node requirements + required: false + entry_schema: + type: tosca.datatypes.nfv.LogicalNodeData + requested_additional_capabilities: + type: map + description: Describes additional capability for a particular VDU + required: false + entry_schema: + type: tosca.datatypes.nfv.RequestedAdditionalCapability + compute_requirements: + type: map + required: false + entry_schema: + type: string + virtual_memory: + type: tosca.datatypes.nfv.VirtualMemory + description: Describes virtual memory of the virtualized compute + required: true + virtual_cpu: + type: tosca.datatypes.nfv.VirtualCpu + description: Describes virtual CPU(s) of the virtualized compute + required: true + virtual_local_storage: + type: list + description: A list of virtual system disks created and destroyed as part of the VM lifecycle + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualBlockStorageData + description: virtual system disk definition + tosca.capabilities.nfv.VirtualBindable: + derived_from: tosca.capabilities.Node + description: Indicates that the node that includes it can be pointed by a tosca.relationships.nfv.VirtualBindsTo relationship type which is used to model the VduHasCpd association + tosca.capabilities.nfv.VirtualLinkable: + derived_from: tosca.capabilities.Root + description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type + tosca.capabilities.nfv.ExtVirtualLinkable: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.Forwarder: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.GuestOs: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.ImageFile: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.LocalAttachment: + derived_from: tosca.capabilities.Root + tosca.capabilities.nfv.ext.Compute.Container.Architecture: + derived_from: tosca.capabilities.Root + properties: + num_cpus: + type: string + required: false + flavor_extra_specs: + type: map + required: false + entry_schema: + type: string + mem_size: + type: string + required: false + +data_types: + tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + description: VnfcAdditionalConfigurableProperties type is an empty base type for deriving data types for describing additional configurable properties for a given VNFC. + # below description properties added as optional, since atleast one property required to define a dataType in SDC + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfcConfigurableProperties: + derived_from: tosca.datatypes.Root + description: Defines the configurable properties of a VNFC + properties: + additional_vnfc_configurable_properties: + type: tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties + description: Describes additional configuration for VNFC that can be modified using the ModifyVnfInfo operation + required: false + # derived types are expected to introduce + # additional_vnfc_configurable_properties with its type derived from + # tosca.datatypes.nfv.VnfcAdditionalConfigurableProperties + tosca.datatypes.nfv.RequestedAdditionalCapability: + derived_from: tosca.datatypes.Root + description: describes requested additional capability for a particular VDU + properties: + requested_additional_capability_name: + type: string + description: Identifies a requested additional capability for the VDU. + required: true + support_mandatory: + type: boolean + description: Indicates whether the requested additional capability is mandatory for successful operation. + required: true + min_requested_additional_capability_version: + type: string + description: Identifies the minimum version of the requested additional capability. + required: false + preferred_requested_additional_capability_version: + type: string + description: Identifies the preferred version of the requested additional capability. + required: false + target_performance_parameters: + type: map + description: Identifies specific attributes, dependent on the requested additional capability type. + required: true + entry_schema: + type: string + tosca.datatypes.nfv.VirtualMemory: + derived_from: tosca.datatypes.Root + description: supports the specification of requirements related to virtual memory of a virtual compute resource + properties: + virtual_mem_size: + type: scalar-unit.size + description: Amount of virtual memory. + required: true + virtual_mem_oversubscription_policy: + type: string + description: The memory core oversubscription policy in terms of virtual memory to physical memory on the platform. + required: false + vdu_mem_requirements: + type: map + description: The hardware platform specific VDU memory requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific VDU memory requirements. + required: false + entry_schema: + type: string + numa_enabled: + type: boolean + description: It specifies the memory allocation to be cognisant of the relevant process/core allocation. + required: false + default: false + tosca.datatypes.nfv.VirtualCpuPinning: + derived_from: tosca.datatypes.Root + description: Supports the specification of requirements related to the virtual CPU pinning configuration of a virtual compute resource + properties: + virtual_cpu_pinning_policy: + type: string + description: 'Indicates the policy for CPU pinning. The policy can take values of "static" or "dynamic". In case of "dynamic" the allocation of virtual CPU cores to logical CPU cores is decided by the VIM. (e.g.: SMT (Simultaneous Multi-Threading) requirements). In case of "static" the allocation is requested to be according to the virtual_cpu_pinning_rule.' + required: false + constraints: + - valid_values: [ static, dynamic ] + virtual_cpu_pinning_rule: + type: list + description: Provides the list of rules for allocating virtual CPU cores to logical CPU cores/threads + required: false + entry_schema: + type: string + tosca.datatypes.nfv.VirtualCpu: + derived_from: tosca.datatypes.Root + description: Supports the specification of requirements related to virtual CPU(s) of a virtual compute resource + properties: + cpu_architecture: + type: string + description: CPU architecture type. Examples are x86, ARM + required: false + num_virtual_cpu: + type: integer + description: Number of virtual CPUs + required: true + constraints: + - greater_than: 0 + virtual_cpu_clock: + type: scalar-unit.frequency + description: Minimum virtual CPU clock rate + required: false + virtual_cpu_oversubscription_policy: + type: string + description: CPU core oversubscription policy e.g. the relation of virtual CPU cores to physical CPU cores/threads. + required: false + vdu_cpu_requirements: + type: map + description: The hardware platform specific VDU CPU requirements. A map of strings that contains a set of key-value pairs describing VDU CPU specific hardware platform requirements. + required: false + entry_schema: + type: string + virtual_cpu_pinning: + type: tosca.datatypes.nfv.VirtualCpuPinning + description: The virtual CPU pinning configuration for the virtualised compute resource. + required: false + tosca.datatypes.nfv.LogicalNodeData: + derived_from: tosca.datatypes.Root + description: Describes compute, memory and I/O requirements associated with a particular VDU. + properties: + logical_node_requirements: + type: map + description: The logical node-level compute, memory and I/O requirements. A map of strings that contains a set of key-value pairs that describes hardware platform specific deployment requirements, including the number of CPU cores on this logical node, a memory configuration specific to a logical node or a requirement related to the association of an I/O device with the logical node. + required: false + entry_schema: + type: string + tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements: + derived_from: tosca.datatypes.Root + description: Describes requirements on a virtual network interface + properties: + name: + type: string + description: Provides a human readable name for the requirement. + required: false + description: + type: string + description: Provides a human readable description of the requirement. + required: false + support_mandatory: + type: boolean + description: Indicates whether fulfilling the constraint is mandatory (TRUE) for successful operation or desirable (FALSE). + required: true + network_interface_requirements: + type: map + description: The network interface requirements. A map of strings that contain a set of key-value pairs that describes the hardware platform specific network interface deployment requirements. + required: true + entry_schema: + type: string + nic_io_requirements: + type: tosca.datatypes.nfv.LogicalNodeData + description: references (couples) the CP with any logical node I/O requirements (for network devices) that may have been created. Linking these attributes is necessary so that so that I/O requirements that need to be articulated at the logical node level can be associated with the network interface requirements associated with the CP. + required: false + + tosca.datatypes.nfv.injectFile: #used for vCPE usecase + derived_from: tosca.datatypes.Root + properties: + source_path: + type: string + required: true + dest_path: + type: string + required: true + tosca.datatypes.nfv.L2AddressData: + derived_from: tosca.datatypes.Root + description: Describes the information on the MAC addresses to be assigned to a connection point. + properties: + mac_address_assignment: + type: boolean + description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility + required: true + tosca.datatypes.nfv.L3AddressData: + derived_from: tosca.datatypes.Root + description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP + properties: + ip_address_assignment: + type: boolean + description: Specifies if the address assignment is the responsibility of management and orchestration function or not. If it is set to True, it is the management and orchestration function responsibility + required: true + floating_ip_activated: + type: boolean + description: Specifies if the floating IP scheme is activated on the Connection Point or not + required: true + ip_address_type: + type: string + description: Defines address type. The address type should be aligned with the address type supported by the layer_protocols properties of the parent VnfExtCp + required: false + constraints: + - valid_values: [ ipv4, ipv6 ] + number_of_ip_address: + type: integer + description: Minimum number of IP addresses to be assigned + required: false + constraints: + - greater_than: 0 + fixed_ip_address: #Introduced from Beijing release, only used for vCPE usecase + type: list + entry_schema: + type: string + required: false + tosca.datatypes.nfv.AddressData: + derived_from: tosca.datatypes.Root + description: Describes information about the addressing scheme and parameters applicable to a CP + properties: + address_type: + type: string + description: Describes the type of the address to be assigned to a connection point. The content type shall be aligned with the address type supported by the layerProtocol property of the connection point + required: true + constraints: + - valid_values: [ mac_address, ip_address ] + l2_address_data: + type: tosca.datatypes.nfv.L2AddressData + description: Provides the information on the MAC addresses to be assigned to a connection point. + required: false + l3_address_data: + type: tosca.datatypes.nfv.L3AddressData + description: Provides the information on the IP addresses to be assigned to a connection point + required: false + tosca.datatypes.nfv.ConnectivityType: + derived_from: tosca.datatypes.Root + description: describes additional connectivity information of a virtualLink + properties: + layer_protocols: + type: list + description: Identifies the protocol a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire).The top layer protocol of the virtualLink protocol stack shall always be provided. The lower layer protocols may be included when there are specific requirements on these layers. + required: true + entry_schema: + type: string + constraints: + - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + flow_pattern: + type: string + description: Identifies the flow pattern of the connectivity + required: false + constraints: + - valid_values: [ line, tree, mesh ] + tosca.datatypes.nfv.VlFlavour: + derived_from: tosca.datatypes.Root + properties: + flavourId: + type: string + tosca.datatypes.nfv.ext.AddressPairs: + properties: + ip: + type: string + required: false + mac: + type: string + required: false + tosca.datatypes.nfv.ext.FloatingIP: + properties: + external_network: + type: string + required: false + ip_address: + type: string + required: false + tosca.datatypes.nfv.ext.LocationInfo: + properties: + availability_zone: + type: string + required: false + vimid: + type: integer + required: false + tenant: + type: string + required: false + tosca.datatypes.nfv.ext.HostRouteInfo: + properties: + destination: + type: string + required: false + nexthop: + type: string + required: false + tosca.datatypes.nfv.ext.InjectData: + properties: + file_name: + type: string + required: false + file_data: + type: string + required: false + tosca.datatypes.nfv.ext.zte.WatchDog: + properties: + enable_delay: + type: integer + required: false + action: + type: string + required: false + tosca.datatypes.nfv.ext.LocalAffinityOrAntiAffinityRule: + properties: + scope: + type: string + required: false + affinity_antiaffinity: + type: string + required: false + tosca.datatypes.nfv.VduProfile: + derived_from: tosca.datatypes.Root + description: describes additional instantiation data for a given Vdu.Compute used in a specific deployment flavour. + properties: + min_number_of_instances: + type: integer + description: Minimum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. + required: true + constraints: + - greater_or_equal: 0 + max_number_of_instances: + type: integer + description: Maximum number of instances of the VNFC based on this Vdu.Compute that is permitted to exist for a particular VNF deployment flavour. + required: true + constraints: + - greater_or_equal: 0 + watchdog: #Introduced from Beijing release, only used for vCPE usecase, outside the scope of SOL001 v2.5.1 + type: string + required: true + vmBootUpTimeOut: #Introduced from Beijing release, only used for vCPE usecase, outside the scope of SOL001 v2.5.1 + type: integer + required: false + tosca.datatypes.nfv.LinkBitrateRequirements: + derived_from: tosca.datatypes.Root + description: describes the requirements in terms of bitrate for a virtual link + properties: + root: + type: integer # in bits per second + description: Specifies the throughput requirement in bits per second of the link (e.g. bitrate of E-Line, root bitrate of E-Tree, aggregate capacity of E-LAN). + required: true + constraints: + - greater_or_equal: 0 + leaf: + type: integer # in bits per second + description: Specifies the throughput requirement in bits per second of leaf connections to the link when applicable to the connectivity type (e.g. for E-Tree and E LAN branches). + required: false + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.Qos: + derived_from: tosca.datatypes.Root + description: describes QoS data for a given VL used in a VNF deployment flavour + properties: + latency: + type: scalar-unit.time #Number [ms] + description: Specifies the maximum latency + required: true + constraints: + - greater_than: 0 s + packet_delay_variation: + type: scalar-unit.time #Number [ms] + description: Specifies the maximum jitter + required: true + constraints: + - greater_or_equal: 0 s + packet_loss_ratio: + type: float #Number [0 ..1] + description: Specifies the maximum packet loss ratio + required: false + constraints: + - in_range: [ 0.0, 1.0 ] + tosca.datatypes.nfv.IpAllocationPool: + derived_from: tosca.datatypes.Root + description: Specifies a range of IP addresses + properties: + start_ip_address: + type: string + description: The IP address to be used as the first one in a pool of addresses derived from the cidr block full IP range + required: true + end_ip_address: + type: string + description: The IP address to be used as the last one in a pool of addresses derived from the cidr block full IP range + required: true + tosca.datatypes.nfv.L2ProtocolData: + derived_from: tosca.datatypes.Root + description: describes L2 protocol data for a given virtual link used in a specific VNF deployment flavour. + properties: + name: + type: string + description: Identifies the network name associated with this L2 protocol. + required: false + network_type: + type: string + description: Specifies the network type for this L2 protocol.The value may be overridden at run-time. + required: false + constraints: + - valid_values: [ flat, vlan, vxlan, gre ] + vlan_transparent: + type: boolean + description: Specifies whether to support VLAN transparency for this L2 protocol or not. + required: false + default: false + mtu: + type: integer + description: Specifies the maximum transmission unit (MTU) value for this L2 protocol. + required: false + constraints: + - greater_than: 0 + segmentation_id: #Introduced from Beijing release, only used for vCPE usecase, outside the scope of SOL001 v2.5.1 + type: integer + required: false + physical_network: #Introduced from Beijing release, only used for vCPE usecase, outside the scope of SOL001 v2.5.1 + type: string + required: false + tosca.datatypes.nfv.L3ProtocolData: + derived_from: tosca.datatypes.Root + description: describes L3 protocol data for a given virtual link used in a specific VNF deployment flavour. + properties: + name: + type: string + description: Identifies the network name associated with this L3 protocol. + required: false + ip_version: + type: string + description: Specifies IP version of this L3 protocol.The value of the ip_version property shall be consistent with the value of the layer_protocol in the connectivity_type property of the virtual link node. + required: true + constraints: + - valid_values: [ ipv4, ipv6 ] + cidr: + type: string + description: Specifies the CIDR (Classless Inter-Domain Routing) of this L3 protocol. The value may be overridden at run-time. + required: true + ip_allocation_pools: + type: list + description: Specifies the allocation pools with start and end IP addresses for this L3 protocol. The value may be overridden at run-time. + required: false + entry_schema: + type: tosca.datatypes.nfv.IpAllocationPool + gateway_ip: + type: string + description: Specifies the gateway IP address for this L3 protocol. The value may be overridden at run-time. + required: false + dhcp_enabled: + type: boolean + description: Indicates whether DHCP (Dynamic Host Configuration Protocol) is enabled or disabled for this L3 protocol. The value may be overridden at run-time. + required: false + ipv6_address_mode: + type: string + description: Specifies IPv6 address mode. May be present when the value of the ipVersion attribute is "ipv6" and shall be absent otherwise. The value may be overridden at run-time. + required: false + constraints: + - valid_values: [ slaac, dhcpv6-stateful, dhcpv6-stateless ] + tosca.datatypes.nfv.VirtualLinkProtocolData: + derived_from: tosca.datatypes.Root + description: describes one protocol layer and associated protocol data for a given virtual link used in a specific VNF deployment flavour + properties: + associated_layer_protocol: + type: string + description: Identifies one of the protocols a virtualLink gives access to (ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire) as specified by the connectivity_type property. + required: true + constraints: + - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + l2_protocol_data: + type: tosca.datatypes.nfv.L2ProtocolData + description: Specifies the L2 protocol data for a virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L2 protocol and shall be absent otherwise. + required: false + l3_protocol_data: + type: tosca.datatypes.nfv.L3ProtocolData + description: Specifies the L3 protocol data for this virtual link. Shall be present when the associatedLayerProtocol attribute indicates a L3 protocol and shall be absent otherwise. + required: false + + tosca.datatypes.nfv.VlProfile: + derived_from: tosca.datatypes.Root + description: Describes additional instantiation data for a given VL used in a specific VNF deployment flavour. + properties: + max_bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Specifies the maximum bitrate requirements for a VL instantiated according to this profile. + required: true + min_bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Specifies the minimum bitrate requirements for a VL instantiated according to this profile. + required: true + qos: + type: tosca.datatypes.nfv.Qos + description: Specifies the QoS requirements of a VL instantiated according to this profile. + required: false + virtual_link_protocol_data: + type: list + description: Specifies the protocol data for a virtual link. + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkProtocolData + tosca.datatypes.nfv.VduLevel: + derived_from: tosca.datatypes.Root + description: Indicates for a given Vdu.Compute in a given level the number of instances to deploy + properties: + number_of_instances: + type: integer + description: Number of instances of VNFC based on this VDU to deploy for this level. + required: true + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.ScaleInfo: + derived_from: tosca.datatypes.Root + description: Indicates for a given scaleAspect the corresponding scaleLevel + properties: + scale_level: + type: integer + description: The scale level for a particular aspect + required: true + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.ScalingAspect: + derived_from: tosca.datatypes.Root + properties: + name: + type: string + required: true + description: + type: string + required: true + max_scale_level: + type: integer # positiveInteger + required: true + constraints: + - greater_or_equal: 0 + step_deltas: + type: list + required: false + entry_schema: + type: string # Identifier + tosca.datatypes.nfv.InstantiationLevel: + derived_from: tosca.datatypes.Root + description: Describes the scale level for each aspect that corresponds to a given level of resources to be instantiated within a deployment flavour in term of the number VNFC instances + properties: + description: + type: string + description: Human readable description of the level + required: true + scale_info: + type: map # key: aspectId + description: Represents for each aspect the scale level that corresponds to this instantiation level. scale_info shall be present if the VNF supports scaling. + required: false + entry_schema: + type: tosca.datatypes.nfv.ScaleInfo + tosca.datatypes.nfv.VnfInstantiateOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the InstantiateVnf operation. + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfScaleOperationConfiguration: + derived_from: tosca.datatypes.Root + description: Represents information that affect the invocation of the ScaleVnf operation + properties: + scaling_by_more_than_one_step_supported: + type: boolean + description: Signals whether passing a value larger than one in the numScalingSteps parameter of the ScaleVnf operation is supported by this VNF. + required: false + default: false + tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ScaleVnfToLevel operation + properties: + arbitrary_target_levels_supported: + type: boolean + description: Signals whether scaling according to the parameter "scaleInfo" is supported by this VNF + required: true + tosca.datatypes.nfv.VnfHealOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the HealVnf operation + properties: + causes: + type: list + description: Supported "cause" parameter values + required: false + entry_schema: + type: string + tosca.datatypes.nfv.VnfTerminateOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the TerminateVnf + properties: + min_graceful_termination_timeout: + type: scalar-unit.time # For TOSCA V1.2 use type as scalar-unit.time instead of integer + description: Minimum timeout value for graceful termination of a VNF instance + required: true + max_recommended_graceful_termination_timeout: + type: scalar-unit.time # For TOSCA V1.2 use type as scalar-unit.time instead of integer + description: Maximum recommended timeout value that can be needed to gracefully terminate a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint + required: false + tosca.datatypes.nfv.VnfOperateOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the OperateVnf operation + properties: + min_graceful_stop_timeout: + type: scalar-unit.time + description: Minimum timeout value for graceful stop of a VNF instance + required: true + max_recommended_graceful_stop_timeout: + type: scalar-unit.time + description: Maximum recommended timeout value that can be needed to gracefully stop a VNF instance of a particular type under certain conditions, such as maximum load condition. This is provided by VNF provider as information for the operator facilitating the selection of optimal timeout value. This value is not used as constraint + required: false + tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ChangeVnfFlavour operation + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfProfile: + derived_from: tosca.datatypes.Root + description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF. + properties: + instantiation_level: + type: string + description: Identifier of the instantiation level of the VNF DF to be used for instantiation. If not present, the default instantiation level as declared in the VNFD shall be used. + required: false + min_number_of_instances: + type: integer + description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. + required: true + constraints: + - greater_or_equal: 0 + max_number_of_instances: + type: integer + description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. + required: true + constraints: + - greater_or_equal: 0 + tosca.datatypes.nfv.UriAuthority: + derived_from: tosca.datatypes.Root + description: information that corresponds to the authority component of a URI as specified in IETF RFC 3986 [8] + properties: + user_info: + type: string # shall comply with IETF RFC 3986 + description: user_info field of the authority component of a URI + required: false + host: + type: string # shall comply with IETF RFC 3986 + description: host field of the authority component of a URI + required: false + port: + type: string # shall comply with IETF RFC 3986 + description: port field of the authority component of a URI + required: false + tosca.datatypes.nfv.UriComponents: + derived_from: tosca.datatypes.Root + description: information used to build a URI that complies with IETF RFC 3986 [8]. + properties: + scheme: + type: string # shall comply with IETF RFC3986 + description: scheme component of a URI. + required: true + authority: + type: tosca.datatypes.nfv.UriAuthority + description: Authority component of a URI + required: false + path: + type: string # shall comply with IETF RFC 3986 + description: path component of a URI. + required: false + query: + type: string # shall comply with IETF RFC 3986 + description: query component of a URI. + required: false + fragment: + type: string # shall comply with IETF RFC 3986 + description: fragment component of a URI. + required: false + tosca.datatypes.nfv.InterfaceDetails: + derived_from: tosca.datatypes.Root + description: information used to access an interface exposed by a VNF + properties: + uri_components: + type: tosca.datatypes.nfv.UriComponents + description: Provides components to build a Uniform Ressource Identifier (URI) where to access the interface end point. + required: false + interface_specific_data: + type: map + description: Provides additional details that are specific to the type of interface considered. + required: false + entry_schema: + type: string + tosca.datatypes.nfv.VirtualLinkMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies a performance metric derived from those defined in ETSI GS NFV-IFA 027.The packetOutgoingVirtualLink and packetIncomingVirtualLink metrics shall be obtained by aggregation the PacketOutgoing and PacketIncoming measurements defined in clause 7.1 of GS NFV-IFA 027 of all virtual link ports attached to the virtual link to which the metrics apply. + required: true + constraints: + - valid_values: [ packet_outgoing_virtual_link, packet_incoming_virtual_link ] + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s + tosca.datatypes.nfv.VnfcMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. + required: true + constraints: + - valid_values: [ v_cpu_usage_mean_vnf, v_cpu_usage_peak_vnf, v_memory_usage_mean_vnf, v_memory_usage_peak_vnf, v_disk_usage_mean_vnf, v_disk_usage_peak_vnf, byte_incoming_vnf_int_cp, byte_outgoing_vnf_int_cp, packet_incoming_vnf_int_cp, packet_outgoing_vnf_int_cp ] + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s + tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration: + derived_from: tosca.datatypes.Root + description: represents information that affect the invocation of the ChangeExtVnfConnectivity operation + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfMonitoringParameter: + derived_from: tosca.datatypes.Root + description: Represents information on virtualised resource related performance metrics applicable to the VNF. + properties: + name: + type: string + description: Human readable name of the monitoring parameter + required: true + performance_metric: + type: string + description: Identifies the performance metric, according to ETSI GS NFV-IFA 027. + required: true + constraints: + - valid_values: [ v_cpu_usage_mean_vnf, v_cpu_usage_peak_vnf, v_memory_usage_mean_vnf, v_memory_usage_peak_vnf, v_disk_usage_mean_vnf, v_disk_usage_peak_vnf, byte_incoming_vnf_ext_cp, byte_outgoing_vnf_ext_cp, packet_incoming_vnf_ext_cp, packet_outgoing_vnf_ext_cp ] + collection_period: + type: scalar-unit.time + description: Describes the recommended periodicity at which to collect the performance information. + required: false + constraints: + - greater_than: 0 s + tosca.datatypes.nfv.VnfLcmOperationsConfiguration: + derived_from: tosca.datatypes.Root + description: Represents information to configure lifecycle management operations + properties: + instantiate: + type: tosca.datatypes.nfv.VnfInstantiateOperationConfiguration + description: Configuration parameters for the InstantiateVnf operation + required: false + scale: + type: tosca.datatypes.nfv.VnfScaleOperationConfiguration + description: Configuration parameters for the ScaleVnf operation + required: false + scale_to_level: + type: tosca.datatypes.nfv.VnfScaleToLevelOperationConfiguration + description: Configuration parameters for the ScaleVnfToLevel operation + required: false + change_flavour: + type: tosca.datatypes.nfv.VnfChangeFlavourOperationConfiguration + description: Configuration parameters for the changeVnfFlavourOpConfig operation + required: false + heal: + type: tosca.datatypes.nfv.VnfHealOperationConfiguration + description: Configuration parameters for the HealVnf operation + required: false + terminate: + type: tosca.datatypes.nfv.VnfTerminateOperationConfiguration + description: Configuration parameters for the TerminateVnf operation + required: false + operate: + type: tosca.datatypes.nfv.VnfOperateOperationConfiguration + description: Configuration parameters for the OperateVnf operation + required: false + change_ext_connectivity: + type: tosca.datatypes.nfv.VnfChangeExtConnectivityOperationConfiguration + description: Configuration parameters for the changeExtVnfConnectivityOpConfig operation + required: false + tosca.datatypes.nfv.CpProtocolData: + derived_from: tosca.datatypes.Root + description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information + properties: + associated_layer_protocol: + type: string + required: true + description: One of the values of the property layer_protocols of the CP + constraints: + - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + address_data: + type: list + description: Provides information on the addresses to be assigned to the CP + entry_schema: + type: tosca.datatypes.nfv.AddressData + required: false + tosca.datatypes.nfv.VnfAdditionalConfigurableProperties: + derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing additional configurable properties for a given VNF + # below description properties added as optional, since atleast one property required to define a dataType in SDC + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfConfigurableProperties: + derived_from: tosca.datatypes.Root + description: indicates configuration properties for a given VNF (e.g. related to auto scaling and auto healing). + properties: + is_autoscale_enabled: + type: boolean + description: It permits to enable (TRUE)/disable (FALSE) the auto-scaling functionality. If the properties is not present for configuring, then VNF property is not supported + required: false + is_autoheal_enabled: + type: boolean + description: It permits to enable (TRUE)/disable (FALSE) the auto-healing functionality. If the properties is not present for configuring, then VNF property is not supported + required: false + additional_configurable_properties: + description: It provides VNF specific configurable properties that can be modified using the ModifyVnfInfo operation + required: false + type: tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + # derived types are expected to introduce + # additional_configurable_properties with its type derived from + # tosca.datatypes.nfv.VnfAdditionalConfigurableProperties + tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions: + derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing VNF-specific extension + # below description properties added as optional, since atleast one property required to define a dataType in SDC + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata: + derived_from: tosca.datatypes.Root + description: is an empty base type for deriving data types for describing VNF-specific metadata + # below description properties added as optional, since atleast one property required to define a dataType in SDC + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VnfInfoModifiableAttributes: + derived_from: tosca.datatypes.Root + description: Describes VNF-specific extension and metadata for a given VNF + properties: + extensions: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + description: \"Extension\" properties of VnfInfo that are writeable + required: false + # derived types are expected to introduce + # extensions with its type derived from + # tosca.datatypes.nfv.VnfInfoModifiableAttributesExtensions + metadata: + type: tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + description: \"Metadata\" properties of VnfInfo that are writeable + required: false + # derived types are expected to introduce + # metadata with its type derived from + # tosca.datatypes.nfv.VnfInfoModifiableAttributesMetadata + tosca.datatypes.nfv.VirtualLinkBitrateLevel: + derived_from: tosca.datatypes.Root + description: Describes bitrate requirements applicable to the virtual link instantiated from a particicular VnfVirtualLink + properties: + description: + type: string + required: false + bitrate_requirements: + type: tosca.datatypes.nfv.LinkBitrateRequirements + description: Virtual link bitrate requirements for an instantiation level or bitrate delta for a scaling step + required: true + tosca.datatypes.nfv.VnfOperationAdditionalParameters: + derived_from: tosca.datatypes.Root + description: Is an empty base type for deriving data type for describing VNF-specific parameters to be passed when invoking lifecycle management operations + # below description properties added as optional, since atleast one property required to define a dataType in SDC + properties: + description: + type: string + required: false + tosca.datatypes.nfv.VirtualFileStorageData: + derived_from: tosca.datatypes.Root + description: VirtualFileStorageData describes file storage requirements associated with compute resources in a particular VDU + properties: + size_of_storage: + type: scalar-unit.size + description: Size of virtualized storage resource + required: true + file_system_protocol: + type: string + description: The shared file system protocol (e.g. NFS, CIFS) + required: true + tosca.datatypes.nfv.VirtualObjectStorageData: + derived_from: tosca.datatypes.Root + description: VirtualObjectStorageData describes object storage requirements associated with compute resources in a particular VDU + properties: + max_size_of_storage: + type: scalar-unit.size + description: Maximum size of virtualized storage resource + required: false + tosca.datatypes.nfv.VirtualBlockStorageData: + derived_from: tosca.datatypes.Root + description: VirtualBlockStorageData describes block storage requirements associated with compute resources in a particular VDU, either as a local disk or as virtual attached storage + properties: + size_of_storage: + type: scalar-unit.size + description: Size of virtualised storage resource + required: true + vdu_storage_requirements: + type: map + description: The hardware platform specific storage requirements. A map of strings that contains a set of key-value pairs that represents the hardware platform specific storage deployment requirements. + required: false + entry_schema: + type: string + rdma_enabled: + type: boolean + description: Indicates if the storage support RDMA + required: false + default: false + tosca.datatypes.nfv.SwImageData: + derived_from: tosca.datatypes.Root + description: describes information related to a software image artifact + properties: # in SOL001 v0.8.0: "properties or metadata:" + name: + type: string + description: Name of this software image + required: true + version: + type: string + description: Version of this software image + required: true + checksum: + type: string + description: Checksum of the software image file + required: true + container_format: + type: string + description: The container format describes the container file format in which software image is provided + required: true + constraints: + - valid_values: [ aki, ami, ari, bare, docker, ova, ovf ] + disk_format: + type: string + description: The disk format of a software image is the format of the underlying disk image + required: true + constraints: + - valid_values: [ aki, ami, ari, iso, qcow2, raw, vdi, vhd, vhdx, vmdk ] + min_disk: + type: scalar-unit.size # Number + description: The minimal disk size requirement for this software image + required: true + min_ram: + type: scalar-unit.size # Number + description: The minimal RAM requirement for this software image + required: false + size: + type: scalar-unit.size # Number + description: The size of this software image + required: true + operating_system: + type: string + description: Identifies the operating system used in the software image + required: false + supported_virtualisation_environments: + type: list + description: Identifies the virtualisation environments (e.g. hypervisor) compatible with this software image + required: false + entry_schema: + type: string + +interface_types: + tosca.interfaces.nfv.Vnflcm: + #derived_from: tosca.interfaces.Root + #description: This interface encompasses a set of TOSCA operations corresponding to the VNF LCM operations defined in ETSI GS NFV-IFA 007 as well as to preamble and postamble procedures to the execution of the VNF LCM operations. + instantiate: + description: Invoked upon receipt of an Instantiate VNF request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + instantiate_start: + description: Invoked before instantiate + instantiate_end: + description: Invoked after instantiate + terminate: + description: Invoked upon receipt Terminate VNF request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + terminate_start: + description: Invoked before terminate + terminate_end: + description: Invoked after terminate + modify_information: + description: Invoked upon receipt of a Modify VNF Information request + modify_information_start: + description: Invoked before modify_information + modify_information_end: + description: Invoked after modify_information + change_flavour: + description: Invoked upon receipt of a Change VNF Flavour request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + change_flavour_start: + description: Invoked before change_flavour + change_flavour_end: + description: Invoked after change_flavour + change_external_connectivity: + description: Invoked upon receipt of a Change External VNF Connectivity request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + change_external_connectivity_start: + description: Invoked before change_external_connectivity + change_external_connectivity_end: + description: Invoked after change_external_connectivity + operate: + description: Invoked upon receipt of an Operate VNF request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + operate_start: + description: Invoked before operate + operate_end: + description: Invoked after operate + heal: + description: Invoked upon receipt of a Heal VNF request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + heal_start: + description: Invoked before heal + heal_end: + description: Invoked after heal + scale: + description: Invoked upon receipt of a Scale VNF request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + scale_start: + description: Invoked before scale + scale_end: + description: Invoked after scale + scale_to_level: + description: Invoked upon receipt of a Scale VNF to Level request + # inputs: + # additional_parameters: + # type: tosca.datatypes.nfv.VnfOperationAdditionalParameters + # required: false + # derived types are expected to introduce additional_parameters with + # its type derived from + # tosca.datatypes.nfv.VnfOperationAdditionalParameters + scale_to_level_start: + description: Invoked before scale_to_level + scale_to_level_end: + description: Invoked after scale_to_level + +node_types: + tosca.nodes.nfv.Vdu.Compute: + derived_from: tosca.nodes.Root + description: Describes the virtual compute part of a VDU which is a construct supporting the description of the deployment and operational behavior of a VNFC + properties: + name: + type: string + description: Human readable name of the VDU + required: true + description: + type: string + description: Human readable description of the VDU + required: true + boot_order: + type: list # explicit index (boot index) not necessary, contrary to IFA011 + description: References a node template name from which a valid boot device is created + required: false + entry_schema: + type: string + nfvi_constraints: + type: list + description: Describes constraints on the NFVI for the VNFC instance(s) created from this VDU + required: false + entry_schema: + type: string + monitoring_parameters: + type: list + description: Describes monitoring parameters applicable to a VNFC instantiated from this VDU + required: false + entry_schema: + type: tosca.datatypes.nfv.VnfcMonitoringParameter + #configurable_properties: + #type: tosca.datatypes.nfv.VnfcConfigurableProperties + #required: false + # derived types are expected to introduce + # configurable_properties with its type derived from + # tosca.datatypes.nfv.VnfcConfigurableProperties + vdu_profile: + type: tosca.datatypes.nfv.VduProfile + description: Defines additional instantiation data for the VDU.Compute node + required: true + sw_image_data: + type: tosca.datatypes.nfv.SwImageData + description: Defines information related to a SwImage artifact used by this Vdu.Compute node + required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise + boot_data: + type: string + description: Contains a string or a URL to a file contained in the VNF package used to customize a virtualised compute resource at boot time. The bootData may contain variable parts that are replaced by deployment specific values before being sent to the VIM. + required: false + inject_files: #Introduced from Beijing release, used for vCPE usecase, outside the scope of SOL001 v2.5.1 + type: tosca.datatypes.nfv.injectFile + required: false #Aligned with ONAP R2 IM. it should be false. + meta_data: #Introduced from Beijing release, used for metadata attached to the VM or container, outside the scope of SOL001 v2.5.1 + type: map + entry_schema: + type: string + required: false + capabilities: + virtual_compute: + type: tosca.capabilities.nfv.VirtualCompute + occurrences: [ 1, 1 ] + virtual_binding: + type: tosca.capabilities.nfv.VirtualBindable + occurrences: [ 1, UNBOUNDED ] + requirements: + - virtual_storage: + capability: tosca.capabilities.nfv.VirtualStorage + relationship: tosca.relationships.nfv.AttachesTo + occurrences: [ 0, UNBOUNDED ] + tosca.nodes.nfv.Vdu.VirtualBlockStorage: + derived_from: tosca.nodes.Root + description: This node type describes the specifications of requirements related to virtual block storage resources + properties: + virtual_block_storage_data: + type: tosca.datatypes.nfv.VirtualBlockStorageData + description: Describes the block storage characteristics. + required: true + sw_image_data: + type: tosca.datatypes.nfv.SwImageData + description: Defines information related to a SwImage artifact used by this Vdu.Compute node. + required: false # property is required when the node template has an associated artifact of type tosca.artifacts.nfv.SwImage and not required otherwise + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + description: Defines the capabilities of virtual_storage. + tosca.nodes.nfv.Vdu.VirtualFileStorage: + derived_from: tosca.nodes.Root + description: This node type describes the specifications of requirements related to virtual file storage resources + properties: + virtual_file_storage_data: + type: tosca.datatypes.nfv.VirtualFileStorageData + description: Describes the file storage characteristics. + required: true + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + description: Defines the capabilities of virtual_storage. + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + #description: Describes the requirements for linking to virtual link + tosca.nodes.nfv.Vdu.VirtualObjectStorage: + derived_from: tosca.nodes.Root + description: This node type describes the specifications of requirements related to virtual object storage resources + properties: + virtual_object_storage_data: + type: tosca.datatypes.nfv.VirtualObjectStorageData + description: Describes the object storage characteristics. + required: true + capabilities: + virtual_storage: + type: tosca.capabilities.nfv.VirtualStorage + description: Defines the capabilities of virtual_storage. + tosca.nodes.nfv.Cp: + derived_from: tosca.nodes.Root + description: Provides information regarding the purpose of the connection point + properties: + layer_protocols: + type: list + description: Identifies which protocol the connection point uses for connectivity purposes + required: true + entry_schema: + type: string + constraints: + - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] + role: #Name in ETSI NFV IFA011 v0.7.3: cpRole + type: string + description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS + required: false + constraints: + - valid_values: [ root, leaf ] + description: + type: string + description: Provides human-readable information on the purpose of the connection point + required: false + protocol: + type: list + description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor + required: false + entry_schema: + type: tosca.datatypes.nfv.CpProtocolData + trunk_mode: + type: boolean + description: Provides information about whether the CP instantiated from this Cp is in Trunk mode (802.1Q or other), When operating in "trunk mode", the Cp is capable of carrying traffic for several VLANs. Absence of this property implies that trunkMode is not configured for the Cp i.e. It is equivalent to boolean value "false". + required: false + allowed_address_data: # #Introduced from Beijing release, align with resource IM, outside the scope of SOL001 v2.5.1 + type: tosca.datatypes.nfv.AddressData # In the IM, it is a array, but here it is not a array. TBD. + required: false + tosca.nodes.nfv.VduCp: + derived_from: tosca.nodes.nfv.Cp + description: describes network connectivity between a VNFC instance based on this VDU and an internal VL + properties: + bitrate_requirement: + type: integer # in bits per second + description: Bitrate requirement in bit per second on this connection point + required: false + constraints: + - greater_or_equal: 0 + virtual_network_interface_requirements: + type: list + description: Specifies requirements on a virtual network interface realising the CPs instantiated from this CPD + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + order: + type: integer + description: The order of the NIC on the compute instance (e.g.eth2) + required: false + constraints: + - greater_or_equal: 0 + vnic_type: + type: string + description: Describes the type of the virtual network interface realizing the CPs instantiated from this CPD + required: false + constraints: + - valid_values: [ direct, normal, virtio, direct-physical ] + vnic_name: # Introduced from Beijing release, aligned with ONAP resource IM, outside the scope of SOL001 v2.5.1 + type: string + required: false + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + - virtual_binding: + capability: tosca.capabilities.nfv.VirtualBindable + relationship: tosca.relationships.nfv.VirtualBindsTo + node: tosca.nodes.nfv.Vdu.Compute + tosca.nodes.nfv.VnfVirtualLink: + derived_from: tosca.nodes.Root + description: Describes the information about an internal VNF VL + properties: + connectivity_type: + type: tosca.datatypes.nfv.ConnectivityType + description: Specifies the protocol exposed by the VL and the flow pattern supported by the VL + required: true + description: + type: string + description: Provides human-readable information on the purpose of the VL + required: false + test_access: + type: list + description: Test access facilities available on the VL + required: false + entry_schema: + type: string + constraints: + - valid_values: [ passive_monitoring, active_loopback ] + vl_profile: + type: tosca.datatypes.nfv.VlProfile + description: Defines additional data for the VL + required: true + monitoring_parameters: + type: list + description: Describes monitoring parameters applicable to the VL + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkMonitoringParameter + capabilities: + virtual_linkable: + type: tosca.capabilities.nfv.VirtualLinkable + tosca.nodes.nfv.VNF: + derived_from: tosca.nodes.Root + description: The generic abstract type from which all VNF specific abstract node types shall be derived to form, together with other node types, the TOSCA service template(s) representing the VNFD + properties: + descriptor_id: # instead of vnfd_id + type: string # GUID + description: Globally unique identifier of the VNFD + required: true + descriptor_version: # instead of vnfd_version + type: string + description: Identifies the version of the VNFD + required: true + provider: # instead of vnf_provider + type: string + description: Provider of the VNF and of the VNFD + required: true + product_name: # instead of vnf_product_name + type: string + description: Human readable name for the VNF Product + required: true + software_version: # instead of vnf_software_version + type: string + description: Software version of the VNF + required: true + product_info_name: # instead of vnf_product_info_name + type: string + description: Human readable name for the VNF Product + required: false + product_info_description: # instead of vnf_product_info_description + type: string + description: Human readable description of the VNF Product + required: false + vnfm_info: + type: list + required: true + description: Identifies VNFM(s) compatible with the VNF + entry_schema: + type: string + localization_languages: + type: list + description: Information about localization languages of the VNF + required: false + entry_schema: + type: string #IETF RFC 5646 string + default_localization_language: + type: string #IETF RFC 5646 string + description: Default localization language that is instantiated if no information about selected localization language is available + required: false + #configurable_properties: + #type: tosca.datatypes.nfv.VnfConfigurableProperties + #description: Describes the configurable properties of the VNF + #required: false + # derived types are expected to introduce configurable_properties + # with its type derived from + # tosca.datatypes.nfv.VnfConfigurableProperties + #modifiable_attributes: + #type: tosca.datatypes.nfv.VnfInfoModifiableAttributes + #description: Describes the modifiable attributes of the VNF + #required: false + # derived types are expected to introduce modifiable_attributes + # with its type derived from + # tosca.datatypes.nfv.VnfInfoModifiableAttributes + lcm_operations_configuration: + type: tosca.datatypes.nfv.VnfLcmOperationsConfiguration + description: Describes the configuration parameters for the VNF LCM operations + required: false + monitoring_parameters: + type: list + entry_schema: + type: tosca.datatypes.nfv.VnfMonitoringParameter + description: Describes monitoring parameters applicable to the VNF. + required: false + flavour_id: + type: string + description: Identifier of the Deployment Flavour within the VNFD + required: true + flavour_description: + type: string + description: Human readable description of the DF + required: true + #vnf_profile: + # type: tosca.datatypes.nfv.VnfProfile + # description: Describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF + # required: false + requirements: + - virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + occurrences: [ 0, 1 ] + interfaces: + Vnflcm: + type: tosca.interfaces.nfv.Vnflcm + tosca.nodes.nfv.VnfExtCp: + derived_from: tosca.nodes.nfv.Cp + description: Describes a logical external connection point, exposed by the VNF enabling connection with an external Virtual Link + properties: + virtual_network_interface_requirements: + type: list + description: The actual virtual NIC requirements that is been assigned when instantiating the connection point + required: false + entry_schema: + type: tosca.datatypes.nfv.VirtualNetworkInterfaceRequirements + requirements: + - external_virtual_link: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + - internal_virtual_link: #name in ETSI NFV IFA011 v0.7.3: intVirtualLinkDesc + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + +relationship_types: + tosca.relationships.nfv.VirtualBindsTo: + derived_from: tosca.relationships.DependsOn + description: Represents an association relationship between Vdu.Compute and VduCp node types + valid_target_types: [ tosca.capabilities.nfv.VirtualBindable ] + tosca.relationships.nfv.VirtualLinksTo: + derived_from: tosca.relationships.DependsOn + description: Represents an association relationship between the VduCp and VnfVirtualLink node types + valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ] + tosca.relationships.nfv.AttachesTo: + derived_from: tosca.relationships.Root + description: Represents an association relationship between the Vdu.Compute and one of the node types, Vdu.VirtualBlockStorage, Vdu.VirtualObjectStorage or Vdu.VirtualFileStorage + valid_target_types: [ tosca.capabilities.nfv.VirtualStorage ] + +group_types: + tosca.groups.nfv.PlacementGroup: + derived_from: tosca.groups.Root + description: PlacementGroup is used for describing the affinity or anti-affinity relationship applicable between the virtualization containers to be created based on different VDUs, or between internal VLs to be created based on different VnfVirtualLinkDesc(s) + properties: + description: + type: string + description: Human readable description of the group + required: true + members: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink ] + +policy_types: + tosca.policies.nfv.InstantiationLevels: + derived_from: tosca.policies.Root + description: The InstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour and including default instantiation level in term of the number of VNFC instances to be created as defined in ETSI GS NFV-IFA 011 [1]. + properties: + levels: + type: map # key: levelId + description: Describes the various levels of resources that can be used to instantiate the VNF using this flavour. + required: true + entry_schema: + type: tosca.datatypes.nfv.InstantiationLevel + default_level: + type: string # levelId + description: The default instantiation level for this flavour. + required: false # required if multiple entries in levels + tosca.policies.nfv.VduInstantiationLevels: + derived_from: tosca.policies.Root + description: The VduInstantiationLevels type is a policy type representing all the instantiation levels of resources to be instantiated within a deployment flavour in term of the number of VNFC instances to be created from each vdu.Compute. as defined in ETSI GS NFV-IFA 011 [1] + properties: + levels: + type: map # key: levelId + description: Describes the Vdu.Compute levels of resources that can be used to instantiate the VNF using this flavour + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + targets: [ tosca.nodes.nfv.Vdu.Compute ] + tosca.policies.nfv.VirtualLinkInstantiationLevels: + derived_from: tosca.policies.Root + description: The VirtualLinkInstantiationLevels type is a policy type representing all the instantiation levels of virtual link resources to be instantiated within a deployment flavour as defined in ETSI GS NFV-IFA 011 [1]. + properties: + levels: + type: map # key: levelId + description: Describes the virtual link levels of resources that can be used to instantiate the VNF using this flavour. + required: true + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + targets: [ tosca.nodes.nfv.VnfVirtualLink ] + tosca.policies.nfv.ScalingAspects: + derived_from: tosca.policies.Root + description: The ScalingAspects type is a policy type representing the scaling aspects used for horizontal scaling as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspects: + type: map # key: aspectId + description: Describe maximum scale level for total number of scaling steps that can be applied to a particular aspect + required: true + entry_schema: + type: tosca.datatypes.nfv.ScalingAspect + tosca.policies.nfv.VduScalingAspectDeltas: + derived_from: tosca.policies.Root + description: The VduScalingAspectDeltas type is a policy type representing the Vdu.Compute detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspect: + type: string + description: Represents the scaling aspect to which this policy applies + required: true + deltas: + type: map # key: scalingDeltaId + description: Describes the Vdu.Compute scaling deltas to be applied for every scaling steps of a particular aspect. + required: true + entry_schema: + type: tosca.datatypes.nfv.VduLevel + targets: [ tosca.nodes.nfv.Vdu.Compute ] + tosca.policies.nfv.VirtualLinkBitrateScalingAspectDeltas: + derived_from: tosca.policies.Root + description: The VirtualLinkBitrateScalingAspectDeltas type is a policy type representing the VnfVirtualLink detail of an aspect deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + aspect: + type: string + description: Represents the scaling aspect to which this policy applies. + required: true + deltas: + type: map # key: scalingDeltaId + description: Describes the VnfVirtualLink scaling deltas to be applied for every scaling steps of a particular aspect. + required: true + entry_schema: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + targets: [ tosca.nodes.nfv.VnfVirtualLink ] + tosca.policies.nfv.VduInitialDelta: + derived_from: tosca.policies.Root + description: The VduInitialDelta type is a policy type representing the Vdu.Compute detail of an initial delta used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + initial_delta: + type: tosca.datatypes.nfv.VduLevel + description: Represents the initial minimum size of the VNF. + required: true + targets: [ tosca.nodes.nfv.Vdu.Compute ] + tosca.policies.nfv.VirtualLinkBitrateInitialDelta: + derived_from: tosca.policies.Root + description: The VirtualLinkBitrateInitialDelta type is a policy type representing the VnfVirtualLink detail of an initial deltas used for horizontal scaling, as defined in ETSI GS NFV-IFA 011 [1]. + properties: + initial_delta: + type: tosca.datatypes.nfv.VirtualLinkBitrateLevel + description: Represents the initial minimum size of the VNF. + required: true + targets: [ tosca.nodes.nfv.VnfVirtualLink ] + # tosca.policies.nfv.AffinityRule: + # derived_from: tosca.policies.Placement + # description: The AffinityRule describes the affinity rules applicable for the defined targets + # properties: + # scope: + # type: string + # description: scope of the rule is an NFVI_node, an NFVI_PoP, etc. + # required: true + # constraints: + # - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ] + # targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ] + # + # tosca.policies.nfv.AntiAffinityRule: + # derived_from: tosca.policies.Placement + # description: The AntiAffinityRule describes the anti-affinity rules applicable for the defined targets + # properties: + # scope: + # type: string + # description: scope of the rule is an NFVI_node, an NFVI_PoP, etc. + # required: true + # constraints: + # - valid_values: [ nfvi_node, zone, zone_group, nfvi_pop ] + # targets: [ tosca.nodes.nfv.Vdu.Compute, tosca.nodes.nfv.VnfVirtualLink, tosca.groups.nfv.PlacementGroup ] + tosca.policies.nfv.SecurityGroupRule: + derived_from: tosca.policies.Root + description: The SecurityGroupRule type is a policy type specified the matching criteria for the ingress and/or egress traffic to/from visited connection points as defined in ETSI GS NFV-IFA 011 [1]. + properties: + description: + type: string + description: Human readable description of the security group rule. + required: false + direction: + type: string + description: The direction in which the security group rule is applied. The direction of 'ingress' or 'egress' is specified against the associated CP. I.e., 'ingress' means the packets entering a CP, while 'egress' means the packets sent out of a CP. + required: false + constraints: + - valid_values: [ ingress, egress ] + default: ingress + ether_type: + type: string + description: Indicates the protocol carried over the Ethernet layer. + required: false + constraints: + - valid_values: [ ipv4, ipv6 ] + default: ipv4 + protocol: + type: string + description: Indicates the protocol carried over the IP layer. Permitted values include any protocol defined in the IANA protocol registry, e.g. TCP, UDP, ICMP, etc. + required: false + constraints: + - valid_values: [ hopopt, icmp, igmp, ggp, ipv4, st, tcp, cbt, egp, igp, bbn_rcc_mon, nvp_ii, pup, argus, emcon, xnet, chaos, udp, mux, dcn_meas, hmp, prm, xns_idp, trunk_1, trunk_2, leaf_1, leaf_2, rdp, irtp, iso_tp4, netblt, mfe_nsp, merit_inp, dccp, 3pc, idpr, xtp, ddp, idpr_cmtp, tp++, il, ipv6, sdrp, ipv6_route, ipv6_frag, idrp, rsvp, gre, dsr, bna, esp, ah, i_nlsp, swipe, narp, mobile, tlsp, skip, ipv6_icmp, ipv6_no_nxt, ipv6_opts, cftp, sat_expak, kryptolan, rvd, ippc, sat_mon, visa, ipcv, cpnx, cphb, wsn, pvp, br_sat_mon, sun_nd, wb_mon, wb_expak, iso_ip, vmtp, secure_vmtp, vines, ttp, iptm, nsfnet_igp, dgp, tcf, eigrp, ospfigp, sprite_rpc, larp, mtp, ax.25, ipip, micp, scc_sp, etherip, encap, gmtp, ifmp, pnni, pim, aris, scps, qnx, a/n, ip_comp, snp, compaq_peer, ipx_in_ip, vrrp, pgm, l2tp, ddx, iatp, stp, srp, uti, smp, sm, ptp, isis, fire, crtp, crudp, sscopmce, iplt, sps, pipe, sctp, fc, rsvp_e2e_ignore, mobility, udp_lite, mpls_in_ip, manet, hip, shim6, wesp, rohc ] + default: tcp + port_range_min: + type: integer + description: Indicates minimum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. + required: false + constraints: + - greater_or_equal: 0 + - less_or_equal: 65535 + default: 0 + port_range_max: + type: integer + description: Indicates maximum port number in the range that is matched by the security group rule. If a value is provided at design-time, this value may be overridden at run-time based on other deployment requirements or constraints. + required: false + constraints: + - greater_or_equal: 0 + - less_or_equal: 65535 + default: 65535 + targets: [ tosca.nodes.nfv.VduCp, tosca.nodes.nfv.VnfExtCp ] + tosca.policies.nfv.SupportedVnfInterface: + derived_from: tosca.policies.Root + description: this policy type represents interfaces produced by a VNF, the details to access them and the applicable connection points to use to access these interfaces + properties: + interface_name: + type: string + description: Identifies an interface produced by the VNF. + required: true + constraints: + - valid_values: [ vnf_indicator, vnf_configuration ] + details: + type: tosca.datatypes.nfv.InterfaceDetails + description: Provide additional data to access the interface endpoint + required: false + targets: [ tosca.nodes.nfv.VnfExtCp, tosca.nodes.nfv.VduCp ] diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.mf b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.mf new file mode 100644 index 0000000..808bc28 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.mf @@ -0,0 +1,8 @@ +metadata: + vnf_product_name: vcpe_vgw + vnf_provider_id: ONAP + vnf_package_version: 1.0 + vnf_release_data_time: 2018.05.06T13:00+08:00 + +Source: MainServiceTemplate.yaml + diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.yaml b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.yaml new file mode 100644 index 0000000..2caae19 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/MainServiceTemplate.yaml @@ -0,0 +1,345 @@ +tosca_definitions_version: tosca_simple_yaml_1_0 +metadata: + template_name: vCPE_vgw + template_version: "1.0" + template_author: onap + VNFD_SCHEMA_VERSION: "2.5.1+1" +description: vCPE_vgw + +imports: + - onap_dm.yaml + +node_types: + onap.vcpe_vgw: + derived_from: tosca.nodes.nfv.VNF + properties: + descriptor_id: + type: string + constraints: [ valid_values: [ b1bb0ce7-2222-4fa7-95ed-4840d70a1177 ] ] + default: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: + type: string + constraints: [ valid_values: [ onap ] ] + default: onap + product_name: + type: string + constraints: [ valid_values: [ vcpe_vgw ] ] + default: vcpe_vgw + software_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + descriptor_version: + type: string + constraints: [ valid_values: [ '1.0' ] ] + default: '1.0' + flavour_id: + type: string + constraints: [ valid_values: [ simple ] ] #only one and only allowed one DF in this example + default: simple + flavour_description: + type: string + default: "" + vnfm_info: + type: list + entry_schema: + type: string + default: ['gvnfm'] + requirements: + - virtual_link_public: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + occurrences: [ 0, 1 ] + - virtual_link_private: + capability: tosca.capabilities.nfv.VirtualLinkable + relationship: tosca.relationships.nfv.VirtualLinksTo + occurrences: [ 0, 1 ] + +topology_template: + substitution_mappings: + node_type: onap.vcpe_vgw + requirements: + virtual_link_public: [ Cp_vgw_public, virtual_link ] # expose as external CP + + inputs: + vcpe_image_name: + type: string + description: image name for vcpe in openstack glance + default: ubuntu_16.04 + public_net_id: + type: string + description: public network id used during onap installation + default: external + onap_private_net_id: + type: string + description: onap OAM network id + default: oam_onap + onap_private_net_cidr: + type: string + description: oanp OAM network cidr + default: 10.0.0.0/16 + mux_gw_private_net_id: + type: string + description: Private network that connects vGMUX to vGWs + default: zdfw1muxgw01_private + mux_gw_private_net_cidr: + type: string + description: he CIDR of the vGMUX private network + default: 10.5.0.0/24 + cpe_public_net_id: + type: string + description: cpe public net name + default: zdfw1cpe01_public + cpe_public_net_cidr: + type: string + description: cpe public net cidr + default: 10.2.0.0/24 + vgw_private_ip_0: + type: string + description: Private IP address that is assigned to the vGW to communicate with vGMUX + default: 10.5.0.21 + vgw_private_ip_1: + type: string + description: Private IP address that is assigned to the vGW to communicate with ONAP components + default: 10.0.101.30 + vgw_private_ip_2: + type: string + description: Private IP address that is assigned to the vGW to communicate with vCPE public network + default: 10.2.0.3 + vgw_name_0: + type: string + description: Name of the vGW + default: zdcpe1cpe01gw01 + dcae_collector_ip: + type: string + description: dcae collector ip + default: 10.0.4.102 + dcae_collector_port: + type: string + description: dcae collector port + default: "8080" + pub_key: + type: string + description: ssh public key + default: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGx6SKrAuCz1V8KGevZueksLdWoPWJP6z3r29Z7TmPVEOjM+7PIPeSs2BVRx3rnHZBAlasMrZ+fJBS25ts9vfC+ItezQah/hr9vrkmwxCR54Lb84poW+sToPeF6i5eZY7W+jWJfLaFSFx9d2vp4zes/fOlT3NvYCXbn/3QdryQoGl7VFI8oemZypVcikZXElJeeKgAVdSwnrzuqtO/tmbXcAeSbYvVjki8ywYcsWMVMYWUWhh+1BAB6kXnTsIWqzrq0Pfvy+81WDwtiqsqmd93HY8hE0scBrXFBZzQS/AYfIFBlEuFNdLczchntjbZ0n7dmDXk8zHtCZYNk7kwb8k/ + nexus_artifact_repo: + type: string + description: Root URL for the Nexus repository for Maven artifacts + default: https://nexus.onap.org + demo_artifacts_version: + type: string + description: artifacts version used in demo vnfs + default: 1.2.0 + install_script_version: + type: string + description: install script version number + default: 1.2.0-SNAPSHOT + cloud_env: + type: string + description: cloud environment(openstack or rackspace) + default: openstack + mux_ip_addr: + type: string + description: IP address of vGMUX + default: 10.5.0.20 + vg_vgmux_tunnel_vni: + type: string + description: vni value of vG-vGMUX vxlan tunnel + default: "100" + vnf_id: + type: string + description: The VNF ID is provided by ONAP + default: vCPE_Infrastructure_GW_demo_app + vf_module_id: + type: string + description: The vCPE Module ID is provided by ONAP + default: vCPE_Customer_GW + + node_templates: + LLU_VNF: + type: onap.vcpe_vgw + properties: + descriptor_id: b1bb0ce7-2222-4fa7-95ed-4840d70a1177 + provider: onap + product_name: vcpe_vgw + software_version: '1.0' + descriptor_version: '1.0' + flavour_id: simple + flavour_description: simple + vnfm_info: ['gvnfm'] + + #Private network that connects vGMUX to vGWs + VL_mux_gw_private_net: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocols: [ipv4] + vl_profile: + max_bitrate_requirements: + root: 10000000 + leaf: 10000000 + min_bitrate_requirements: + root: 10000000 + leaf: 10000000 + virtual_link_protocol_data: + - associated_layer_protocol: ipv4 + l3_protocol_data: + name: { get_input: mux_gw_private_net_id } + ip_version: ipv4 + cidr: { get_input: mux_gw_private_net_cidr } + dhcp_enabled: false + + #cpe public network + VL_cpe_public: + type: tosca.nodes.nfv.VnfVirtualLink + properties: + connectivity_type: + layer_protocols: [ipv4] + vl_profile: + max_bitrate_requirements: + root: 10000000 + leaf: 10000000 + min_bitrate_requirements: + root: 10000000 + leaf: 10000000 + virtual_link_protocol_data: + - associated_layer_protocol: ipv4 + l3_protocol_data: + name: { get_input: cpe_public_net_id } + ip_version: ipv4 + cidr: { get_input: cpe_public_net_cidr } + dhcp_enabled: false + + # vgw related + Cp_vgw_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + requirements: + - virtual_binding: VDU_vgw_0 + #- virtual_link: VL_public + + Cp_vgw_mux_gw_private_net: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_0 } + virtual_network_interface_requirements: + - name: dpdk support + support_mandatory: true + network_interface_requirements: + dataProcessingAccelerationLibrary: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "DPDK"}' + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_mux_gw_private_net + + Cp_vgw_cpe_public: + type: tosca.nodes.nfv.VduCp + properties: + layer_protocols: [ipv4] + trunk_mode: false + protocol: + - associated_layer_protocol: ipv4 + address_data: + - address_type: ip_address + l3_address_data: + ip_address_assignment: false + floating_ip_activated: false + fixed_ip_address: + - { get_input: vgw_private_ip_2 } + requirements: + - virtual_binding: VDU_vgw_0 + - virtual_link: VL_cpe_public + + VDU_vgw_0: + type: tosca.nodes.nfv.Vdu.Compute + properties: + name: { get_input: vgw_name_0 } + description: vgw + vdu_profile: + min_number_of_instances: 1 + max_number_of_instances: 1 + watchdog: none + inject_files: # TODO SDC BUG + source_path: ../Artifacts/Deployment/OTHER/authorized_keys #SSH authorized_keys + dest_path: /home/ubuntu/.ssh/authorized_keys + meta_data: + vnf_id: { get_input: vnf_id } + vf_module_id: { get_input: vf_module_id } + mux_gw_private_net_ipaddr: { get_input: vgw_private_ip_0 } + oam_ipaddr: { get_input: vgw_private_ip_1 } + oam_cidr: { get_input: onap_private_net_cidr } + cpe_public_net_cidr: { get_input: cpe_public_net_cidr } + mux_gw_private_net_cidr: { get_input: mux_gw_private_net_cidr } + mux_ip_addr: { get_input: mux_ip_addr } + vg_vgmux_tunnel_vni: { get_input: vg_vgmux_tunnel_vni } + install_script_version: { get_input: install_script_version } + cloud_env: { get_input: cloud_env } + nexus_artifact_repo: { get_input: nexus_artifact_repo } + boot_data: | + #!/bin/bash + METADATA=`curl -s http://169.254.169.254/openstack/2012-08-10/meta_data.json` + apt-get -y install jq + + get_metadata () { + echo $METADATA | jq -r ".meta.$1" + } + + # Create configuration files + mkdir /opt/config + echo "$(get_metadata oam_ipaddr)" > /opt/config/oam_ipaddr.txt + echo "$(get_metadata oam_cidr)" > /opt/config/oam_cidr.txt + echo "$(get_metadata cpe_public_net_cidr)" > /opt/config/cpe_public_net_cidr.txt + echo "$(get_metadata mux_gw_private_net_ipaddr)" > /opt/config/mux_gw_private_net_ipaddr.txt + echo "$(get_metadata mux_gw_private_net_cidr)" > /opt/config/mux_gw_private_net_cidr.txt + echo "$(get_metadata install_script_version)" > /opt/config/install_script_version.txt + echo "$(get_metadata cloud_env)" > /opt/config/cloud_env.txt + echo "$(get_metadata mux_ip_addr)" > /opt/config/mux_ip_addr.txt + echo "$(get_metadata vg_vgmux_tunnel_vni)" > /opt/config/vg_vgmux_tunnel_vni.txt + echo "$(get_metadata nexus_artifact_repo)" > /opt/config/nexus_artifact_repo.txt + + # Download and run install script + apt-get -y install unzip + INSTALL_SCRIPT_VERSION=$(get_metadata install_script_version) + NEXUS_ARTIFACT_REPO=$(get_metadata nexus_artifact_repo) + if [[ "${INSTALL_SCRIPT_VERSION}" =~ "SNAPSHOT" ]]; then REPO=snapshots; else REPO=releases; fi + curl -k -L "${NEXUS_ARTIFACT_REPO}/service/local/artifact/maven/redirect?r=${REPO}&g=org.onap.demo.vnf.vcpe&a=vcpe-scripts&e=zip&v=${INSTALL_SCRIPT_VERSION}" -o /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip + unzip -j /opt/vcpe-scripts-${INSTALL_SCRIPT_VERSION}.zip -d /opt v_gw_install.sh + cd /opt + chmod +x v_gw_install.sh + ./v_gw_install.sh + capabilities: + virtual_compute: + properties: + virtual_memory: + virtual_mem_size: 4096 MB + vdu_mem_requirements: + memoryPageSize: '{"schemaVersion": "0", "schemaSelector": "", "hardwarePlatform": "generic", "mandatory": "true", "configurationValue": "2 MB"}' + numberOfPages: '{"schemaVersion": "0","schemaSelector": "","hardwarePlatform": "generic","mandatory": "true", "configurationValue": "1024"}' + virtual_cpu: + num_virtual_cpu: 2 + cpu_architecture: generic + virtual_local_storage: + - size_of_storage: 40 GB + artifacts: + sw_image: #TODO need to put glance image name here + #file: { get_input: vcpe_image_name } + file: ../Artifacts/Deployment/OTHER/image + type: tosca.artifacts.nfv.SwImage diff --git a/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/TOSCA-Metadata/TOSCA.meta b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/TOSCA-Metadata/TOSCA.meta new file mode 100644 index 0000000..4eaf193 --- /dev/null +++ b/catalog/pub/utils/toscaparser/testdata/vnf/vcpesriov/vgw/TOSCA-Metadata/TOSCA.meta @@ -0,0 +1,4 @@ +TOSCA-Meta-File-Version: 1.0 +CSAR-Version: 1.1 +Created-By: ONAP +Entry-Definitions: Definitions/MainServiceTemplate.yaml diff --git a/catalog/pub/utils/toscaparser/tests.py b/catalog/pub/utils/toscaparser/tests.py index 285d970..9da72f0 100644 --- a/catalog/pub/utils/toscaparser/tests.py +++ b/catalog/pub/utils/toscaparser/tests.py @@ -35,30 +35,32 @@ class TestToscaparser(TestCase): def test_vnfd_parse(self): self.remove_temp_dir() input_parameters = [{"value": "222222", "key": "sdncontroller"}] - # vcpe = ["vgw", "infra", "vbng", "vbrgemu", "vgmux"] - vcpe_part = 'vgw' - sriov_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf/vcpesriov" - csar_file = ("%s/%s.csar" % (sriov_path, vcpe_part)) - logger.debug("csar_file:%s", csar_file) - vnfd_json = parse_vnfd(csar_file, input_parameters) - metadata = json.loads(vnfd_json).get("metadata") - logger.debug("sriov metadata:%s", metadata) - self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", "")) - if vcpe_part == "infra": - self.assertEqual("b1bb0ce7-1111-4fa7-95ed-4840d70a1177", json.loads(vnfd_json)["vnf"]["properties"]["descriptor_id"]) + vcpe = ["vgw", "infra", "vbng", "vbrgemu", "vgmux"] + main_template = 'Definitions/MainServiceTemplate.yaml' + for vcpe_part in vcpe: + sriov_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf/vcpesriov" + main_template_path = ("%s/%s/%s" % (sriov_path, vcpe_part, main_template)) + logger.debug("main_template:%s", main_template_path) + vnfd_json = parse_vnfd(main_template_path, input_parameters) + metadata = json.loads(vnfd_json).get("metadata") + logger.debug("sriov metadata:%s", metadata) + self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", "")) + if vcpe_part == "infra": + self.assertEqual("b1bb0ce7-1111-4fa7-95ed-4840d70a1177", json.loads(vnfd_json)["vnf"]["properties"]["descriptor_id"]) dpdk_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/vnf/vcpedpdk" - csar_file = ("%s/%s.csar" % (dpdk_path, vcpe_part)) - logger.debug("csar_file:%s", csar_file) - vnfd_json = parse_vnfd(csar_file, input_parameters) - metadata = json.loads(vnfd_json).get("metadata") - logger.debug("dpdk metadata:%s", metadata) - self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", "")) + for vcpe_part in vcpe: + main_template_path = ("%s/%s/%s" % (dpdk_path, vcpe_part, main_template)) + logger.debug("main_template_path:%s", main_template_path) + vnfd_json = parse_vnfd(main_template_path, input_parameters) + metadata = json.loads(vnfd_json).get("metadata") + logger.debug("dpdk metadata:%s", metadata) + self.assertEqual(("vCPE_%s" % vcpe_part), metadata.get("template_name", "")) def test_pnfd_parse(self): self.remove_temp_dir() - csar_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/pnf/ran-du.csar" - pnfd_json = parse_pnfd(csar_path) + main_template_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/pnf/ran-du/ran-du.yaml" + pnfd_json = parse_pnfd(main_template_path) pnfd_dict = json.loads(pnfd_json) metadata = pnfd_dict.get("metadata") self.assertEqual("RAN_DU", metadata.get("template_name", "")) @@ -67,15 +69,15 @@ class TestToscaparser(TestCase): def test_nsd_parse(self): self.remove_temp_dir() - # ran_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/ran.csar" - # nsd_json = parse_nsd(ran_csar, []) - # logger.debug("NS ran json: %s" % nsd_json) - # metadata = json.loads(nsd_json).get("metadata") - # self.assertEqual("RAN-NS", metadata.get("nsd_name", "")) + ran_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/ran/ran-ns.yaml" + nsd_json = parse_nsd(ran_csar, []) + logger.debug("NS ran json: %s" % nsd_json) + metadata = json.loads(nsd_json).get("metadata") + self.assertEqual("RAN-NS", metadata.get("nsd_name", "")) def test_service_descriptor_parse(self): self.remove_temp_dir() - service_test_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/service-vIMS.csar" + service_test_csar = os.path.dirname(os.path.abspath(__file__)) + "/testdata/ns/service-vims/Definitions/service-VimsV2-template.yml" test_json = parse_nsd(service_test_csar, []) logger.debug("service-vIMS json: %s" % test_json) metadata = json.loads(test_json).get("metadata") diff --git a/catalog/settings.py b/catalog/settings.py index 51c9a88..df9d5f0 100644 --- a/catalog/settings.py +++ b/catalog/settings.py @@ -53,8 +53,9 @@ INSTALLED_APPS = [ 'catalog.samples', 'catalog.swagger', 'drf_yasg', + # 'django_nose' ] - +# TEST_RUNNER = 'django_nose.NoseTestSuiteRunner' # drf-yasg SWAGGER_SETTINGS = { 'LOGIN_URL': '/admin/login', @@ -116,6 +117,12 @@ DATABASES = { }, } +# DATABASES = {} +# DATABASES['default'] = { +# 'ENGINE': 'django.db.backends.sqlite3', +# 'NAME': ':memory:', +# } + catalog.pub.redisco.connection_setup(host=REDIS_HOST, port=REDIS_PORT, password=REDIS_PASSWD, db=0) # CACHE_BACKEND = 'redis_cache.cache://%s@%s:%s' % (REDIS_PASSWD, REDIS_HOST, REDIS_PORT) -- 2.16.6