summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2021-07-07 20:08:41 +0100
committerLiam Fallon <liam.fallon@est.tech>2021-07-09 11:08:13 +0000
commitaa725fcc52bd2eb009dc407480e113158e65ddbd (patch)
tree85e8ea40b5632384f0c3d6a573a17f49eb7654fc
parent8c802e778db60e269e2e66c7a6609bf905f6ad79 (diff)
Update CL TOSCA definitions, Add Guidance UC
This patch makes some minor updates to the TOSCA definitions, mainly the introduction of common parameters. It also introduces the first draft of a "Gentle Guidance" control loop that can be used for testing, verification, documenting and explaining the TOSCA control loop framework. Issue-ID: POLICY-3341 Change-Id: Ie2d5379bd362f088d7c500402f83745cc7e6aca3 Signed-off-by: liamfallon <liam.fallon@est.tech>
-rw-r--r--common/src/main/resources/tosca/CdsControlLoopElementType.yaml1
-rw-r--r--common/src/main/resources/tosca/ControlLoopTOSCAServiceTemplateTypes.yaml52
-rw-r--r--common/src/main/resources/tosca/DcaeControlLoopElementType.yaml6
-rw-r--r--common/src/main/resources/tosca/HttpControlLoopElementType.yaml17
-rw-r--r--common/src/main/resources/tosca/KubernetesControlLoopElementType.yaml20
-rw-r--r--common/src/main/resources/tosca/PolicyControlLoopElementType.yaml9
-rw-r--r--common/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml18
-rw-r--r--common/src/test/resources/gentleguidance/GentleGuidanceDefaultPropeties.yaml115
-rw-r--r--common/src/test/resources/gentleguidance/GentleGuidanceNoPropeties.yaml52
9 files changed, 258 insertions, 32 deletions
diff --git a/common/src/main/resources/tosca/CdsControlLoopElementType.yaml b/common/src/main/resources/tosca/CdsControlLoopElementType.yaml
index 296324b68..c2fc66a6a 100644
--- a/common/src/main/resources/tosca/CdsControlLoopElementType.yaml
+++ b/common/src/main/resources/tosca/CdsControlLoopElementType.yaml
@@ -24,3 +24,4 @@ node_types:
cdsBlueprint:
type: string
required: true
+ description: The CDS blueprint that this control loop element is managing.
diff --git a/common/src/main/resources/tosca/ControlLoopTOSCAServiceTemplateTypes.yaml b/common/src/main/resources/tosca/ControlLoopTOSCAServiceTemplateTypes.yaml
index 615fc34dd..e45a06257 100644
--- a/common/src/main/resources/tosca/ControlLoopTOSCAServiceTemplateTypes.yaml
+++ b/common/src/main/resources/tosca/ControlLoopTOSCAServiceTemplateTypes.yaml
@@ -34,20 +34,62 @@ node_types:
provider:
type: string
required: false
+ metadata:
+ common: true
description: Specifies the organization that provides the control loop element
- participant_type:
+ participantType:
type: onap.datatypes.ToscaConceptIdentifier
required: true
+ metadata:
+ common: true
description: The identity of the participant type that hosts this type of Control Loop Element
- start_phase:
+ startPhase:
type: integer
required: false
constraints:
- greater-or-equal: 0
+ metadata:
+ common: true
description: A value indicating the start phase in which this control loop element will be started, the
first start phase is zero. Control Loop Elements are started in their start_phase order and stopped
in reverse start phase order. Control Loop Elements with the same start phase are started and
stopped simultaneously
+ uninitializedToPassiveTimeout:
+ type: integer
+ required: false
+ constraints:
+ - greater-or-equal: 0
+ default: 60
+ metadata:
+ common: true
+ description: The maximum time in seconds to wait for a state chage from uninitialized to passive
+ passiveToRunningTimeout:
+ type: integer
+ required: false
+ constraints:
+ - greater-or-equal: 0
+ default: 60
+ metadata:
+ common: true
+ description: The maximum time in seconds to wait for a state chage from passive to running
+ runningToPassiveTimeout:
+ type: integer
+ required: false
+ constraints:
+ - greater-or-equal: 0
+ default: 60
+ metadata:
+ common: true
+ description: The maximum time in seconds to wait for a state chage from running to passive
+ passiveToUninitializedTimeout:
+ type: integer
+ required: false
+ constraints:
+ - greater-or-equal: 0
+ default: 60
+ metadata:
+ common: true
+ description: The maximum time in seconds to wait for a state chage from passive to uninitialized
org.onap.policy.clamp.controlloop.ControlLoop:
version: 1.0.1
derived_from: tosca.nodetypes.Root
@@ -55,11 +97,15 @@ node_types:
provider:
type: string
required: false
+ metadata:
+ common: true
description: Specifies the organization that provides the control loop element
elements:
type: list
required: true
- description: Specifies a list of control loop element definitions that make up this control loop definition
+ metadata:
+ common: true
entry_schema:
type: onap.datatypes.ToscaConceptIdentifier
+ description: Specifies a list of control loop element definitions that make up this control loop definition
diff --git a/common/src/main/resources/tosca/DcaeControlLoopElementType.yaml b/common/src/main/resources/tosca/DcaeControlLoopElementType.yaml
index 654a09470..acf91bb92 100644
--- a/common/src/main/resources/tosca/DcaeControlLoopElementType.yaml
+++ b/common/src/main/resources/tosca/DcaeControlLoopElementType.yaml
@@ -26,14 +26,14 @@ data_types:
name: consulUrl
type: string
typeVersion: 0.0.0
- description: Consul url for this entry
required: true
+ description: Consul url for this entry
consulBody:
name: consulBody
type: string
typeVersion: 0.0.0
- description: Body of Consul entry
required: true
+ description: Body of Consul entry
node_types:
org.onap.policy.clamp.controlloop.DCAEMicroserviceControlLoopElement:
version: 1.0.1
@@ -42,8 +42,10 @@ node_types:
dcaeBlueprint:
type: string
required: true
+ description: The DCAE blueprint for the DCAE microservice this control loop element is managing.
consulInfo:
type: list
required: false
entry_schema:
type: org.onap.datatypes.policy.clamp.controlloop.DCAEControlLoopElementConsulInfo
+ description: The information to be sent to Consul for the microservice this control loop element is managing.
diff --git a/common/src/main/resources/tosca/HttpControlLoopElementType.yaml b/common/src/main/resources/tosca/HttpControlLoopElementType.yaml
index 4fdb60546..fd37040c6 100644
--- a/common/src/main/resources/tosca/HttpControlLoopElementType.yaml
+++ b/common/src/main/resources/tosca/HttpControlLoopElementType.yaml
@@ -24,28 +24,28 @@ data_types:
restRequestId:
type: onap.datatypes.ToscaConceptIdentifier
typeVersion: 1.0.0
- description: The name and version of a REST request to be sent to a REST endpoint
required: true
+ description: The name and version of a REST request to be sent to a REST endpoint
httpMethod:
type: string
- description: The REST method to use
required: true
constraints:
- valid_values: [POST, PUT, GET, DELETE]
+ description: The REST method to use
path:
type: string
- description: The path of the REST request relative to the base URL
required: true
+ description: The path of the REST request relative to the base URL
body:
type: string
- description: The body of the REST request for PUT and POST requests
required: false
+ description: The body of the REST request for PUT and POST requests
expectedResponse:
type: integer
- description: THe expected HTTP status code for the REST request
required: true
constraints:
- in_range: [100, 599]
+ description: THe expected HTTP status code for the REST request
org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity:
version: 1.0.0
derived_from: tosca.datatypes.Root
@@ -53,14 +53,14 @@ data_types:
configurationEntityId:
type: onap.datatypes.ToscaConceptIdentifier
typeVersion: 1.0.0
- description: The name and version of a Configuration Entity to be handled by the HTTP Control Loop Element
required: true
+ description: The name and version of a Configuration Entity to be handled by the HTTP Control Loop Element
restSequence:
type: list
- description: A sequence of REST commands to send to the REST endpoint
entry_schema:
type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.RestRequest
typeVersion: 1.0.0
+ description: A sequence of REST commands to send to the REST endpoint
node_types:
org.onap.policy.clamp.controlloop.HttpControlLoopElement:
version: 1.0.1
@@ -69,14 +69,17 @@ node_types:
baseUrl:
type: string
required: true
+ description: The base URL to be prepended to each path, identifies the host for the REST endpoints.
httpHeaders:
type: map
required: false
entry_schema:
type: string
+ description: HTTP headers to send on REST requests
configurationEntities:
type: map
required: true
entry_schema:
type: org.onap.datatypes.policy.clamp.controlloop.httpControlLoopElement.ConfigurationEntity
typeVersion: 1.0.0
+ description: The connfiguration entities the Control Loop Element is managing and their associated REST requests
diff --git a/common/src/main/resources/tosca/KubernetesControlLoopElementType.yaml b/common/src/main/resources/tosca/KubernetesControlLoopElementType.yaml
index 7468581b5..86a8ce197 100644
--- a/common/src/main/resources/tosca/KubernetesControlLoopElementType.yaml
+++ b/common/src/main/resources/tosca/KubernetesControlLoopElementType.yaml
@@ -24,26 +24,26 @@ data_types:
chartId:
type: onap.datatypes.ToscaConceptIdentifier
typeVersion: 1.0.0
- description: The name and version of the chart
required: true
+ description: The name and version of the chart
releaseName:
type: string
- description: The name of the release of the chart
required: true
+ description: The name of the release of the chart
repository:
type: string
- description: The name of the repository where the chart is stored
required: false
+ description: The name of the repository where the chart is stored
namespace:
type: string
- description: The name space of the chart
required: true
+ description: The name space of the chart
overrideParams:
type: map
- description: A map of override settings for parameters in the chart
required: false
entry_schema:
type: string
+ description: A map of override settings for parameters in the chart
node_types:
org.onap.policy.clamp.controlloop.KubernetesControlLoopElement:
version: 1.0.1
@@ -52,25 +52,25 @@ node_types:
chart:
type: org.onap.datatypes.policy.clamp.controlloop.kubernetesControlLoopElement.Chart
typeVersion: 1.0.0
- description: The helm chart for the microservice
required: true
+ description: The helm chart for the microservice
configs:
type: list
- description: The configurations for the microservice
required: false
entry_schema:
type: string
+ description: The configurations for the microservice
requirements:
type: string
- description: The requirements for the microservice
required: false
+ description: The requirements for the microservice
templates:
type: list
- description: The templates for the microservice
required: false
entry_schema:
type: string
+ description: The templates for the microservice
values:
type: string
+ required: false
description: The values for the microservice
- required: true
diff --git a/common/src/main/resources/tosca/PolicyControlLoopElementType.yaml b/common/src/main/resources/tosca/PolicyControlLoopElementType.yaml
index f2d45f1bb..e584c2fce 100644
--- a/common/src/main/resources/tosca/PolicyControlLoopElementType.yaml
+++ b/common/src/main/resources/tosca/PolicyControlLoopElementType.yaml
@@ -21,6 +21,13 @@ node_types:
version: 1.0.1
derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
properties:
- policyId:
+ policyType:
type: onap.datatypes.ToscaConceptIdentifier
required: true
+ description: The policy type of the policy that this control loop element is managing
+ policyId:
+ type: onap.datatypes.ToscaConceptIdentifier
+ required: false
+ description: The policy that this control loop element is managing, if the policy ID is specified, the policy
+ is either already in the Policy Framework database or is specified in the "policies" part of the
+ TOSCA service template of the Control Loop definition
diff --git a/common/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml b/common/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml
index f9f97420a..5c6883bee 100644
--- a/common/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml
+++ b/common/src/test/resources/examples/controlloop/PMSubscriptionHandling.yaml
@@ -309,24 +309,24 @@ node_types:
properties:
provider:
type: string
- requred: false
+ required: false
org.onap.policy.clamp.controlloop.ControlLoopElement:
version: 1.0.1
derived_from: tosca.nodetypes.Root
properties:
provider:
type: string
- requred: false
+ required: false
participant_id:
type: onap.datatypes.ToscaConceptIdentifier
- requred: true
+ required: true
org.onap.policy.clamp.controlloop.ControlLoop:
version: 1.0.1
derived_from: tosca.nodetypes.Root
properties:
provider:
type: string
- requred: false
+ required: false
elements:
type: list
required: true
@@ -338,10 +338,10 @@ node_types:
properties:
dcae_blueprint_id:
type: onap.datatypes.ToscaConceptIdentifier
- requred: false
+ required: false
dcae_blueprint:
type: onap.dcae.cloudify_blueprint
- requred: false
+ required: false
consul_info:
type: list
required: false
@@ -353,17 +353,17 @@ node_types:
properties:
policy_type_id:
type: onap.datatypes.ToscaConceptIdentifier
- requred: true
+ required: true
policy_id:
type: onap.datatypes.ToscaConceptIdentifier
- requred: false
+ required: false
org.onap.policy.clamp.controlloop.CDSControlLoopElement:
version: 1.0.1
derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
properties:
cds_blueprint_id:
type: onap.datatypes.ToscaConceptIdentifier
- requred: true
+ required: true
topology_template:
inputs:
pmsh_monitoring_policy:
diff --git a/common/src/test/resources/gentleguidance/GentleGuidanceDefaultPropeties.yaml b/common/src/test/resources/gentleguidance/GentleGuidanceDefaultPropeties.yaml
new file mode 100644
index 000000000..d634a1fa5
--- /dev/null
+++ b/common/src/test/resources/gentleguidance/GentleGuidanceDefaultPropeties.yaml
@@ -0,0 +1,115 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+tosca_definitions_version: tosca_simple_yaml_1_3
+topology_template:
+ node_templates:
+ org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.KubernetesControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Kubernetes Microservice
+ properties:
+ provider: Ericsson
+ participantType: org.onap.policy.controlloop.participant.Kubernetes:1.0.0
+ startPhase: 2
+ uninitializedToPassiveTimeout: 180
+ chart:
+ chartId: GentleGuidance:1.0.0
+ releaseName: Istanbul
+ namespace: org.onap.policy.controlloop.gentleguidance
+ org.onap.domain.gentleguidance.RestControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Microservice REST configuration
+ properties:
+ provider: Ericsson
+ participantType: org.onap.policy.controlloop.participant.Http:1.0.0
+ startPhase: 1
+ baseUrl: https://10.10.10.10:12345/gentleguidancemicroservice
+ httpHeaders:
+ "Content-Type": "application/json"
+ "Accept": "application/json"
+ configurationEntities:
+ org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig:1.0.0:
+ configurationEntityId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig:1.0.0
+ restSequence:
+ - restRequestId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig.CreateGentle:1.0.0
+ httpMethd: POST
+ path: "gentle/create"
+ body:
+ gentleLevel: veryGentle
+ gentleType: softAndFurry
+ expectedResponse: 200
+ - restRequestId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig.CreateGuidance:1.0.0
+ httpMethd: POST
+ path: "guidance/create"
+ body:
+ guidanceLevel: high
+ guidanceType: subtle
+ expectedResponse: 200
+ org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig:1.0.0:
+ configurationEntityId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig:1.0.0
+ restSequence:
+ - restRequestId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig.CreateGentle:1.0.0
+ httpMethd: PUT
+ path: "gentle/update]"
+ body:
+ gentleLevel: robust
+ gentleType: hardAndGritty
+ expectedResponse: 200
+ - restRequestId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig.CreateGuidance:1.0.0
+ httpMethd: PUT
+ path: "guidance/update"
+ body:
+ guidanceLevel: low
+ guidanceType: terse
+ expectedResponse: 200
+ org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Operational Policy
+ properties:
+ provider: Ericsson
+ participantType: org.onap.policy.controlloop.participant.Policy:1.0.0
+ startPhase: 0
+ policyType: onap.policies.controlloop.operational.common.Apex:1.0.0
+ policyId: org.onap.domain.gentleguidance.policy.GentleGuidanceAssertive:1.0.0
+ org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.CDSControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance CDS blueprint
+ properties:
+ provider: Ericsson
+ participantType: org.onap.policy.controlloop.participant.Cds:1.0.0
+ startPhase: 0
+ cdsBlueprint: "Placeholder for the CDS blueprint"
+ org.onap.domain.gentleguidance.ControlLoopDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.ControlLoop
+ type_version: 1.0.1
+ description: Control loop definition for the Gentle Guidance domain
+ properties:
+ provider: Ericsson
+ elements:
+ - org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.RestControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:1.0.0
diff --git a/common/src/test/resources/gentleguidance/GentleGuidanceNoPropeties.yaml b/common/src/test/resources/gentleguidance/GentleGuidanceNoPropeties.yaml
new file mode 100644
index 000000000..d0222617d
--- /dev/null
+++ b/common/src/test/resources/gentleguidance/GentleGuidanceNoPropeties.yaml
@@ -0,0 +1,52 @@
+# ============LICENSE_START=======================================================
+# Copyright (C) 2021 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+tosca_definitions_version: tosca_simple_yaml_1_3
+topology_template:
+ node_templates:
+ org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.KubernetesControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Kubernetes Microservice
+ org.onap.domain.gentleguidance.RestControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Microservice REST configuration
+ org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance Operational Policy
+ org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.CDSControlLoopElement
+ type_version: 1.0.1
+ description: Control loop element for the Gentle Guidance CDS blueprint
+ org.onap.domain.gentleguidance.ControlLoopDefinition:
+ version: 1.0.0
+ type: org.onap.policy.clamp.controlloop.ControlLoop
+ type_version: 1.0.1
+ description: Control loop definition for the Gentle Guidance domain
+ properties:
+ provider: Ericsson
+ elements:
+ - org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.RestControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:1.0.0
+ - org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:1.0.0