diff options
Diffstat (limited to 'examples/examples-onap-vcpe/src/main/resources/logic/standalone')
14 files changed, 823 insertions, 0 deletions
diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckServiceIdTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckServiceIdTask.js new file mode 100644 index 000000000..88bf72671 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckServiceIdTask.js @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START======================================================= + * 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 vnfId = executor.inFields.get("vnfID").toString(); +var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfId); +var serviceId = vcpeClosedLoopStatus.get("AAI").get("genericVnfServiceId"); +var blackFlag = executor.getContextAlbum("ServiceIdWhiteBlackListAlbum").get(serviceId.toString()); + +executor.logger.info("vnfId=" + vnfId + ", serviceId=" + serviceId + ", blackFlag=" + blackFlag); + +if (blackFlag != null && blackFlag === true) { + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + vcpeClosedLoopStatus.put("notification", "BLACKLIST"); + var message = vcpeClosedLoopStatus.get("message"); + + if (message != null) { + vcpeClosedLoopStatus.put("message", message + ":Service ID blacklisted"); + } + else { + vcpeClosedLoopStatus.put("message", "Service ID blacklisted"); + } +} + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVNFIdTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVNFIdTask.js new file mode 100644 index 000000000..d4e3f30dc --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVNFIdTask.js @@ -0,0 +1,45 @@ +/* + * ============LICENSE_START======================================================= + * 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 vnfId = executor.inFields.get("vnfID").toString(); +var blackFlag = executor.getContextAlbum("VnfIdWhiteBlackListAlbum").get(vnfId); + +executor.logger.info("vnfId=" + vnfId + ", blackFlag=" + blackFlag); + +if (blackFlag != null && blackFlag === true) { + var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfId); + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + vcpeClosedLoopStatus.put("notification", "BLACKLIST"); + var message = vcpeClosedLoopStatus.get("message"); + + if (message != null) { + vcpeClosedLoopStatus.put("message", message + ":VNF ID blacklisted"); + } + else { + vcpeClosedLoopStatus.put("message", "VNF ID blacklisted"); + } +} + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVServerIdTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVServerIdTask.js new file mode 100644 index 000000000..785d93f25 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/CheckVServerIdTask.js @@ -0,0 +1,46 @@ +/* + * ============LICENSE_START======================================================= + * 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 vnfId = executor.inFields.get("vnfID").toString(); +var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfId); +var vServerId = vcpeClosedLoopStatus.get("AAI").get("vserverName"); +var blackFlag = executor.getContextAlbum("VServerIdWhiteBlackListAlbum").get(vServerId.toString()); + +executor.logger.info("vnfId=" + vnfId + ", vServerId=" + vServerId + ", blackFlag=" + blackFlag); + +if (blackFlag != null && blackFlag === true) { + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + vcpeClosedLoopStatus.put("notification", "BLACKLIST"); + var message = vcpeClosedLoopStatus.get("message"); + + if (message != null) { + vcpeClosedLoopStatus.put("message", message + ":VServer ID blacklisted"); + } + else { + vcpeClosedLoopStatus.put("message", "VServer ID blacklisted"); + } +} + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ConfigureBlackWhiteListTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ConfigureBlackWhiteListTask.js new file mode 100644 index 000000000..2d41e5f90 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ConfigureBlackWhiteListTask.js @@ -0,0 +1,49 @@ +/* + * ============LICENSE_START======================================================= + * 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); + +// Pass through to the log state + +executor.logger.info(executor.outFields); + +var targetType = executor.inFields.get("targetType"); +var target = executor.inFields.get("target"); +var black = executor.inFields.get("black"); + +var returnValue = executor.isTrue; + +if (targetType === "VNF") { + executor.getContextAlbum("VnfIdWhiteBlackListAlbum").put(target, black); + executor.logger.info("added VNF ID \"" + target + "\" with black flag \"" + black + "\" to VNF ID list"); +} +else if (targetType === "Service") { + executor.getContextAlbum("ServiceIdWhiteBlackListAlbum").put(target, black); + executor.logger.info("added Service ID \"" + target + "\" with black flag \"" + black + "\" to Service ID list"); +} +else if (targetType === "VServer") { + executor.getContextAlbum("VServerIdWhiteBlackListAlbum").put(target, black); + executor.logger.info("added VServer ID \"" + target + "\" with black flag \"" + black + "\" to VServer ID list"); +} +else { + executor.logger.warn("unknown target type \"" + targetType + "\" specified"); + returnValue = executor.isFalse; +} diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControlLoopLogTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControlLoopLogTask.js new file mode 100644 index 000000000..ca2166c75 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControlLoopLogTask.js @@ -0,0 +1,75 @@ +/* + * ============LICENSE_START======================================================= + * 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 vnfID = executor.inFields.get("vnfID"); +if (vnfID == null) { + vnfID = executor.inFields.get("vnfName"); +} +executor.logger.info("vnfID=" + vnfID); + +var controlLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfID.toString()); + +executor.logger.info("Logging context information for VNF \"" + vnfID + "\""); + +var clNotification = executor.subject.getOutFieldSchemaHelper("VirtualControlLoopNotification").createNewInstance(); + +clNotification.put("requestID", executor.inFields.get("requestID").toString()); +clNotification.put("closedLoopControlName", controlLoopStatus.get("closedLoopControlName")); +clNotification.put("closedLoopAlarmStart", controlLoopStatus.get("closedLoopAlarmStart")); +clNotification.put("closedLoopAlarmEnd", controlLoopStatus.get("closedLoopAlarmEnd")); +clNotification.put("closedLoopEventClient", controlLoopStatus.get("closedLoopEventClient")); +clNotification.put("version", controlLoopStatus.get("version")); +clNotification.put("targetType", controlLoopStatus.get("target_type")); +clNotification.put("target", controlLoopStatus.get("target")); +clNotification.put("from", controlLoopStatus.get("from")); +clNotification.put("policyScope", controlLoopStatus.get("policyScope")); +clNotification.put("policyName", controlLoopStatus.get("policyName")); +clNotification.put("policyVersion", controlLoopStatus.get("policyVersion")); +clNotification.put("notification", controlLoopStatus.get("notification")); +clNotification.put("message", controlLoopStatus.get("message")); +clNotification.put("notificationTime", controlLoopStatus.get("notificationTime")); +clNotification.put("opsClTimer", 0); + +var aaiInfo = controlLoopStatus.get("AAI"); + +var aaiInfoOut = new java.util.HashMap(); + +aaiInfoOut.put("generic-vnf.resource-version", aaiInfo.get("genericVnfResourceVersion")); +aaiInfoOut.put("generic-vnf.vnf-name", aaiInfo.get("genericVnfVnfName")); +aaiInfoOut.put("generic-vnf.prov-status", aaiInfo.get("genericVnfProvStatus")); +aaiInfoOut.put("generic-vnf.is-closed-loop-disabled", aaiInfo.get("genericVnfIsClosedLoopDisabled")); +aaiInfoOut.put("generic-vnf.orchestration-status", aaiInfo.get("genericVnfOrchestrationStatus")); +aaiInfoOut.put("generic-vnf.vnf-type", aaiInfo.get("genericVnfVnfType")); +aaiInfoOut.put("generic-vnf.in-maint", aaiInfo.get("genericVnfInMaint")); +aaiInfoOut.put("generic-vnf.service-id", aaiInfo.get("genericVnfServiceId")); +if (vnfID != null) { + aaiInfoOut.put("generic-vnf.vnf-id", aaiInfo.get("genericVnfVnfId")); +} + +clNotification.put("AAI", aaiInfoOut); + +executor.outFields.put("VirtualControlLoopNotification", clNotification); + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerRequestTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerRequestTask.js new file mode 100644 index 000000000..b6d4cae38 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerRequestTask.js @@ -0,0 +1,71 @@ +/* + * ============LICENSE_START======================================================= + * 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 controllerRequest = executor.subject.getOutFieldSchemaHelper("ControllerRequest").createNewInstance(); + +var controllerRequestBody = executor.subject.getOutFieldSchemaHelper("ControllerRequest").createNewSubInstance( + "Controller_Body_Type"); + +var controllerRequestBodyInput = executor.subject.getOutFieldSchemaHelper("ControllerRequest").createNewSubInstance( + "Controller_Body_Type_Input"); + +var controllerRequestBodyInputCommonHeader = executor.subject.getOutFieldSchemaHelper("ControllerRequest") + .createNewSubInstance("Controller_Body_Type_Common_Header"); + +var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get( + executor.inFields.get("vnfID").toString()); + +controllerRequest.put("version", "2.0.0"); +controllerRequest.put("rpc_DasH_name", "restart"); +controllerRequest.put("correlation_DasH_id", executor.inFields.get("requestID").toString()); +controllerRequest.put("type", "request"); + +controllerRequestBodyInput.put("action", "Restart"); +controllerRequestBodyInput.put("action_DasH_identifiers", new java.util.HashMap()); +controllerRequestBodyInput.get("action_DasH_identifiers").put("vnf-id", executor.inFields.get("vnfID").toString()); + +controllerRequestBodyInputCommonHeader.put("timestamp", java.lang.System.currentTimeMillis()); +controllerRequestBodyInputCommonHeader.put("api_DasH_ver", "2.00"); +controllerRequestBodyInputCommonHeader.put("originator_DasH_id", executor.inFields.get("requestID").toString()); +controllerRequestBodyInputCommonHeader.put("request_DasH_id", executor.inFields.get("requestID").toString()); +controllerRequestBodyInputCommonHeader.put("sub_DasH_request_DasH_id", "1"); +controllerRequestBodyInputCommonHeader.put("flags", new java.util.HashMap()); +controllerRequestBodyInputCommonHeader.get("flags").put("ttl", "10000"); +controllerRequestBodyInputCommonHeader.get("flags").put("force", "TRUE"); +controllerRequestBodyInputCommonHeader.get("flags").put("mode", "EXCLUSIVE"); + +controllerRequestBodyInput.put("common_DasH_header", controllerRequestBodyInputCommonHeader); +controllerRequestBody.put("input", controllerRequestBodyInput); +controllerRequest.put("body", controllerRequestBody); + +executor.getContextAlbum("RequestIDVNFIDAlbum").put(executor.inFields.get("requestID").toString(), + executor.inFields.get("vnfID")); + +vcpeClosedLoopStatus.put("notification", "OPERATION"); +vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + +executor.outFields.put("ControllerRequest", controllerRequest); + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerResponseTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerResponseTask.js new file mode 100644 index 000000000..5a8703780 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ControllerResponseTask.js @@ -0,0 +1,90 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * APPC LCM Response code: 100 ACCEPTED + * 200 ERROR UNEXPECTED ERROR means failure + * 312 REJECTED DUPLICATE REQUEST + * 400 SUCCESS + * + * Note: Sometimes the corelationId has a -1 at the tail, need to get rid of it when present. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +executor.logger.info(executor.subject.id); +executor.logger.info(executor.inFields); + +var controllerResponse = executor.inFields.get("ControllerResponse"); + +var requestIDString = new java.lang.String(controllerResponse.get("correlation_DasH_id")); +executor.logger.info("requestIDString =\"" + requestIDString + "\""); +var vnfID = executor.getContextAlbum("RequestIDVNFIDAlbum").get(requestIDString); +executor.logger.info("vnfID = " + vnfID); + +var returnValue = executor.isTrue; + +if (vnfID != null) { + var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfID.toString()); + var requestId = java.util.UUID.fromString(vcpeClosedLoopStatus.get("requestID")); + + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + + var returnedCode = controllerResponse.get("body").get("output").get("status").get("code"); + var responseStatus = null; + + if (returnedCode == 100) { + responseStatus = "ACCEPTED"; + } else if (returnedCode == 200) { + responseStatus = "ERROR"; + } else if (returnedCode >= 300 && returnedCode <= 316) { + responseStatus = "REJECT"; + } else if (returnedCode == 400) { + responseStatus = "SUCCESS"; + } else if (returnedCode == 450 || (returnedCode >= 401 && returnedCode <= 406)) { + responseStatus = "FAILURE"; + } else if (returnedCode == 500) { + responseStatus = "PARTIAL_SUCCESS"; + } else if (returnedCode >= 501 && returnedCode <= 599) { + responseStatus = "PARTIAL_FAILURE"; + } else { + responseStatus = "SYSTEM_ERROR"; + } + + executor.logger.info("Got from APPC code: " + responseStatus); + + if (responseStatus === "SUCCESS") { + vcpeClosedLoopStatus.put("notification", "OPERATION_SUCCESS"); + vcpeClosedLoopStatus.put("message", "vCPE restarted"); + executor.getContextAlbum("RequestIDVNFIDAlbum").remove(requestIDString); + } else if (responseStatus === "ACCEPTED" || responseStatus === "REJECT") { + executor.logger.info("Got ACCEPTED 100 or REJECT 312, keep the context, wait for next response. Code is: " + + responseStatus); + } else { + executor.getContextAlbum("RequestIDVNFIDAlbum").remove(requestIDString); + vcpeClosedLoopStatus.put("notification", "OPERATION_FAILURE"); + vcpeClosedLoopStatus.put("message", "vCPE restart failed, code is " + responseStatus + ", message is " + + controllerResponse.get("body").get("output").get("status").get("message")); + } + + executor.outFields.put("requestID", requestId); + executor.outFields.put("vnfID", vnfID); +} else { + executor.message = "VNF ID not found in context album for request ID " + requestIDString; + returnValue = executor.isFalse; +} + +executor.logger.info(executor.outFields); diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoControllerRequestActionTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoControllerRequestActionTask.js new file mode 100644 index 000000000..c24e76523 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoControllerRequestActionTask.js @@ -0,0 +1,27 @@ +/* + * ============LICENSE_START======================================================= + * 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); + +// Pass through to the log state + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoLogActionTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoLogActionTask.js new file mode 100644 index 000000000..003942e22 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/DoLogActionTask.js @@ -0,0 +1,28 @@ +/* + * ============LICENSE_START======================================================= + * 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); + +// Pass through to the log state + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ExecuteActionsPolicyActionStateTSL.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ExecuteActionsPolicyActionStateTSL.js new file mode 100644 index 000000000..a8bb40c80 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ExecuteActionsPolicyActionStateTSL.js @@ -0,0 +1,33 @@ +/* + * ============LICENSE_START======================================================= + * 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 returnValue = executor.isTrue; +var status = null; + +if (executor.inFields.get("action") === "ControllerRequestAction") { + executor.subject.getTaskKey("DoControllerRequestActionTask").copyTo(executor.selectedTask); +} else { + executor.subject.getTaskKey("DoLogActionTask").copyTo(executor.selectedTask); +} + +executor.logger.info("ReceiveEventPolicyOnsetOrAbatedStateTSL State Selected Task:" + executor.selectedTask); diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/GetEntityStateTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/GetEntityStateTask.js new file mode 100644 index 000000000..1567608bb --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/GetEntityStateTask.js @@ -0,0 +1,157 @@ +/* + * ============LICENSE_START======================================================= + * 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. + * + * Note: The incoming closedloop message can be ONSET with both VNF-name and VNF-ID + * or ABATED with only VNF-name. So need to handle differently. For ABATED case, + * since we still keep the RequireIDVNFID context album, we can get it from there. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +executor.logger.info(executor.subject.id); +executor.logger.info(executor.inFields); + +var utf8Type = Java.type("org.apache.avro.util.Utf8"); +var uuidType = Java.type("java.util.UUID"); + +var clEvent = executor.inFields.get("VirtualControlLoopEvent"); + +executor.logger.info(clEvent.toString()); +executor.logger.info(clEvent.get("closedLoopControlName")); + +var requestID = uuidType.fromString(clEvent.get("requestID")); +executor.logger.info("requestID = " + requestID); +var vnfID = null; +var vcpeClosedLoopStatus = null; + +if (clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_id")) != null) { + vnfID = uuidType.fromString(clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_id"))); + executor.logger.info("vnfID = " + vnfID); + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfID); + + if (vcpeClosedLoopStatus == null) { + executor.logger.info("Creating context information for new vCPE VNF \"" + vnfID.toString() + "\""); + + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").getSchemaHelper().createNewInstance(); + + vcpeClosedLoopStatus.put("closedLoopControlName", clEvent.get("closedLoopControlName")); + vcpeClosedLoopStatus.put("closedLoopAlarmStart", clEvent.get("closedLoopAlarmStart")); + vcpeClosedLoopStatus.put("closedLoopEventClient", clEvent.get("closedLoopEventClient")); + vcpeClosedLoopStatus.put("closedLoopEventStatus", clEvent.get("closedLoopEventStatus")); + vcpeClosedLoopStatus.put("version", clEvent.get("version")); + vcpeClosedLoopStatus.put("requestID", clEvent.get("requestID")); + vcpeClosedLoopStatus.put("target_type", clEvent.get("target_type")); + vcpeClosedLoopStatus.put("target", clEvent.get("target")); + vcpeClosedLoopStatus.put("from", clEvent.get("from")); + vcpeClosedLoopStatus.put("policyScope", "vCPE"); + vcpeClosedLoopStatus.put("policyName", "ONAPvCPEPolicyModel"); + vcpeClosedLoopStatus.put("policyVersion", "0.0.1"); + vcpeClosedLoopStatus.put("notification", "ACTIVE"); + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + vcpeClosedLoopStatus.put("message", ""); + + var aaiInfo = executor.getContextAlbum("ControlLoopStatusAlbum").getSchemaHelper().createNewSubInstance( + "VCPE_AAI_Type"); + + aaiInfo.put("genericVnfResourceVersion", clEvent.get("AAI").get( + new utf8Type("generic_DasH_vnf_DoT_resource_DasH_version"))); + aaiInfo.put("genericVnfVnfName", clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_name"))); + aaiInfo.put("genericVnfProvStatus", clEvent.get("AAI").get( + new utf8Type("generic_DasH_vnf_DoT_prov_DasH_status"))); + aaiInfo.put("genericVnfIsClosedLoopDisabled", clEvent.get("AAI").get( + new utf8Type("generic_DasH_vnf_DoT_is_DasH_closed_DasH_loop_DasH_disabled"))); + aaiInfo.put("genericVnfOrchestrationStatus", clEvent.get("AAI").get( + new utf8Type("generic_DasH_vnf_DoT_orchestration_DasH_status"))); + aaiInfo.put("genericVnfVnfType", clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_type"))); + aaiInfo.put("genericVnfInMaint", clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_in_DasH_maint"))); + aaiInfo + .put("genericVnfServiceId", clEvent.get("AAI") + .get(new utf8Type("generic_DasH_vnf_DoT_service_DasH_id"))); + aaiInfo.put("genericVnfVnfId", clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_id"))); + aaiInfo.put("vserverIsClosedLoopDisabled", clEvent.get("AAI").get( + new utf8Type("vserver_DoT_is_DasH_closed_DasH_loop_DasH_disabled"))); + aaiInfo.put("vserverProvStatus", clEvent.get("AAI").get(new utf8Type("vserver_DoT_prov_DasH_status"))); + aaiInfo.put("vserverName", clEvent.get("AAI").get(new utf8Type("vserver_DoT_vserver_DasH_name"))); + + vcpeClosedLoopStatus.put("AAI", aaiInfo); + + if (clEvent.get("closedLoopAlarmEnd") != null) { + vcpeClosedLoopStatus.put("closedLoopAlarmEnd", clEvent.get("closedLoopAlarmEnd")); + } else { + vcpeClosedLoopStatus.put("closedLoopAlarmEnd", java.lang.Long.valueOf(0)); + } + + executor.getContextAlbum("ControlLoopStatusAlbum").put(vnfID.toString(), vcpeClosedLoopStatus); + + executor.logger.info("Created context information for new vCPE VNF \"" + vnfID.toString() + "\""); + } + + executor.outFields.put("requestID", requestID); + executor.outFields.put("vnfID", vnfID); + + executor.logger.info(executor.outFields); +} else { + executor.logger.info("No vnf-id in VirtualControlLoopEvent, status:" + + clEvent.get("closedLoopEventStatus").toString()); + var vnfName = clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_name")); + executor.logger.info("No vnf-id in VirtualControlLoopEvent for " + vnfName); + + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get(vnfName); + + if (vcpeClosedLoopStatus == null) { + executor.logger.info("Creating context information for new vCPE VNF \"" + vnfName + "\""); + + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").getSchemaHelper().createNewInstance(); + + vcpeClosedLoopStatus.put("closedLoopControlName", clEvent.get("closedLoopControlName")); + vcpeClosedLoopStatus.put("closedLoopAlarmStart", clEvent.get("closedLoopAlarmStart")); + vcpeClosedLoopStatus.put("closedLoopEventClient", clEvent.get("closedLoopEventClient")); + vcpeClosedLoopStatus.put("closedLoopEventStatus", clEvent.get("closedLoopEventStatus(")); + vcpeClosedLoopStatus.put("version", clEvent.get("version")); + vcpeClosedLoopStatus.put("requestID", clEvent.get("requestID")); + vcpeClosedLoopStatus.put("target_type", clEvent.get("targetType")); + vcpeClosedLoopStatus.put("target", clEvent.get("target")); + vcpeClosedLoopStatus.put("from", clEvent.get("from")); + vcpeClosedLoopStatus.put("policyScope", "vCPE"); + vcpeClosedLoopStatus.put("policyName", "ONAPvCPEPolicyModel"); + vcpeClosedLoopStatus.put("policyVersion", "0.0.1"); + vcpeClosedLoopStatus.put("notification", "ACTIVE"); + vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + vcpeClosedLoopStatus.put("message", ""); + + var aaiInfo = executor.getContextAlbum("ControlLoopStatusAlbum").getSchemaHelper().createNewSubInstance( + "VCPE_AAI_Type"); + + aaiInfo.put("genericVnfVnfName", clEvent.get("AAI").get(new utf8Type("generic_DasH_vnf_DoT_vnf_DasH_name"))); + vcpeClosedLoopStatus.put("AAI", aaiInfo); + + if (clEvent.get("closedLoopAlarmEnd") != null) { + vcpeClosedLoopStatus.put("closedLoopAlarmEnd", clEvent.get("closedLoopAlarmEnd")); + } else { + vcpeClosedLoopStatus.put("closedLoopAlarmEnd", java.lang.Long.valueOf(0)); + } + + executor.getContextAlbum("ControlLoopStatusAlbum").put(vnfName, vcpeClosedLoopStatus); + + executor.logger.info("Created context information for new vCPE VNF \"" + vnfName + "\""); + } + executor.outFields.put("requestID", requestID); + executor.outFields.put("vnfName", vnfName); + executor.logger.info(executor.outFields); +} + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/InitiateActionsTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/InitiateActionsTask.js new file mode 100644 index 000000000..0303bc9a4 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/InitiateActionsTask.js @@ -0,0 +1,54 @@ +/* + * ============LICENSE_START======================================================= + * 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 vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get( + executor.inFields.get("vnfID").toString()); + +var eventList = executor.subject.getOutFieldSchemaHelper("ActionEventList").createNewInstance(); + +var eventType = Java.type("org.onap.policy.apex.service.engine.event.ApexEvent"); + +var controllerRequestActionEvent = new eventType("ActionEvent", "0.0.1", "org.onap.policy.apex.onap.vcpe", "APEX", + "APEX"); + +controllerRequestActionEvent.put("action", "ControllerRequestAction"); +controllerRequestActionEvent.put("requestID", executor.inFields.get("requestID")); +controllerRequestActionEvent.put("vnfID", executor.inFields.get("vnfID")); +controllerRequestActionEvent.put("vnfName", executor.inFields.get("vnfName")); + +eventList.add(controllerRequestActionEvent); + +var logActionEvent = new eventType("ActionEvent", "0.0.1", "org.onap.policy.apex.onap.vcpe", "APEX", "APEX"); + +logActionEvent.put("action", "LogAction"); +logActionEvent.put("requestID", executor.inFields.get("requestID")); +logActionEvent.put("vnfID", executor.inFields.get("vnfID")); +logActionEvent.put("vnfName", executor.inFields.get("vnfName")); + +eventList.add(logActionEvent); + +executor.outFields.put("ActionEventList", eventList); + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ReceiveEventPolicyExecuteOrLogStateTSL.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ReceiveEventPolicyExecuteOrLogStateTSL.js new file mode 100644 index 000000000..46a65add3 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/ReceiveEventPolicyExecuteOrLogStateTSL.js @@ -0,0 +1,55 @@ +/* + * ============LICENSE_START======================================================= + * 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 returnValue = executor.isTrue; + +if( executor.inFields.get("vnfID") == null) { + executor.logger.info("ControlLoopStatusAlbum: vnfID is null"); + var vnfName = executor.inFields.get("vnfName"); + var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get( + executor.inFields.get("vnfName")); +} else { + var vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum").get( + executor.inFields.get("vnfID").toString()); +} + +var status = vcpeClosedLoopStatus.get("closedLoopEventStatus").toString(); +var notification = vcpeClosedLoopStatus.get("notification"); + +var returnValue = executor.isTrue; + +if (notification != null && notification === "BLACKLIST") { + executor.subject.getTaskKey("StopAndLogTask").copyTo(executor.selectedTask); +} +else { + if (status === "ONSET") { + executor.subject.getTaskKey("InitiateActionsTask").copyTo(executor.selectedTask); + } else if (status === "ABATED") { + executor.subject.getTaskKey("StopAndLogTask").copyTo(executor.selectedTask); + } else { + executor.message = "closedLoopEventStatus is \"" + status + "\", it must be either \"ONSET\" or \"ABATED\""; + returnValue = executor.isFalse; + } +} + +executor.logger.info("ReceiveEventPolicyOnsetOrAbatedStateTSL State Selected Task:" + executor.selectedTask); diff --git a/examples/examples-onap-vcpe/src/main/resources/logic/standalone/StopAndLogTask.js b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/StopAndLogTask.js new file mode 100644 index 000000000..af57bf1f7 --- /dev/null +++ b/examples/examples-onap-vcpe/src/main/resources/logic/standalone/StopAndLogTask.js @@ -0,0 +1,47 @@ +/* + * ============LICENSE_START======================================================= + * 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 vcpeClosedLoopStatus = null; +if (executor.inFields.get("vnfID") == null) { + executor.logger.info("AbatedTask: vnfID is null"); + var vnfName = executor.inFields.get("vnfName"); + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum") + .get(executor.inFields.get("vnfName")); +} else { + vcpeClosedLoopStatus = executor.getContextAlbum("ControlLoopStatusAlbum") + .get(executor.inFields.get("vnfID").toString()); +} + +vcpeClosedLoopStatus.put("notificationTime", java.lang.System.currentTimeMillis()); + +var message = vcpeClosedLoopStatus.get("message"); +if (message == null || message === "") { + vcpeClosedLoopStatus.put("message", "situation has been abated"); +} +else { + vcpeClosedLoopStatus.put("notification", "FINAL_FAILURE"); +} + +executor.logger.info(executor.outFields); + +var returnValue = executor.isTrue; |