From 45b653fc5a8d641452247eca5c80cf580609e9bf Mon Sep 17 00:00:00 2001 From: rameshiyer27 Date: Mon, 7 Feb 2022 17:07:38 +0000 Subject: Add policy metadataSet handling as node templates Each metadataSet is represented as a 'node_template' in Tosca mapped to a specific node type. Support added for db operations of node templates as independent entities. Detailed documentation available here : https://wiki.onap.org/display/DW/Enable+Handling+of+Policy+Type+Metadata Issue-ID: POLICY-3832 Signed-off-by: zrrmmua Change-Id: I6c189142b1778ba858aae27cd92d4f136d950208 --- .../nodetemplates.metadatasets.input.tosca.yaml | 1336 ++++++++++++++++++++ 1 file changed, 1336 insertions(+) create mode 100644 models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.yaml (limited to '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 index 000000000..f59d25b54 --- /dev/null +++ b/models-examples/src/main/resources/nodetemplates/nodetemplates.metadatasets.input.tosca.yaml @@ -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 -- cgit 1.2.3-korg