Replace line break from CRLF to LF
This patch replaces all lines of CRLF to LF. Change-Id: I0b23a0da2cb9fda88da9ef59540e5f55570cdc57
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"userDefinedData":{
|
"userDefinedData":{
|
||||||
"abc":"xyz"
|
"abc":"xyz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"operationalState": "DISABLED",
|
"operationalState": "DISABLED",
|
||||||
"userDefinedData": {
|
"userDefinedData": {
|
||||||
"key1": "value1",
|
"key1": "value1",
|
||||||
"key2": "value2"
|
"key2": "value2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"operationalState":"DISABLED",
|
"operationalState":"DISABLED",
|
||||||
"userDefinedData":{
|
"userDefinedData":{
|
||||||
"abc":"xyz"
|
"abc":"xyz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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))
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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: {}
|
||||||
|
|||||||
@@ -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: {}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 ]
|
||||||
|
|||||||
@@ -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 ]
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
cpus: [,
|
cpus: [,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user