Add policy metadataSet handling as node templates
[policy/models.git] / models-examples / src / main / resources / nodetemplates / nodetemplates.metadatasets.input.tosca.yaml
diff --git a/models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.yaml b/models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.yaml
new file mode 100644 (file)
index 0000000..f59d25b
--- /dev/null
@@ -0,0 +1,1336 @@
+---
+# Representation of list of metadataSet entities as node templates in tosca that can be persisted to the database independently.
+
+tosca_definitions_version: tosca_simple_yaml_1_1_0
+node_types:
+  org.onap.nodetypes.policy.MetadataSet:
+    derived_from: tosca.nodetypes.Root
+    version: 1.0.0
+topology_template:
+  node_templates:
+    apexMetadata_grpc:
+      version: 1.2.1
+      type: org.onap.nodetypes.policy.MetadataSet
+      type_version: 1.0.0
+      description: Metadata set for GRPC
+      metadata:
+        policyModel:
+          key:
+            name: GrpcPolicyModel
+            version: 1.0.1
+        threshold: 3.14
+        state: active
+    apexMetadata_adaptive:
+      version: 2.3.1
+      type: org.onap.nodetypes.policy.MetadataSet
+      type_version: 1.0.0
+      description: Metadata set for an Adaptive Policy
+      metadata:
+        policyModel:
+          key:
+            name: AdaptivePolicyModel
+            version: 1.2.1
+        radius: 1.23
+        height: 2.13
+        length: 45
+    apexMetadata_decisionMaker:
+      version: 1.0.0
+      type: org.onap.nodetypes.policy.MetadataSet
+      type_version: 1.0.0
+      description: Metadata set for an Adaptive Policy
+      metadata:
+        policyModel:
+          key:
+            name: DecisionMakerPolicyModel
+            version: 1.0.0
+          keyInformation:
+            key:
+              name: DecisionMakerPolicyModel_KeyInfo
+              version: 0.0.1
+            keyInfoMap:
+              entry:
+                - key:
+                    name: AnswerAlbum
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerAlbum
+                      version: 0.0.1
+                    UUID: 4ea21a2c-5dc7-337f-ba13-f427a4ae79a1
+                    description: Generated description for concept referred to by key
+                      "AnswerAlbum:0.0.1"
+                - key:
+                    name: AnswerEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerEvent
+                      version: 0.0.1
+                    UUID: ce2233b8-bb89-3c5e-a18f-1d13089d2bb6
+                    description: Generated description for concept referred to by key
+                      "AnswerEvent:0.0.1"
+                - key:
+                    name: AnswerInitPolicy
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerInitPolicy
+                      version: 0.0.1
+                    UUID: c8254064-b171-3ccb-85c0-29b5719ee8fc
+                    description: Generated description for concept referred to by key
+                      "AnswerInitPolicy:0.0.1"
+                - key:
+                    name: AnswerInitTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerInitTask
+                      version: 0.0.1
+                    UUID: 28fb33d2-a4e0-3046-8302-7baf9a2056d1
+                    description: Generated description for concept referred to by key
+                      "AnswerInitTask:0.0.1"
+                - key:
+                    name: DecisionEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionEvent
+                      version: 0.0.1
+                    UUID: 487acc75-b5a1-3285-90cf-98ecd6fb3500
+                    description: Generated description for concept referred to by key
+                      "DecisionEvent:0.0.1"
+                - key:
+                    name: DecisionMakerPolicy
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicy
+                      version: 0.0.1
+                    UUID: 9e8dda9a-6f85-311d-842b-00b5b5578edd
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicy:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel
+                      version: 0.0.1
+                    UUID: d7789464-e4d1-382e-8481-fba53fa7b9a9
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_Albums
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_Albums
+                      version: 0.0.1
+                    UUID: e5dfbadd-5229-3ad9-996c-eda030ef5dc1
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_Albums:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_Events
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_Events
+                      version: 0.0.1
+                    UUID: b4248202-ff8e-3d45-8b3d-0ed0fd2eaed4
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_Events:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_KeyInfo
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_KeyInfo
+                      version: 0.0.1
+                    UUID: 693b1b29-c4c6-34ba-98e1-bc1a7576f0f8
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_KeyInfo:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_Policies
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_Policies
+                      version: 0.0.1
+                    UUID: 2dee1e42-9caa-32b1-9298-784dcdcb9cae
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_Policies:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_Schemas
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_Schemas
+                      version: 0.0.1
+                    UUID: c256f102-2681-3f35-bbbd-1f4948587e15
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_Schemas:0.0.1"
+                - key:
+                    name: DecisionMakerPolicyModel_Tasks
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionMakerPolicyModel_Tasks
+                      version: 0.0.1
+                    UUID: 660cbdba-687d-3a05-ba26-69daf93a8158
+                    description: Generated description for concept referred to by key
+                      "DecisionMakerPolicyModel_Tasks:0.0.1"
+                - key:
+                    name: DitheringAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DitheringAnswerTask
+                      version: 0.0.1
+                    UUID: da31cee8-2e84-39d2-9337-9ee3bf347c98
+                    description: Generated description for concept referred to by key
+                      "DitheringAnswerTask:0.0.1"
+                - key:
+                    name: LastAnswerAlbum
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: LastAnswerAlbum
+                      version: 0.0.1
+                    UUID: 21399145-3fbe-39a5-b863-8a59a8add4a8
+                    description: Generated description for concept referred to by key
+                      "LastAnswerAlbum:0.0.1"
+                - key:
+                    name: MakeDecisionEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: MakeDecisionEvent
+                      version: 0.0.1
+                    UUID: 02ec632a-aeae-31fe-8f6d-656e1875749f
+                    description: Generated description for concept referred to by key
+                      "MakeDecisionEvent:0.0.1"
+                - key:
+                    name: OptimisticAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: OptimisticAnswerTask
+                      version: 0.0.1
+                    UUID: 818e6b9e-0109-31f5-a95c-17f6fb016027
+                    description: Generated description for concept referred to by key
+                      "OptimisticAnswerTask:0.0.1"
+                - key:
+                    name: PessimisticAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: PessimisticAnswerTask
+                      version: 0.0.1
+                    UUID: 8f4a707e-0d8b-3e09-b921-332f6f81f302
+                    description: Generated description for concept referred to by key
+                      "PessimisticAnswerTask:0.0.1"
+                - key:
+                    name: RandomAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: RandomAnswerTask
+                      version: 0.0.1
+                    UUID: bfb0af88-b454-3b08-911f-7ff2475350bf
+                    description: Generated description for concept referred to by key
+                      "RandomAnswerTask:0.0.1"
+                - key:
+                    name: RoundRobinAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: RoundRobinAnswerTask
+                      version: 0.0.1
+                    UUID: eac6fb59-8aca-3011-b7ba-69875f1db4b6
+                    description: Generated description for concept referred to by key
+                      "RoundRobinAnswerTask:0.0.1"
+                - key:
+                    name: SimpleIntegerType
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: SimpleIntegerType
+                      version: 0.0.1
+                    UUID: ab00a5b8-7edd-340f-8140-4d14f571edfb
+                    description: Generated description for concept referred to by key
+                      "SimpleIntegerType:0.0.1"
+                - key:
+                    name: SimpleStringType
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: SimpleStringType
+                      version: 0.0.1
+                    UUID: 8a4957cf-9493-3a76-8c22-a208e23259af
+                    description: Generated description for concept referred to by key
+                      "SimpleStringType:0.0.1"
+          policies:
+            key:
+              name: DecisionMakerPolicyModel_Policies
+              version: 0.0.1
+            policyMap:
+              entry:
+                - key:
+                    name: AnswerInitPolicy
+                    version: 0.0.1
+                  value:
+                    policyKey:
+                      name: AnswerInitPolicy
+                      version: 0.0.1
+                    template: freestyle
+                    state:
+                      entry:
+                        - key: AnswerInitState
+                          value:
+                            stateKey:
+                              parentKeyName: AnswerInitPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: AnswerInitState
+                            trigger:
+                              name: AnswerEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                                - key: AnswerInitOutput
+                                  value:
+                                    key:
+                                      parentKeyName: AnswerInitPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: AnswerInitState
+                                      localName: AnswerInitOutput
+                                    outgoingEvent:
+                                      name: AnswerEvent
+                                      version: 0.0.1
+                                    outgoingEventReference:
+                                      - name: AnswerEvent
+                                        version: 0.0.1
+                                    nextState:
+                                      parentKeyName: 'NULL'
+                                      parentKeyVersion: 0.0.0
+                                      parentLocalName: 'NULL'
+                                      localName: 'NULL'
+                            contextAlbumReference: []
+                            taskSelectionLogic:
+                              key: 'NULL'
+                              logicFlavour: UNDEFINED
+                              logic: ''
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: AnswerInitTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                                - key:
+                                    name: AnswerInitTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: AnswerInitPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: AnswerInitState
+                                      localName: AnswerInitPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: AnswerInitPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: AnswerInitState
+                                      localName: AnswerInitOutput
+                    firstState: AnswerInitState
+                - key:
+                    name: DecisionMakerPolicy
+                    version: 0.0.1
+                  value:
+                    policyKey:
+                      name: DecisionMakerPolicy
+                      version: 0.0.1
+                    template: freestyle
+                    state:
+                      entry:
+                        - key: MakeDecisionState
+                          value:
+                            stateKey:
+                              parentKeyName: DecisionMakerPolicy
+                              parentKeyVersion: 0.0.1
+                              parentLocalName: 'NULL'
+                              localName: MakeDecisionState
+                            trigger:
+                              name: MakeDecisionEvent
+                              version: 0.0.1
+                            stateOutputs:
+                              entry:
+                                - key: DecisionFinalOutput
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                                    outgoingEvent:
+                                      name: DecisionEvent
+                                      version: 0.0.1
+                                    outgoingEventReference:
+                                      - name: DecisionEvent
+                                        version: 0.0.1
+                                    nextState:
+                                      parentKeyName: 'NULL'
+                                      parentKeyVersion: 0.0.0
+                                      parentLocalName: 'NULL'
+                                      localName: 'NULL'
+                            contextAlbumReference: []
+                            taskSelectionLogic:
+                              key: TaskSelectionLogic
+                              logicFlavour: JAVASCRIPT
+                              logic: |-
+                                /*
+                                 * ============LICENSE_START=======================================================
+                                 *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                                 *  Modifications Copyright (C) 2020 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=========================================================
+                                 */
+
+                                executor.logger.info(executor.subject.id);
+                                executor.logger.info(executor.inFields);
+
+                                if (executor.inFields.get("mode").equals("random")) {
+                                    executor.subject.getTaskKey("RandomAnswerTask").copyTo(executor.selectedTask);
+                                }
+                                else if (executor.inFields.get("mode").equals("pessimistic")) {
+                                    executor.subject.getTaskKey("PessimisticAnswerTask").copyTo(executor.selectedTask);
+                                }
+                                else if (executor.inFields.get("mode").equals("optimistic")) {
+                                    executor.subject.getTaskKey("OptimisticAnswerTask").copyTo(executor.selectedTask);
+                                }
+                                else if (executor.inFields.get("mode").equals("dithering")) {
+                                    executor.subject.getTaskKey("DitheringAnswerTask").copyTo(executor.selectedTask);
+                                }
+                                else if (executor.inFields.get("mode").equals("roundrobin")) {
+                                    executor.subject.getTaskKey("RoundRobinAnswerTask").copyTo(executor.selectedTask);
+                                }
+
+                                executor.logger.info("Answer Selected Task:" + executor.selectedTask);
+
+                                true;
+                            stateFinalizerLogicMap:
+                              entry: []
+                            defaultTask:
+                              name: RandomAnswerTask
+                              version: 0.0.1
+                            taskReferences:
+                              entry:
+                                - key:
+                                    name: DitheringAnswerTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionMakerPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                                - key:
+                                    name: OptimisticAnswerTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionMakerPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                                - key:
+                                    name: PessimisticAnswerTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionMakerPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                                - key:
+                                    name: RandomAnswerTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionMakerPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                                - key:
+                                    name: RoundRobinAnswerTask
+                                    version: 0.0.1
+                                  value:
+                                    key:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionMakerPolicy
+                                    outputType: DIRECT
+                                    output:
+                                      parentKeyName: DecisionMakerPolicy
+                                      parentKeyVersion: 0.0.1
+                                      parentLocalName: MakeDecisionState
+                                      localName: DecisionFinalOutput
+                    firstState: MakeDecisionState
+          tasks:
+            key:
+              name: DecisionMakerPolicyModel_Tasks
+              version: 0.0.1
+            taskMap:
+              entry:
+                - key:
+                    name: AnswerInitTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerInitTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: AnswerEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: a0
+                            value:
+                              key: a0
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a1
+                            value:
+                              key: a1
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a2
+                            value:
+                              key: a2
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a3
+                            value:
+                              key: a3
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a4
+                            value:
+                              key: a4
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a5
+                            value:
+                              key: a5
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                          - key: a6
+                            value:
+                              key: a6
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: AnswerEvent
+                          value:
+                            key:
+                              name: AnswerEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: a0
+                                  value:
+                                    key: a0
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a1
+                                  value:
+                                    key: a1
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a2
+                                  value:
+                                    key: a2
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a3
+                                  value:
+                                    key: a3
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a4
+                                  value:
+                                    key: a4
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a5
+                                  value:
+                                    key: a5
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                                - key: a6
+                                  value:
+                                    key: a6
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                      - name: LastAnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var answerAlbum = executor.getContextAlbum("AnswerAlbum");
+
+                        answerAlbum.put("a0", executor.inFields.get("a0"));
+                        answerAlbum.put("a1", executor.inFields.get("a1"));
+                        answerAlbum.put("a2", executor.inFields.get("a2"));
+                        answerAlbum.put("a3", executor.inFields.get("a3"));
+                        answerAlbum.put("a4", executor.inFields.get("a4"));
+                        answerAlbum.put("a5", executor.inFields.get("a5"));
+                        answerAlbum.put("a6", executor.inFields.get("a6"));
+
+                        var lastAnswerAlbum = executor.getContextAlbum("LastAnswerAlbum");
+                        lastAnswerAlbum.put("lastAnswer", answerAlbum.size() - 1);
+
+                        executor.outFields.put("a0", answerAlbum.get("a0"));
+                        executor.outFields.put("a1", answerAlbum.get("a1"));
+                        executor.outFields.put("a2", answerAlbum.get("a2"));
+                        executor.outFields.put("a3", answerAlbum.get("a3"));
+                        executor.outFields.put("a4", answerAlbum.get("a4"));
+                        executor.outFields.put("a5", answerAlbum.get("a5"));
+                        executor.outFields.put("a6", answerAlbum.get("a6"));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+                - key:
+                    name: DitheringAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DitheringAnswerTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: MakeDecisionEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: mode
+                            value:
+                              key: mode
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: DecisionEvent
+                          value:
+                            key:
+                              name: DecisionEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: decision
+                                  value:
+                                    key: decision
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var size = executor.getContextAlbum("AnswerAlbum").size();
+
+                        var selection = 2 + Math.floor(Math.random() * 3);
+
+                        var selectionA = "a" + selection;
+
+                        executor.logger.info(size);
+                        executor.logger.info(selectionA);
+
+                        executor.outFields.put("decision", executor.getContextAlbum("AnswerAlbum").get(selectionA));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+                - key:
+                    name: OptimisticAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: OptimisticAnswerTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: MakeDecisionEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: mode
+                            value:
+                              key: mode
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: DecisionEvent
+                          value:
+                            key:
+                              name: DecisionEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: decision
+                                  value:
+                                    key: decision
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var size = executor.getContextAlbum("AnswerAlbum").size();
+
+                        var selection = size - Math.floor(Math.random() * size / 2) - 1;
+
+                        var selectionA = "a" + selection;
+
+                        executor.logger.info(size);
+                        executor.logger.info(selectionA);
+
+                        executor.outFields.put("decision", executor.getContextAlbum("AnswerAlbum").get(selectionA));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+                - key:
+                    name: PessimisticAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: PessimisticAnswerTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: MakeDecisionEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: mode
+                            value:
+                              key: mode
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: DecisionEvent
+                          value:
+                            key:
+                              name: DecisionEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: decision
+                                  value:
+                                    key: decision
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var size = executor.getContextAlbum("AnswerAlbum").size();
+
+                        var selection = Math.floor(Math.random() * size / 2);
+
+                        var selectionA = "a" + selection;
+
+                        executor.logger.info(size);
+                        executor.logger.info(selectionA);
+
+                        executor.outFields.put("decision", executor.getContextAlbum("AnswerAlbum").get(selectionA));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+                - key:
+                    name: RandomAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: RandomAnswerTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: MakeDecisionEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: mode
+                            value:
+                              key: mode
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: DecisionEvent
+                          value:
+                            key:
+                              name: DecisionEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: decision
+                                  value:
+                                    key: decision
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var size = executor.getContextAlbum("AnswerAlbum").size();
+
+                        var selection = Math.floor(Math.random() * size);
+
+                        var selectionA = "a" + selection;
+
+                        executor.logger.info(size);
+                        executor.logger.info(selectionA);
+
+                        executor.outFields.put("decision", executor.getContextAlbum("AnswerAlbum").get(selectionA));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+                - key:
+                    name: RoundRobinAnswerTask
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: RoundRobinAnswerTask
+                      version: 0.0.1
+                    inputEvent:
+                      key:
+                        name: MakeDecisionEvent
+                        version: 0.0.1
+                      nameSpace: org.onap.policy.apex.domains.decisionmaker
+                      source: DCAE
+                      target: apex
+                      parameter:
+                        entry:
+                          - key: mode
+                            value:
+                              key: mode
+                              fieldSchemaKey:
+                                name: SimpleStringType
+                                version: 0.0.1
+                              optional: false
+                      toscaPolicyState: ''
+                    outputEvents:
+                      entry:
+                        - key: DecisionEvent
+                          value:
+                            key:
+                              name: DecisionEvent
+                              version: 0.0.1
+                            nameSpace: org.onap.policy.apex.domains.decisionmaker
+                            source: DCAE
+                            target: apex
+                            parameter:
+                              entry:
+                                - key: decision
+                                  value:
+                                    key: decision
+                                    fieldSchemaKey:
+                                      name: SimpleStringType
+                                      version: 0.0.1
+                                    optional: false
+                            toscaPolicyState: ''
+                    taskParameters:
+                      entry: []
+                    contextAlbumReference:
+                      - name: AnswerAlbum
+                        version: 0.0.1
+                      - name: LastAnswerAlbum
+                        version: 0.0.1
+                    taskLogic:
+                      key: TaskLogic
+                      logicFlavour: JAVASCRIPT
+                      logic: |-
+                        /*
+                         * ============LICENSE_START=======================================================
+                         *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
+                         *  Modifications Copyright (C) 2020 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=========================================================
+                         */
+
+                        executor.logger.info(executor.subject.id);
+                        executor.logger.info(executor.inFields);
+
+                        var size = executor.getContextAlbum("AnswerAlbum").size();
+                        var lastAnswer = executor.getContextAlbum("LastAnswerAlbum").get("lastAnswer");
+
+                        executor.logger.info(size);
+                        executor.logger.info(lastAnswer);
+
+                        var answer = ++lastAnswer;
+                        if (answer >= size) {
+                            answer = 0;
+                        }
+
+                        executor.getContextAlbum("LastAnswerAlbum").put("lastAnswer", answer)
+
+                        var selectionA = "a" + answer;
+
+                        executor.logger.info(selectionA);
+
+                        executor.outFields.put("decision", executor.getContextAlbum("AnswerAlbum").get(selectionA));
+
+                        executor.logger.info(executor.outFields);
+
+                        true;
+          events:
+            key:
+              name: DecisionMakerPolicyModel_Events
+              version: 0.0.1
+            eventMap:
+              entry:
+                - key:
+                    name: AnswerEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerEvent
+                      version: 0.0.1
+                    nameSpace: org.onap.policy.apex.domains.decisionmaker
+                    source: DCAE
+                    target: apex
+                    parameter:
+                      entry:
+                        - key: a0
+                          value:
+                            key: a0
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a1
+                          value:
+                            key: a1
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a2
+                          value:
+                            key: a2
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a3
+                          value:
+                            key: a3
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a4
+                          value:
+                            key: a4
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a5
+                          value:
+                            key: a5
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                        - key: a6
+                          value:
+                            key: a6
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                    toscaPolicyState: ''
+                - key:
+                    name: DecisionEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: DecisionEvent
+                      version: 0.0.1
+                    nameSpace: org.onap.policy.apex.domains.decisionmaker
+                    source: DCAE
+                    target: apex
+                    parameter:
+                      entry:
+                        - key: decision
+                          value:
+                            key: decision
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                    toscaPolicyState: ''
+                - key:
+                    name: MakeDecisionEvent
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: MakeDecisionEvent
+                      version: 0.0.1
+                    nameSpace: org.onap.policy.apex.domains.decisionmaker
+                    source: DCAE
+                    target: apex
+                    parameter:
+                      entry:
+                        - key: mode
+                          value:
+                            key: mode
+                            fieldSchemaKey:
+                              name: SimpleStringType
+                              version: 0.0.1
+                            optional: false
+                    toscaPolicyState: ''
+          albums:
+            key:
+              name: DecisionMakerPolicyModel_Albums
+              version: 0.0.1
+            albums:
+              entry:
+                - key:
+                    name: AnswerAlbum
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: AnswerAlbum
+                      version: 0.0.1
+                    scope: policy
+                    isWritable: true
+                    itemSchema:
+                      name: SimpleStringType
+                      version: 0.0.1
+                - key:
+                    name: LastAnswerAlbum
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: LastAnswerAlbum
+                      version: 0.0.1
+                    scope: policy
+                    isWritable: true
+                    itemSchema:
+                      name: SimpleIntegerType
+                      version: 0.0.1
+          schemas:
+            key:
+              name: DecisionMakerPolicyModel_Schemas
+              version: 0.0.1
+            schemas:
+              entry:
+                - key:
+                    name: SimpleIntegerType
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: SimpleIntegerType
+                      version: 0.0.1
+                    schemaFlavour: Java
+                    schemaDefinition: java.lang.Integer
+                - key:
+                    name: SimpleStringType
+                    version: 0.0.1
+                  value:
+                    key:
+                      name: SimpleStringType
+                      version: 0.0.1
+                    schemaFlavour: Java
+                    schemaDefinition: java.lang.String