Replace line break from CRLF to LF

This patch replaces all lines of CRLF to LF.

Change-Id: I0b23a0da2cb9fda88da9ef59540e5f55570cdc57
This commit is contained in:
Ayumu Ueha
2022-02-08 12:11:15 +00:00
parent 0ae606932e
commit 445a945803
27 changed files with 3707 additions and 3707 deletions

View File

@@ -1,5 +1,5 @@
{ {
"userDefinedData":{ "userDefinedData":{
"abc":"xyz" "abc":"xyz"
} }
} }

View File

@@ -1,20 +1,20 @@
{ {
"usageState":"NOT_IN_USE", "usageState":"NOT_IN_USE",
"userDefinedData":{ "userDefinedData":{
"abc":"xyz" "abc":"xyz"
}, },
"_links":{ "_links":{
"packageContent":{ "packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
}, },
"self":{ "self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}, },
"vnfd":{ "vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
} }
}, },
"onboardingState":"CREATED", "onboardingState":"CREATED",
"operationalState":"DISABLED", "operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
} }

View File

@@ -1,69 +1,69 @@
{ {
"vnf_packages":[ "vnf_packages":[
{ {
"vnfSoftwareVersion":"1.0", "vnfSoftwareVersion":"1.0",
"usageState":"NOT_IN_USE", "usageState":"NOT_IN_USE",
"vnfProductName":"Sample VNF", "vnfProductName":"Sample VNF",
"softwareImages":[ "softwareImages":[
{ {
"imagePath":"", "imagePath":"",
"diskFormat":"qcow2", "diskFormat":"qcow2",
"userMetadata":{ "userMetadata":{
}, },
"id":"VirtualStorage", "id":"VirtualStorage",
"size":2, "size":2,
"name":"VrtualStorage", "name":"VrtualStorage",
"checksum":{ "checksum":{
"hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464", "hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464",
"algorithm":"sha-256" "algorithm":"sha-256"
}, },
"minDisk":2, "minDisk":2,
"version":"0.5.2", "version":"0.5.2",
"provider":"provider", "provider":"provider",
"minRam":8192, "minRam":8192,
"containerFormat":"bare" "containerFormat":"bare"
}, },
{ {
"imagePath":"", "imagePath":"",
"diskFormat":"qcow2", "diskFormat":"qcow2",
"userMetadata":{ "userMetadata":{
}, },
"id":"VDU1", "id":"VDU1",
"size":1, "size":1,
"name":"Software of VDU1", "name":"Software of VDU1",
"checksum":{ "checksum":{
"hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464", "hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464",
"algorithm":"sha-256" "algorithm":"sha-256"
}, },
"minDisk":1, "minDisk":1,
"version":"0.5.2", "version":"0.5.2",
"provider":"provider", "provider":"provider",
"minRam":0, "minRam":0,
"containerFormat":"bare" "containerFormat":"bare"
} }
], ],
"vnfProvider":"Test VNF Provider", "vnfProvider":"Test VNF Provider",
"userDefinedData":{ "userDefinedData":{
"abc":"xyz" "abc":"xyz"
}, },
"vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92", "vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92",
"_links":{ "_links":{
"packageContent":{ "packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
}, },
"self":{ "self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}, },
"vnfd":{ "vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
} }
}, },
"vnfdVersion":"1.0", "vnfdVersion":"1.0",
"onboardingState":"ONBOARDED", "onboardingState":"ONBOARDED",
"operationalState":"DISABLED", "operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
} }
] ]
} }

View File

@@ -1,7 +1,7 @@
{ {
"operationalState": "DISABLED", "operationalState": "DISABLED",
"userDefinedData": { "userDefinedData": {
"key1": "value1", "key1": "value1",
"key2": "value2" "key2": "value2"
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"operationalState":"DISABLED", "operationalState":"DISABLED",
"userDefinedData":{ "userDefinedData":{
"abc":"xyz" "abc":"xyz"
} }
} }

View File

@@ -1,65 +1,65 @@
{ {
"vnfSoftwareVersion":"1.0", "vnfSoftwareVersion":"1.0",
"usageState":"NOT_IN_USE", "usageState":"NOT_IN_USE",
"vnfProductName":"Sample VNF", "vnfProductName":"Sample VNF",
"softwareImages":[ "softwareImages":[
{ {
"imagePath":"", "imagePath":"",
"diskFormat":"qcow2", "diskFormat":"qcow2",
"userMetadata":{ "userMetadata":{
}, },
"id":"VirtualStorage", "id":"VirtualStorage",
"size":2000000000, // unit for 'size` is always in Bytes "size":2000000000, // unit for 'size` is always in Bytes
"name":"VrtualStorage", "name":"VrtualStorage",
"checksum":{ "checksum":{
"hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464", "hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464",
"algorithm":"sha-256" "algorithm":"sha-256"
}, },
"minDisk":2000000000, // unit for 'minDisk' is always in Bytes "minDisk":2000000000, // unit for 'minDisk' is always in Bytes
"version":"0.5.2", "version":"0.5.2",
"provider":"provider", "provider":"provider",
"minRam":8192000000, // unit for 'minRam' is always in Bytes "minRam":8192000000, // unit for 'minRam' is always in Bytes
"containerFormat":"bare" "containerFormat":"bare"
}, },
{ {
"imagePath":"", "imagePath":"",
"diskFormat":"qcow2", "diskFormat":"qcow2",
"userMetadata":{ "userMetadata":{
}, },
"id":"VDU1", "id":"VDU1",
"size":1000000000, "size":1000000000,
"name":"Software of VDU1", "name":"Software of VDU1",
"checksum":{ "checksum":{
"hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464", "hash":"932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464",
"algorithm":"sha-256" "algorithm":"sha-256"
}, },
"minDisk":1000000000, "minDisk":1000000000,
"version":"0.5.2", "version":"0.5.2",
"provider":"provider", "provider":"provider",
"minRam":0, "minRam":0,
"containerFormat":"bare" "containerFormat":"bare"
} }
], ],
"vnfProvider":"Test VNF Provider", "vnfProvider":"Test VNF Provider",
"userDefinedData":{ "userDefinedData":{
"abc":"xyz" "abc":"xyz"
}, },
"vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92", "vnfdId":"b3ab49d6-389d-46f9-8650-d0bf778b5e92",
"_links":{ "_links":{
"packageContent":{ "packageContent":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/package_content"
}, },
"self":{ "self":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
}, },
"vnfd":{ "vnfd":{
"href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd" "href":"/vnfpkgm/v1/vnf_packages/4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb/vnfd"
} }
}, },
"vnfdVersion":"1.0", "vnfdVersion":"1.0",
"onboardingState":"ONBOARDED", "onboardingState":"ONBOARDED",
"operationalState":"DISABLED", "operationalState":"DISABLED",
"id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb" "id":"4e8b9d2c-ecb5-408b-a8ce-8ea0890bacbb"
} }

View File

@@ -1,36 +1,36 @@
[ [
{ {
"id": "76057f8e65ab37fb82d9382dfc3f3c8b", "id": "76057f8e65ab37fb82d9382dfc3f3c8b",
"filter": { "filter": {
"notificationTypes": [ "notificationTypes": [
"VnfLcmOperationOccurrenceNotification" "VnfLcmOperationOccurrenceNotification"
] ]
}, },
"callbackUri": "http://sample1.com/notification", "callbackUri": "http://sample1.com/notification",
"_links": { "_links": {
"self": { "self": {
"href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b" "href": "https://sample1.com/vnflcm/v1/subscriptions/76057f8e65ab37fb82d9382dfc3f3c8b"
} }
} }
}, },
{ {
"id": "4845ac30eab62a0b0b4edc00fbb930ee", "id": "4845ac30eab62a0b0b4edc00fbb930ee",
"filter": { "filter": {
"notificationTypes": [ "notificationTypes": [
"VnfLcmOperationOccurrenceNotification", "VnfLcmOperationOccurrenceNotification",
"VnfIdentifierCreationNotification", "VnfIdentifierCreationNotification",
"VnfIdentifierDeletionNotification" "VnfIdentifierDeletionNotification"
], ],
"notificationTypes": [ "notificationTypes": [
"SCALE", "SCALE",
"HEAL" "HEAL"
] ]
}, },
"callbackUri": "http://sample2.com/notification", "callbackUri": "http://sample2.com/notification",
"_links": { "_links": {
"self": { "self": {
"href": "https://sample2.com/vnflcm/v1/subscriptions/4845ac30eab62a0b0b4edc00fbb930ee" "href": "https://sample2.com/vnflcm/v1/subscriptions/4845ac30eab62a0b0b4edc00fbb930ee"
} }
} }
} }
] ]

View File

@@ -1,31 +1,31 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: Sample VNF. description: Sample VNF.
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
- sample_kubernetes_types.yaml - sample_kubernetes_types.yaml
- sample_kubernetes_df_simple.yaml - sample_kubernetes_df_simple.yaml
topology_template: topology_template:
inputs: inputs:
selected_flavour: selected_flavour:
type: string type: string
description: VNF deployment flavour selected by the consumer. It is provided in the API description: VNF deployment flavour selected by the consumer. It is provided in the API
node_templates: node_templates:
VNF: VNF:
type: company.provider.VNF type: company.provider.VNF
properties: properties:
flavour_id: { get_input: selected_flavour } flavour_id: { get_input: selected_flavour }
descriptor_id: b1db0ce7-ebca-1fb7-95ed-4840d70a1163 descriptor_id: b1db0ce7-ebca-1fb7-95ed-4840d70a1163
provider: Company provider: Company
product_name: Sample VNF product_name: Sample VNF
software_version: '1.0' software_version: '1.0'
descriptor_version: '1.0' descriptor_version: '1.0'
vnfm_info: vnfm_info:
- Tacker - Tacker
requirements: requirements:
#- virtual_link_external # mapped in lower-level templates #- virtual_link_external # mapped in lower-level templates
#- virtual_link_internal # mapped in lower-level templates #- virtual_link_internal # mapped in lower-level templates

View File

@@ -1,63 +1,63 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: VNF type definition description: VNF type definition
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
company.provider.VNF: company.provider.VNF:
derived_from: tosca.nodes.nfv.VNF derived_from: tosca.nodes.nfv.VNF
properties: properties:
id: id:
type: string type: string
description: ID of this VNF description: ID of this VNF
default: vnf_id default: vnf_id
vendor: vendor:
type: string type: string
description: name of the vendor who generate this VNF description: name of the vendor who generate this VNF
default: vendor default: vendor
version: version:
type: version type: version
description: version of the software for this VNF description: version of the software for this VNF
default: 1.0 default: 1.0
descriptor_id: descriptor_id:
type: string type: string
constraints: [ valid_values: [ b1db0ce7-ebca-1fb7-95ed-4840d70a1163 ] ] constraints: [ valid_values: [ b1db0ce7-ebca-1fb7-95ed-4840d70a1163 ] ]
default: b1db0ce7-ebca-1fb7-95ed-4840d70a1163 default: b1db0ce7-ebca-1fb7-95ed-4840d70a1163
descriptor_version: descriptor_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
provider: provider:
type: string type: string
constraints: [ valid_values: [ 'Company' ] ] constraints: [ valid_values: [ 'Company' ] ]
default: 'Company' default: 'Company'
product_name: product_name:
type: string type: string
constraints: [ valid_values: [ 'Sample VNF' ] ] constraints: [ valid_values: [ 'Sample VNF' ] ]
default: 'Sample VNF' default: 'Sample VNF'
software_version: software_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
vnfm_info: vnfm_info:
type: list type: list
entry_schema: entry_schema:
type: string type: string
constraints: [ valid_values: [ Tacker ] ] constraints: [ valid_values: [ Tacker ] ]
default: [ Tacker ] default: [ Tacker ]
flavour_id: flavour_id:
type: string type: string
constraints: [ valid_values: [ simple ] ] constraints: [ valid_values: [ simple ] ]
default: simple default: simple
flavour_description: flavour_description:
type: string type: string
default: "This is the default flavour description" default: "This is the default flavour description"
requirements: requirements:
- virtual_link_internal: - virtual_link_internal:
capability: tosca.capabilities.nfv.VirtualLinkable capability: tosca.capabilities.nfv.VirtualLinkable
interfaces: interfaces:
Vnflcm: Vnflcm:
type: tosca.interfaces.nfv.Vnflcm type: tosca.interfaces.nfv.Vnflcm

View File

@@ -1,39 +1,39 @@
# Copyright 2020 OpenStack Foundation # Copyright 2020 OpenStack Foundation
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may # 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 # not use this file except in compliance with the License. You may obtain
# a copy of the License at # a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
# #
# flake8: noqa: E402 # flake8: noqa: E402
"""add_vnfc_info_to_instantiated_vnf_info """add_vnfc_info_to_instantiated_vnf_info
Revision ID: 8a7ca803e0d0 Revision ID: 8a7ca803e0d0
Revises: aaf461c8844c Revises: aaf461c8844c
Create Date: 2020-09-21 15:00:00.004343 Create Date: 2020-09-21 15:00:00.004343
""" """
# revision identifiers, used by Alembic. # revision identifiers, used by Alembic.
revision = '8a7ca803e0d0' revision = '8a7ca803e0d0'
down_revision = 'aaf461c8844c' down_revision = 'aaf461c8844c'
from alembic import op from alembic import op
import sqlalchemy as sa import sqlalchemy as sa
from tacker.db import migration from tacker.db import migration
def upgrade(active_plugins=None, options=None): def upgrade(active_plugins=None, options=None):
op.add_column('vnf_instantiated_info', op.add_column('vnf_instantiated_info',
sa.Column('vnfc_info', sa.JSON(), nullable=True)) sa.Column('vnfc_info', sa.JSON(), nullable=True))

View File

@@ -1,202 +1,202 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: ETSI NFV SOL 001 common types definitions version 2.6.1 description: ETSI NFV SOL 001 common types definitions version 2.6.1
metadata: metadata:
template_name: etsi_nfv_sol001_common_types template_name: etsi_nfv_sol001_common_types
template_author: ETSI_NFV template_author: ETSI_NFV
template_version: 2.6.1 template_version: 2.6.1
data_types: data_types:
tosca.datatypes.nfv.L2AddressData: tosca.datatypes.nfv.L2AddressData:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: Describes the information on the MAC addresses to be assigned to a connection point. description: Describes the information on the MAC addresses to be assigned to a connection point.
properties: properties:
mac_address_assignment: mac_address_assignment:
type: boolean 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 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 required: true
tosca.datatypes.nfv.L3AddressData: tosca.datatypes.nfv.L3AddressData:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP description: Provides information about Layer 3 level addressing scheme and parameters applicable to a CP
properties: properties:
ip_address_assignment: ip_address_assignment:
type: boolean 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 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 required: true
floating_ip_activated: floating_ip_activated:
type: boolean type: boolean
description: Specifies if the floating IP scheme is activated on the Connection Point or not description: Specifies if the floating IP scheme is activated on the Connection Point or not
required: true required: true
ip_address_type: ip_address_type:
type: string 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 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 required: false
constraints: constraints:
- valid_values: [ ipv4, ipv6 ] - valid_values: [ ipv4, ipv6 ]
number_of_ip_address: number_of_ip_address:
type: integer type: integer
description: Minimum number of IP addresses to be assigned description: Minimum number of IP addresses to be assigned
required: false required: false
constraints: constraints:
- greater_than: 0 - greater_than: 0
tosca.datatypes.nfv.AddressData: tosca.datatypes.nfv.AddressData:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: Describes information about the addressing scheme and parameters applicable to a CP description: Describes information about the addressing scheme and parameters applicable to a CP
properties: properties:
address_type: address_type:
type: string 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 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 required: true
constraints: constraints:
- valid_values: [ mac_address, ip_address ] - valid_values: [ mac_address, ip_address ]
l2_address_data: l2_address_data:
type: tosca.datatypes.nfv.L2AddressData type: tosca.datatypes.nfv.L2AddressData
description: Provides the information on the MAC addresses to be assigned to a connection point. description: Provides the information on the MAC addresses to be assigned to a connection point.
required: false required: false
l3_address_data: l3_address_data:
type: tosca.datatypes.nfv.L3AddressData type: tosca.datatypes.nfv.L3AddressData
description: Provides the information on the IP addresses to be assigned to a connection point description: Provides the information on the IP addresses to be assigned to a connection point
required: false required: false
tosca.datatypes.nfv.ConnectivityType: tosca.datatypes.nfv.ConnectivityType:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: describes additional connectivity information of a virtualLink description: describes additional connectivity information of a virtualLink
properties: properties:
layer_protocols: layer_protocols:
type: list 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. 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 required: true
entry_schema: entry_schema:
type: string type: string
constraints: constraints:
- valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
flow_pattern: flow_pattern:
type: string type: string
description: Identifies the flow pattern of the connectivity description: Identifies the flow pattern of the connectivity
required: false required: false
constraints: constraints:
- valid_values: [ line, tree, mesh ] - valid_values: [ line, tree, mesh ]
tosca.datatypes.nfv.LinkBitrateRequirements: tosca.datatypes.nfv.LinkBitrateRequirements:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: describes the requirements in terms of bitrate for a virtual link description: describes the requirements in terms of bitrate for a virtual link
properties: properties:
root: root:
type: integer # in bits per second 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). 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 required: true
constraints: constraints:
- greater_or_equal: 0 - greater_or_equal: 0
leaf: leaf:
type: integer # in bits per second 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). 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 required: false
constraints: constraints:
- greater_or_equal: 0 - greater_or_equal: 0
tosca.datatypes.nfv.CpProtocolData: tosca.datatypes.nfv.CpProtocolData:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information description: Describes and associates the protocol layer that a CP uses together with other protocol and connection point information
properties: properties:
associated_layer_protocol: associated_layer_protocol:
type: string type: string
required: true required: true
description: One of the values of the property layer_protocols of the CP description: One of the values of the property layer_protocols of the CP
constraints: constraints:
- valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
address_data: address_data:
type: list type: list
description: Provides information on the addresses to be assigned to the CP description: Provides information on the addresses to be assigned to the CP
entry_schema: entry_schema:
type: tosca.datatypes.nfv.AddressData type: tosca.datatypes.nfv.AddressData
required: false required: false
tosca.datatypes.nfv.VnfProfile: tosca.datatypes.nfv.VnfProfile:
derived_from: tosca.datatypes.Root 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. description: describes a profile for instantiating VNFs of a particular NS DF according to a specific VNFD and VNF DF.
properties: properties:
instantiation_level: instantiation_level:
type: string 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. 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 required: false
min_number_of_instances: min_number_of_instances:
type: integer type: integer
description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. description: Minimum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
required: true required: true
constraints: constraints:
- greater_or_equal: 0 - greater_or_equal: 0
max_number_of_instances: max_number_of_instances:
type: integer type: integer
description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile. description: Maximum number of instances of the VNF based on this VNFD that is permitted to exist for this VnfProfile.
required: true required: true
constraints: constraints:
- greater_or_equal: 0 - greater_or_equal: 0
tosca.datatypes.nfv.Qos: tosca.datatypes.nfv.Qos:
derived_from: tosca.datatypes.Root derived_from: tosca.datatypes.Root
description: describes QoS data for a given VL used in a VNF deployment flavour description: describes QoS data for a given VL used in a VNF deployment flavour
properties: properties:
latency: latency:
type: scalar-unit.time #Number type: scalar-unit.time #Number
description: Specifies the maximum latency description: Specifies the maximum latency
required: true required: true
constraints: constraints:
- greater_than: 0 s - greater_than: 0 s
packet_delay_variation: packet_delay_variation:
type: scalar-unit.time #Number type: scalar-unit.time #Number
description: Specifies the maximum jitter description: Specifies the maximum jitter
required: true required: true
constraints: constraints:
- greater_or_equal: 0 s - greater_or_equal: 0 s
packet_loss_ratio: packet_loss_ratio:
type: float type: float
description: Specifies the maximum packet loss ratio description: Specifies the maximum packet loss ratio
required: false required: false
constraints: constraints:
- in_range: [ 0.0, 1.0 ] - in_range: [ 0.0, 1.0 ]
capability_types: capability_types:
tosca.capabilities.nfv.VirtualLinkable: tosca.capabilities.nfv.VirtualLinkable:
derived_from: tosca.capabilities.Node derived_from: tosca.capabilities.Node
description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type description: A node type that includes the VirtualLinkable capability indicates that it can be pointed by tosca.relationships.nfv.VirtualLinksTo relationship type
relationship_types: relationship_types:
tosca.relationships.nfv.VirtualLinksTo: tosca.relationships.nfv.VirtualLinksTo:
derived_from: tosca.relationships.DependsOn derived_from: tosca.relationships.DependsOn
description: Represents an association relationship between the VduCp and VnfVirtualLink node types description: Represents an association relationship between the VduCp and VnfVirtualLink node types
valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ] valid_target_types: [ tosca.capabilities.nfv.VirtualLinkable ]
node_types: node_types:
tosca.nodes.nfv.Cp: tosca.nodes.nfv.Cp:
derived_from: tosca.nodes.Root derived_from: tosca.nodes.Root
description: Provides information regarding the purpose of the connection point description: Provides information regarding the purpose of the connection point
properties: properties:
layer_protocols: layer_protocols:
type: list type: list
description: Identifies which protocol the connection point uses for connectivity purposes description: Identifies which protocol the connection point uses for connectivity purposes
required: true required: true
entry_schema: entry_schema:
type: string type: string
constraints: constraints:
- valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ] - valid_values: [ ethernet, mpls, odu2, ipv4, ipv6, pseudo-wire ]
role: #Name in ETSI NFV IFA011 v0.7.3: cpRole role: #Name in ETSI NFV IFA011 v0.7.3: cpRole
type: string type: string
description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS description: Identifies the role of the port in the context of the traffic flow patterns in the VNF or parent NS
required: false required: false
constraints: constraints:
- valid_values: [ root, leaf ] - valid_values: [ root, leaf ]
description: description:
type: string type: string
description: Provides human-readable information on the purpose of the connection point description: Provides human-readable information on the purpose of the connection point
required: false required: false
protocol: protocol:
type: list type: list
description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor description: Provides information on the addresses to be assigned to the connection point(s) instantiated from this Connection Point Descriptor
required: false required: false
entry_schema: entry_schema:
type: tosca.datatypes.nfv.CpProtocolData type: tosca.datatypes.nfv.CpProtocolData
trunk_mode: trunk_mode:
type: boolean 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". 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 required: false

View File

@@ -1,65 +1,65 @@
heat_template_version: 2013-05-23 heat_template_version: 2013-05-23
description: 'Template for test _generate_hot_from_tosca(). description: 'Template for test _generate_hot_from_tosca().
' '
parameters: {} parameters: {}
resources: resources:
VDU1: VDU1:
type: OS::Nova::Server type: OS::Nova::Server
properties: properties:
networks: networks:
- port: - port:
get_resource: CP1 get_resource: CP1
- port: neutron-port-uuid_CP2 - port: neutron-port-uuid_CP2
- port: - port:
get_resource: CP3 get_resource: CP3
- port: - port:
get_resource: CP4 get_resource: CP4
flavor: flavor:
get_resource: VDU1_flavor get_resource: VDU1_flavor
name: VDU1 name: VDU1
image: glance-image-uuid_VDU1 image: glance-image-uuid_VDU1
VDU1_flavor: VDU1_flavor:
type: OS::Nova::Flavor type: OS::Nova::Flavor
properties: properties:
disk: 1 disk: 1
ram: 512 ram: 512
vcpus: 1 vcpus: 1
CP1: CP1:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: neutron-network-uuid_VL1 network: neutron-network-uuid_VL1
fixed_ips: fixed_ips:
- subnet: neutron-subnet-uuid_CP1 - subnet: neutron-subnet-uuid_CP1
ip_address: 1.1.1.1 ip_address: 1.1.1.1
mac_address: fa:16:3e:11:11:11 mac_address: fa:16:3e:11:11:11
CP3: CP3:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: neutron-network-uuid_VL3 network: neutron-network-uuid_VL3
CP4: CP4:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: network:
get_resource: VL4 get_resource: VL4
VL4: VL4:
type: OS::Neutron::Net type: OS::Neutron::Net
properties: properties:
qos_policy: qos_policy:
get_resource: VL4_qospolicy get_resource: VL4_qospolicy
VL4_subnet: VL4_subnet:
type: OS::Neutron::Subnet type: OS::Neutron::Subnet
properties: properties:
ip_version: 4 ip_version: 4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24
network: network:
get_resource: VL4 get_resource: VL4
VL4_qospolicy: VL4_qospolicy:
type: OS::Neutron::QoSPolicy type: OS::Neutron::QoSPolicy
VL4_bandwidth: VL4_bandwidth:
type: OS::Neutron::QoSBandwidthLimitRule type: OS::Neutron::QoSBandwidthLimitRule
properties: properties:
policy: policy:
get_resource: VL4_qospolicy get_resource: VL4_qospolicy
max_kbps: 1024.0 max_kbps: 1024.0
outputs: {} outputs: {}

View File

@@ -1,61 +1,61 @@
heat_template_version: 2013-05-23 heat_template_version: 2013-05-23
description: 'Template for test _generate_hot_from_tosca() with scaling. description: 'Template for test _generate_hot_from_tosca() with scaling.
' '
parameters: {} parameters: {}
resources: resources:
worker_instance: worker_instance:
type: OS::Heat::AutoScalingGroup type: OS::Heat::AutoScalingGroup
properties: properties:
desired_capacity: 1 desired_capacity: 1
resource: resource:
properties: properties:
vdu1_flavor_id: vdu1_flavor_id:
get_resource: VDU1_flavor get_resource: VDU1_flavor
vl3_id: neutron-network-uuid_VL3 vl3_id: neutron-network-uuid_VL3
vl4_id: vl4_id:
get_resource: VL4 get_resource: VL4
type: worker_instance.hot.yaml type: worker_instance.hot.yaml
min_size: 1 min_size: 1
max_size: 3 max_size: 3
worker_instance_scale_out: worker_instance_scale_out:
type: OS::Heat::ScalingPolicy type: OS::Heat::ScalingPolicy
properties: properties:
scaling_adjustment: 1 scaling_adjustment: 1
adjustment_type: change_in_capacity adjustment_type: change_in_capacity
auto_scaling_group_id: auto_scaling_group_id:
get_resource: worker_instance get_resource: worker_instance
worker_instance_scale_in: worker_instance_scale_in:
type: OS::Heat::ScalingPolicy type: OS::Heat::ScalingPolicy
properties: properties:
scaling_adjustment: -1 scaling_adjustment: -1
adjustment_type: change_in_capacity adjustment_type: change_in_capacity
auto_scaling_group_id: auto_scaling_group_id:
get_resource: worker_instance get_resource: worker_instance
VDU1_flavor: VDU1_flavor:
type: OS::Nova::Flavor type: OS::Nova::Flavor
properties: properties:
disk: 1 disk: 1
ram: 512 ram: 512
vcpus: 1 vcpus: 1
VL4: VL4:
type: OS::Neutron::Net type: OS::Neutron::Net
properties: properties:
qos_policy: qos_policy:
get_resource: VL4_qospolicy get_resource: VL4_qospolicy
VL4_subnet: VL4_subnet:
type: OS::Neutron::Subnet type: OS::Neutron::Subnet
properties: properties:
ip_version: 4 ip_version: 4
network: network:
get_resource: VL4 get_resource: VL4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24
VL4_qospolicy: VL4_qospolicy:
type: OS::Neutron::QoSPolicy type: OS::Neutron::QoSPolicy
VL4_bandwidth: VL4_bandwidth:
type: OS::Neutron::QoSBandwidthLimitRule type: OS::Neutron::QoSBandwidthLimitRule
properties: properties:
max_kbps: 1024.0 max_kbps: 1024.0
policy: policy:
get_resource: VL4_qospolicy get_resource: VL4_qospolicy
outputs: {} outputs: {}

View File

@@ -1,41 +1,41 @@
heat_template_version: 2013-05-23 heat_template_version: 2013-05-23
description: Scaling template description: Scaling template
parameters: parameters:
vdu1_flavor_id: vdu1_flavor_id:
type: string type: string
vl3_id: vl3_id:
type: string type: string
vl4_id: vl4_id:
type: string type: string
resources: resources:
VDU1: VDU1:
type: OS::Nova::Server type: OS::Nova::Server
properties: properties:
name: VDU1 name: VDU1
networks: networks:
- port: - port:
get_resource: CP1 get_resource: CP1
- port: neutron-port-uuid_CP2 - port: neutron-port-uuid_CP2
- port: - port:
get_resource: CP3 get_resource: CP3
- port: - port:
get_resource: CP4 get_resource: CP4
flavor: flavor:
get_param: vdu1_flavor_id get_param: vdu1_flavor_id
image: glance-image-uuid_VDU1 image: glance-image-uuid_VDU1
CP1: CP1:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: neutron-network-uuid_VL1 network: neutron-network-uuid_VL1
fixed_ips: fixed_ips:
- subnet: neutron-subnet-uuid_CP1 - subnet: neutron-subnet-uuid_CP1
CP3: CP3:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: network:
get_param: vl3_id get_param: vl3_id
CP4: CP4:
type: OS::Neutron::Port type: OS::Neutron::Port
properties: properties:
network: network:
get_param: vl4_id get_param: vl4_id

View File

@@ -1,115 +1,115 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca(). Template for test _generate_hot_from_tosca().
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP2: CP2:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 1 order: 1
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP3: CP3:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 2 order: 2
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL3 - virtual_link: VL3
CP4: CP4:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 3 order: 3
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL4 - virtual_link: VL4
VL3: VL3:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 33.33.0.0/24 cidr: 33.33.0.0/24
VL4: VL4:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24

View File

@@ -1,16 +1,16 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca() the case of tosca-parser error. Template for test _generate_hot_from_tosca() the case of tosca-parser error.
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1

View File

@@ -1,48 +1,48 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca() the case of heat-translator error. Template for test _generate_hot_from_tosca() the case of heat-translator error.
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VnfExtCp type: tosca.nodes.nfv.VnfExtCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]

View File

@@ -1,197 +1,197 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca(). Template for test _generate_hot_from_tosca().
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
ntt.nslab.VNF: ntt.nslab.VNF:
derived_from: tosca.nodes.nfv.VNF derived_from: tosca.nodes.nfv.VNF
properties: properties:
descriptor_id: descriptor_id:
type: string type: string
constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ] constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]
default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
descriptor_version: descriptor_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
provider: provider:
type: string type: string
constraints: [ valid_values: [ 'NTT NS lab' ] ] constraints: [ valid_values: [ 'NTT NS lab' ] ]
default: 'NTT NS lab' default: 'NTT NS lab'
product_name: product_name:
type: string type: string
constraints: [ valid_values: [ 'Sample VNF' ] ] constraints: [ valid_values: [ 'Sample VNF' ] ]
default: 'Sample VNF' default: 'Sample VNF'
software_version: software_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
vnfm_info: vnfm_info:
type: list type: list
entry_schema: entry_schema:
type: string type: string
constraints: [ valid_values: [ Tacker ] ] constraints: [ valid_values: [ Tacker ] ]
default: [ Tacker ] default: [ Tacker ]
flavour_id: flavour_id:
type: string type: string
constraints: [ valid_values: [ simple ] ] constraints: [ valid_values: [ simple ] ]
default: simple default: simple
flavour_description: flavour_description:
type: string type: string
default: "" default: ""
requirements: requirements:
- virtual_link_external: - virtual_link_external:
capability: tosca.capabilities.nfv.VirtualLinkable capability: tosca.capabilities.nfv.VirtualLinkable
- virtual_link_internal: - virtual_link_internal:
capability: tosca.capabilities.nfv.VirtualLinkable capability: tosca.capabilities.nfv.VirtualLinkable
interfaces: interfaces:
Vnflcm: Vnflcm:
type: tosca.interfaces.nfv.Vnflcm type: tosca.interfaces.nfv.Vnflcm
topology_template: topology_template:
inputs: inputs:
selected_flavour: selected_flavour:
type: string type: string
default: simple default: simple
description: VNF deployment flavour selected by the consumer. It is provided in the API description: VNF deployment flavour selected by the consumer. It is provided in the API
substitution_mappings: substitution_mappings:
node_type: ntt.nslab.VNF node_type: ntt.nslab.VNF
properties: properties:
flavour_id: simple flavour_id: simple
requirements: requirements:
virtual_link_external: [ CP1, virtual_link ] virtual_link_external: [ CP1, virtual_link ]
node_templates: node_templates:
VNF: VNF:
type: ntt.nslab.VNF type: ntt.nslab.VNF
properties: properties:
flavour_id: { get_input: selected_flavour } flavour_id: { get_input: selected_flavour }
descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
provider: NTT NS lab provider: NTT NS lab
product_name: Sample VNF product_name: Sample VNF
software_version: '1.0' software_version: '1.0'
descriptor_version: '1.0' descriptor_version: '1.0'
vnfm_info: vnfm_info:
- Tacker - Tacker
flavour_description: A simple flavour flavour_description: A simple flavour
interfaces: interfaces:
Vnflcm: Vnflcm:
instantiate: [] instantiate: []
instantiate_start: [] instantiate_start: []
instantiate_end: [] instantiate_end: []
terminate: [] terminate: []
terminate_start: [] terminate_start: []
terminate_end: [] terminate_end: []
modify_information: [] modify_information: []
modify_information_start: [] modify_information_start: []
modify_information_end: [] modify_information_end: []
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP2: CP2:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 1 order: 1
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP3: CP3:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 2 order: 2
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL3 - virtual_link: VL3
CP4: CP4:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 3 order: 3
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL4 - virtual_link: VL4
VL3: VL3:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 33.33.0.0/24 cidr: 33.33.0.0/24
VL4: VL4:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24

View File

@@ -1,183 +1,183 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca() with scaling. Template for test _generate_hot_from_tosca() with scaling.
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP2: CP2:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 1 order: 1
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP3: CP3:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 2 order: 2
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL3 - virtual_link: VL3
CP4: CP4:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 3 order: 3
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL4 - virtual_link: VL4
VL3: VL3:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 33.33.0.0/24 cidr: 33.33.0.0/24
VL4: VL4:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24
policies: policies:
- scaling_aspects: - scaling_aspects:
type: tosca.policies.nfv.ScalingAspects type: tosca.policies.nfv.ScalingAspects
properties: properties:
aspects: aspects:
worker_instance: worker_instance:
name: worker_instance_aspect name: worker_instance_aspect
description: worker_instance scaling aspect description: worker_instance scaling aspect
max_scale_level: 2 max_scale_level: 2
step_deltas: step_deltas:
- delta_1 - delta_1
- VDU1_initial_delta: - VDU1_initial_delta:
type: tosca.policies.nfv.VduInitialDelta type: tosca.policies.nfv.VduInitialDelta
properties: properties:
initial_delta: initial_delta:
number_of_instances: 1 number_of_instances: 1
targets: [ VDU1 ] targets: [ VDU1 ]
- VDU1_scaling_aspect_deltas: - VDU1_scaling_aspect_deltas:
type: tosca.policies.nfv.VduScalingAspectDeltas type: tosca.policies.nfv.VduScalingAspectDeltas
properties: properties:
aspect: worker_instance aspect: worker_instance
deltas: deltas:
delta_1: delta_1:
number_of_instances: 1 number_of_instances: 1
targets: [ VDU1 ] targets: [ VDU1 ]
- instantiation_levels: - instantiation_levels:
type: tosca.policies.nfv.InstantiationLevels type: tosca.policies.nfv.InstantiationLevels
properties: properties:
levels: levels:
instantiation_level_1: instantiation_level_1:
description: Smallest size description: Smallest size
scale_info: scale_info:
worker_instance: worker_instance:
scale_level: 0 scale_level: 0
instantiation_level_2: instantiation_level_2:
description: Largest size description: Largest size
scale_info: scale_info:
worker_instance: worker_instance:
scale_level: 2 scale_level: 2
default_level: instantiation_level_1 default_level: instantiation_level_1
- VDU1_instantiation_levels: - VDU1_instantiation_levels:
type: tosca.policies.nfv.VduInstantiationLevels type: tosca.policies.nfv.VduInstantiationLevels
properties: properties:
levels: levels:
instantiation_level_1: instantiation_level_1:
number_of_instances: 1 number_of_instances: 1
instantiation_level_2: instantiation_level_2:
number_of_instances: 3 number_of_instances: 3
targets: [ VDU1 ] targets: [ VDU1 ]
- VL4_instantiation_levels: - VL4_instantiation_levels:
type: tosca.policies.nfv.VirtualLinkInstantiationLevels type: tosca.policies.nfv.VirtualLinkInstantiationLevels
properties: properties:
levels: levels:
instantiation_level_1: instantiation_level_1:
bitrate_requirements: bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
instantiation_level_2: instantiation_level_2:
bitrate_requirements: bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
targets: [ VL4 ] targets: [ VL4 ]

View File

@@ -1,105 +1,105 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca() with scaling the case of invalid inst_req_info. Template for test _generate_hot_from_tosca() with scaling the case of invalid inst_req_info.
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
policies: policies:
- scaling_aspects: - scaling_aspects:
type: tosca.policies.nfv.ScalingAspects type: tosca.policies.nfv.ScalingAspects
properties: properties:
aspects: aspects:
worker_instance: worker_instance:
name: worker_instance_aspect name: worker_instance_aspect
description: worker_instance scaling aspect description: worker_instance scaling aspect
max_scale_level: 2 max_scale_level: 2
step_deltas: step_deltas:
- delta_1 - delta_1
- VDU1_initial_delta: - VDU1_initial_delta:
type: tosca.policies.nfv.VduInitialDelta type: tosca.policies.nfv.VduInitialDelta
properties: properties:
initial_delta: initial_delta:
number_of_instances: 1 number_of_instances: 1
targets: [ VDU1 ] targets: [ VDU1 ]
- VDU1_scaling_aspect_deltas: - VDU1_scaling_aspect_deltas:
type: tosca.policies.nfv.VduScalingAspectDeltas type: tosca.policies.nfv.VduScalingAspectDeltas
properties: properties:
aspect: worker_instance aspect: worker_instance
deltas: deltas:
delta_1: delta_1:
number_of_instances: 1 number_of_instances: 1
targets: [ VDU1 ] targets: [ VDU1 ]
- instantiation_levels: - instantiation_levels:
type: tosca.policies.nfv.InstantiationLevels type: tosca.policies.nfv.InstantiationLevels
properties: properties:
levels: levels:
instantiation_level_1: instantiation_level_1:
description: Smallest size description: Smallest size
scale_info: scale_info:
worker_instance: worker_instance:
scale_level: 0 scale_level: 0
instantiation_level_2: instantiation_level_2:
description: Largest size description: Largest size
scale_info: scale_info:
worker_instance: worker_instance:
scale_level: 2 scale_level: 2
default_level: instantiation_level_1 default_level: instantiation_level_1
- VDU1_instantiation_levels: - VDU1_instantiation_levels:
type: tosca.policies.nfv.VduInstantiationLevels type: tosca.policies.nfv.VduInstantiationLevels
properties: properties:
levels: levels:
instantiation_level_1: instantiation_level_1:
number_of_instances: 1 number_of_instances: 1
instantiation_level_2: instantiation_level_2:
number_of_instances: 3 number_of_instances: 3
targets: [ VDU1 ] targets: [ VDU1 ]

View File

@@ -1,197 +1,197 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca(). Template for test _generate_hot_from_tosca().
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
ntt.nslab.VNF: ntt.nslab.VNF:
derived_from: tosca.nodes.nfv.VNF derived_from: tosca.nodes.nfv.VNF
properties: properties:
descriptor_id: descriptor_id:
type: string type: string
constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ] constraints: [ valid_values: [ b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 ] ]
default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 default: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
descriptor_version: descriptor_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
provider: provider:
type: string type: string
constraints: [ valid_values: [ 'NTT NS lab' ] ] constraints: [ valid_values: [ 'NTT NS lab' ] ]
default: 'NTT NS lab' default: 'NTT NS lab'
product_name: product_name:
type: string type: string
constraints: [ valid_values: [ 'Sample VNF' ] ] constraints: [ valid_values: [ 'Sample VNF' ] ]
default: 'Sample VNF' default: 'Sample VNF'
software_version: software_version:
type: string type: string
constraints: [ valid_values: [ '1.0' ] ] constraints: [ valid_values: [ '1.0' ] ]
default: '1.0' default: '1.0'
vnfm_info: vnfm_info:
type: list type: list
entry_schema: entry_schema:
type: string type: string
constraints: [ valid_values: [ Tacker ] ] constraints: [ valid_values: [ Tacker ] ]
default: [ Tacker ] default: [ Tacker ]
flavour_id: flavour_id:
type: string type: string
constraints: [ valid_values: [ simple ] ] constraints: [ valid_values: [ simple ] ]
default: simple default: simple
flavour_description: flavour_description:
type: string type: string
default: "" default: ""
requirements: requirements:
- virtual_link_external: - virtual_link_external:
capability: tosca.capabilities.nfv.VirtualLinkable capability: tosca.capabilities.nfv.VirtualLinkable
- virtual_link_internal: - virtual_link_internal:
capability: tosca.capabilities.nfv.VirtualLinkable capability: tosca.capabilities.nfv.VirtualLinkable
interfaces: interfaces:
Vnflcm: Vnflcm:
type: tosca.interfaces.nfv.Vnflcm type: tosca.interfaces.nfv.Vnflcm
topology_template: topology_template:
inputs: inputs:
selected_flavour: selected_flavour:
type: string type: string
default: simple default: simple
description: VNF deployment flavour selected by the consumer. It is provided in the API description: VNF deployment flavour selected by the consumer. It is provided in the API
substitution_mappings: substitution_mappings:
node_type: ntt.nslab.VNF node_type: ntt.nslab.VNF
properties: properties:
flavour_id: simple flavour_id: simple
requirements: requirements:
virtual_link_external: [ CP1, virtual_link ] virtual_link_external: [ CP1, virtual_link ]
node_templates: node_templates:
VNF: VNF:
type: ntt.nslab.VNF type: ntt.nslab.VNF
properties: properties:
flavour_id: { get_input: selected_flavour } flavour_id: { get_input: selected_flavour }
descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177 descriptor_id: b1bb0ce7-ebca-4fa7-95ed-4840d70a1177
provider: NTT NS lab provider: NTT NS lab
product_name: Sample VNF product_name: Sample VNF
software_version: '1.0' software_version: '1.0'
descriptor_version: '1.0' descriptor_version: '1.0'
vnfm_info: vnfm_info:
- Tacker - Tacker
flavour_description: A simple flavour flavour_description: A simple flavour
interfaces: interfaces:
Vnflcm: Vnflcm:
instantiate: [] instantiate: []
instantiate_start: [] instantiate_start: []
instantiate_end: [] instantiate_end: []
terminate: [] terminate: []
terminate_start: [] terminate_start: []
terminate_end: [] terminate_end: []
modify_information: [] modify_information: []
modify_information_start: [] modify_information_start: []
modify_information_end: [] modify_information_end: []
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP2: CP2:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 1 order: 1
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
CP3: CP3:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 2 order: 2
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL3 - virtual_link: VL3
CP4: CP4:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 3 order: 3
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL4 - virtual_link: VL4
VL3: VL3:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 33.33.0.0/24 cidr: 33.33.0.0/24
VL4: VL4:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 44.44.0.0/24 cidr: 44.44.0.0/24

View File

@@ -1,3 +1,3 @@
{ {
cpus: [, cpus: [,
} }

View File

@@ -1,98 +1,98 @@
tosca_definitions_version: tosca_simple_yaml_1_2 tosca_definitions_version: tosca_simple_yaml_1_2
description: > description: >
Template for test _generate_hot_from_tosca(). Template for test _generate_hot_from_tosca().
imports: imports:
- etsi_nfv_sol001_common_types.yaml - etsi_nfv_sol001_common_types.yaml
- etsi_nfv_sol001_vnfd_types.yaml - etsi_nfv_sol001_vnfd_types.yaml
node_types: node_types:
topology_template: topology_template:
node_templates: node_templates:
VDU1: VDU1:
type: tosca.nodes.nfv.Vdu.Compute type: tosca.nodes.nfv.Vdu.Compute
properties: properties:
name: VDU1 name: VDU1
description: VDU1 compute node description: VDU1 compute node
vdu_profile: vdu_profile:
min_number_of_instances: 1 min_number_of_instances: 1
max_number_of_instances: 1 max_number_of_instances: 1
sw_image_data: sw_image_data:
name: Software of VDU1 name: Software of VDU1
version: '0.5.2' version: '0.5.2'
checksum: checksum:
algorithm: sha-256 algorithm: sha-256
hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464 hash: 932fcae93574e242dc3d772d5235061747dfe537668443a1f0567d893614b464
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 1 GiB min_disk: 1 GiB
size: 1 GiB size: 1 GiB
artifacts: artifacts:
sw_image: sw_image:
type: tosca.artifacts.nfv.SwImage type: tosca.artifacts.nfv.SwImage
file: Files/images/cirros-0.5.2-x86_64-disk.img file: Files/images/cirros-0.5.2-x86_64-disk.img
capabilities: capabilities:
virtual_compute: virtual_compute:
properties: properties:
virtual_memory: virtual_memory:
virtual_mem_size: 512 MiB virtual_mem_size: 512 MiB
virtual_cpu: virtual_cpu:
num_virtual_cpu: 1 num_virtual_cpu: 1
virtual_local_storage: virtual_local_storage:
- size_of_storage: 1 GiB - size_of_storage: 1 GiB
requirements: requirements:
- virtual_storage: VB1 - virtual_storage: VB1
VB1: VB1:
type: tosca.nodes.nfv.Vdu.VirtualBlockStorage type: tosca.nodes.nfv.Vdu.VirtualBlockStorage
properties: properties:
virtual_block_storage_data: virtual_block_storage_data:
size_of_storage: 100 GB size_of_storage: 100 GB
rdma_enabled: true rdma_enabled: true
sw_image_data: sw_image_data:
name: cirros name: cirros
version: '0.0.0' version: '0.0.0'
checksum: checksum:
algorithm: sha512 algorithm: sha512
hash: f0fd1b50420dce4ca382ccfbb528eef3a38bbeff00b54e95e3876b9bafe7ed2d6f919ca35d9046d437c6d2d8698b1174a335fbd66035bb3edc525d2cdb187232 hash: f0fd1b50420dce4ca382ccfbb528eef3a38bbeff00b54e95e3876b9bafe7ed2d6f919ca35d9046d437c6d2d8698b1174a335fbd66035bb3edc525d2cdb187232
container_format: bare container_format: bare
disk_format: qcow2 disk_format: qcow2
min_disk: 0 B min_disk: 0 B
min_ram: 0 B min_ram: 0 B
size: 13267968 B size: 13267968 B
CP1: CP1:
type: tosca.nodes.nfv.VduCp type: tosca.nodes.nfv.VduCp
properties: properties:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
order: 0 order: 0
requirements: requirements:
- virtual_binding: VDU1 - virtual_binding: VDU1
- virtual_link: VL3 - virtual_link: VL3
VL3: VL3:
type: tosca.nodes.nfv.VnfVirtualLink type: tosca.nodes.nfv.VnfVirtualLink
properties: properties:
connectivity_type: connectivity_type:
layer_protocols: [ ipv4 ] layer_protocols: [ ipv4 ]
description: Internal Virtual link in the VNF description: Internal Virtual link in the VNF
vl_profile: vl_profile:
max_bitrate_requirements: max_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
min_bitrate_requirements: min_bitrate_requirements:
root: 1048576 root: 1048576
leaf: 1048576 leaf: 1048576
virtual_link_protocol_data: virtual_link_protocol_data:
- associated_layer_protocol: ipv4 - associated_layer_protocol: ipv4
l3_protocol_data: l3_protocol_data:
ip_version: ipv4 ip_version: ipv4
cidr: 33.33.0.0/24 cidr: 33.33.0.0/24
policies: policies:
- policy_affinity_local_VDU1: - policy_affinity_local_VDU1:
type: tosca.policies.nfv.AntiAffinityRule type: tosca.policies.nfv.AntiAffinityRule
targets: [ VDU1 ] targets: [ VDU1 ]
properties: properties:
scope: zone scope: zone

View File

@@ -1,27 +1,27 @@
tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0 tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0
description: OpenWRT with services description: OpenWRT with services
metadata: metadata:
template_name: OpenWRT template_name: OpenWRT
topology_template: topology_template:
node_templates: node_templates:
CP1: CP1:
type: tosca.nodes.nfv.CP.Tacker type: tosca.nodes.nfv.CP.Tacker
properties: properties:
management: true management: true
anti_spoofing_protection: false anti_spoofing_protection: false
requirements: requirements:
- virtualLink: - virtualLink:
node: VL1 node: VL1
- virtualBinding: - virtualBinding:
node: VDU1 node: VDU1
VL1: VL1:
type: tosca.nodes.nfv.VL type: tosca.nodes.nfv.VL
properties: properties:
network_name: existing_network_1 network_name: existing_network_1
vendor: Tacker vendor: Tacker

View File

@@ -1,152 +1,152 @@
# All Rights Reserved. # All Rights Reserved.
# #
# #
# Licensed under the Apache License, Version 2.0 (the "License"); you may # 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 # not use this file except in compliance with the License. You may obtain
# a copy of the License at # a copy of the License at
# #
# http://www.apache.org/licenses/LICENSE-2.0 # http://www.apache.org/licenses/LICENSE-2.0
# #
# Unless required by applicable law or agreed to in writing, software # Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations # License for the specific language governing permissions and limitations
# under the License. # under the License.
import os import os
import time import time
import eventlet import eventlet
from oslo_log import log as logging from oslo_log import log as logging
import paramiko import paramiko
from tacker.common import cmd_executer from tacker.common import cmd_executer
from tacker.extensions import vnfm from tacker.extensions import vnfm
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
HELM_CMD_TIMEOUT = 30 HELM_CMD_TIMEOUT = 30
HELM_INSTALL_TIMEOUT = 120 HELM_INSTALL_TIMEOUT = 120
TRANSPORT_RETRIES = 2 TRANSPORT_RETRIES = 2
TRANSPORT_WAIT = 15 TRANSPORT_WAIT = 15
class HelmClient(object): class HelmClient(object):
"""Helm client for hosting containerized vnfs""" """Helm client for hosting containerized vnfs"""
def __init__(self, ip, username, password): def __init__(self, ip, username, password):
self.host_ip = ip self.host_ip = ip
self.username = username self.username = username
self.password = password self.password = password
self.commander = cmd_executer.RemoteCommandExecutor( self.commander = cmd_executer.RemoteCommandExecutor(
user=username, user=username,
password=password, password=password,
host=ip, host=ip,
timeout=HELM_CMD_TIMEOUT) timeout=HELM_CMD_TIMEOUT)
def _execute_command(self, ssh_command, timeout=HELM_CMD_TIMEOUT, retry=0): def _execute_command(self, ssh_command, timeout=HELM_CMD_TIMEOUT, retry=0):
eventlet.monkey_patch() eventlet.monkey_patch()
while retry >= 0: while retry >= 0:
try: try:
with eventlet.Timeout(timeout, True): with eventlet.Timeout(timeout, True):
result = self.commander.execute_command( result = self.commander.execute_command(
ssh_command, input_data=None) ssh_command, input_data=None)
break break
except eventlet.timeout.Timeout: except eventlet.timeout.Timeout:
error_message = ('It is time out, When execute command: {}.' error_message = ('It is time out, When execute command: {}.'
.format(ssh_command)) .format(ssh_command))
LOG.debug(error_message) LOG.debug(error_message)
retry -= 1 retry -= 1
if retry < 0: if retry < 0:
self.close_session() self.close_session()
LOG.error(error_message) LOG.error(error_message)
raise vnfm.HelmClientOtherError( raise vnfm.HelmClientOtherError(
error_message=error_message) error_message=error_message)
time.sleep(30) time.sleep(30)
if result.get_return_code(): if result.get_return_code():
self.close_session() self.close_session()
err = result.get_stderr() err = result.get_stderr()
LOG.error(err) LOG.error(err)
raise vnfm.HelmClientRemoteCommandError(message=err) raise vnfm.HelmClientRemoteCommandError(message=err)
return result.get_stdout() return result.get_stdout()
def add_repository(self, repo_name, repo_url): def add_repository(self, repo_name, repo_url):
# execute helm repo add command # execute helm repo add command
ssh_command = "helm repo add {} {}".format(repo_name, repo_url) ssh_command = "helm repo add {} {}".format(repo_name, repo_url)
self._execute_command(ssh_command) self._execute_command(ssh_command)
def remove_repository(self, repo_name): def remove_repository(self, repo_name):
# execute helm repo remove command # execute helm repo remove command
ssh_command = "helm repo remove {}".format(repo_name) ssh_command = "helm repo remove {}".format(repo_name)
self._execute_command(ssh_command) self._execute_command(ssh_command)
def _transport_helmchart(self, source_path, target_path): def _transport_helmchart(self, source_path, target_path):
# transfer helm chart file # transfer helm chart file
retry = TRANSPORT_RETRIES retry = TRANSPORT_RETRIES
while retry > 0: while retry > 0:
try: try:
connect = paramiko.Transport(self.host_ip, 22) connect = paramiko.Transport(self.host_ip, 22)
connect.connect(username=self.username, password=self.password) connect.connect(username=self.username, password=self.password)
sftp = paramiko.SFTPClient.from_transport(connect) sftp = paramiko.SFTPClient.from_transport(connect)
# put helm chart file # put helm chart file
sftp.put(source_path, target_path) sftp.put(source_path, target_path)
connect.close() connect.close()
return return
except paramiko.SSHException as e: except paramiko.SSHException as e:
LOG.debug(e) LOG.debug(e)
retry -= 1 retry -= 1
if retry == 0: if retry == 0:
self.close_session() self.close_session()
LOG.error(e) LOG.error(e)
raise paramiko.SSHException() raise paramiko.SSHException()
time.sleep(TRANSPORT_WAIT) time.sleep(TRANSPORT_WAIT)
def put_helmchart(self, source_path, target_dir): def put_helmchart(self, source_path, target_dir):
# create helm chart directory and change permission # create helm chart directory and change permission
ssh_command = ("if [ ! -d {target_dir} ]; then " ssh_command = ("if [ ! -d {target_dir} ]; then "
"`sudo mkdir -p {target_dir}; " "`sudo mkdir -p {target_dir}; "
"sudo chown -R {username} {target_dir};`; fi").format( "sudo chown -R {username} {target_dir};`; fi").format(
target_dir=target_dir, username=self.username) target_dir=target_dir, username=self.username)
self._execute_command(ssh_command) self._execute_command(ssh_command)
# get helm chart name and target path # get helm chart name and target path
chartfile_name = source_path[source_path.rfind(os.sep) + 1:] chartfile_name = source_path[source_path.rfind(os.sep) + 1:]
target_path = os.path.join(target_dir, chartfile_name) target_path = os.path.join(target_dir, chartfile_name)
# transport helm chart file # transport helm chart file
self._transport_helmchart(source_path, target_path) self._transport_helmchart(source_path, target_path)
# decompress helm chart file # decompress helm chart file
ssh_command = "tar -zxf {} -C {}".format(target_path, target_dir) ssh_command = "tar -zxf {} -C {}".format(target_path, target_dir)
self._execute_command(ssh_command) self._execute_command(ssh_command)
def delete_helmchart(self, target_path): def delete_helmchart(self, target_path):
# delete helm chart folder # delete helm chart folder
ssh_command = "sudo rm -rf {}".format(target_path) ssh_command = "sudo rm -rf {}".format(target_path)
self._execute_command(ssh_command) self._execute_command(ssh_command)
def install(self, release_name, chart_name, namespace, parameters): def install(self, release_name, chart_name, namespace, parameters):
# execute helm install command # execute helm install command
ssh_command = "helm install {} {}".format(release_name, chart_name) ssh_command = "helm install {} {}".format(release_name, chart_name)
if namespace: if namespace:
ssh_command += " --namespace {}".format(namespace) ssh_command += " --namespace {}".format(namespace)
if parameters: if parameters:
for param in parameters: for param in parameters:
ssh_command += " --set {}".format(param) ssh_command += " --set {}".format(param)
self._execute_command(ssh_command, timeout=HELM_INSTALL_TIMEOUT) self._execute_command(ssh_command, timeout=HELM_INSTALL_TIMEOUT)
def uninstall(self, release_name, namespace): def uninstall(self, release_name, namespace):
# execute helm uninstall command # execute helm uninstall command
ssh_command = "helm uninstall {}".format(release_name) ssh_command = "helm uninstall {}".format(release_name)
if namespace: if namespace:
ssh_command += " --namespace {}".format(namespace) ssh_command += " --namespace {}".format(namespace)
self._execute_command(ssh_command, timeout=HELM_INSTALL_TIMEOUT) self._execute_command(ssh_command, timeout=HELM_INSTALL_TIMEOUT)
def get_manifest(self, release_name, namespace): def get_manifest(self, release_name, namespace):
# execute helm get manifest command # execute helm get manifest command
ssh_command = "helm get manifest {}".format(release_name) ssh_command = "helm get manifest {}".format(release_name)
if namespace: if namespace:
ssh_command += " --namespace {}".format(namespace) ssh_command += " --namespace {}".format(namespace)
result = self._execute_command(ssh_command) result = self._execute_command(ssh_command)
# convert manifest to text format # convert manifest to text format
mf_content = ''.join(result) mf_content = ''.join(result)
return mf_content return mf_content
def close_session(self): def close_session(self):
self.commander.close_session() self.commander.close_session()