diff options
Diffstat (limited to 'csit')
23 files changed, 4167 insertions, 8 deletions
diff --git a/csit/apex-pdp/tests/apex-pdp-test.robot b/csit/apex-pdp/tests/apex-pdp-test.robot index 911a4371..ffa501d7 100644 --- a/csit/apex-pdp/tests/apex-pdp-test.robot +++ b/csit/apex-pdp/tests/apex-pdp-test.robot @@ -53,6 +53,18 @@ ExecuteApexTestVnfPolicy Should Be Equal As Integers ${result.rc} 0 Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyTestVnfPolicy +ExecuteApexTestPnfPolicyWithMetadataSet + Set Test Variable ${policyName} onap.policies.apex.pnf.metadataSet.Test + ${postjson}= Get file ${CURDIR}/data/${policyName}.json + CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} ${policyName} 1.0.0 + ${postjson}= Get file ${CURDIR}/data/onap.pnf.metadataSet.Test.json + CreateNodeTemplate /policy/api/v1/nodetemplates 200 ${postjson} 1 + DeployPolicy + Wait Until Keyword Succeeds 2 min 5 sec QueryPolicyStatus ${policyName} defaultGroup apex ${pdpName} onap.policies.native.Apex + ${result}= Run Process ${SCRIPTS}/make_topic.sh APEX-CL-MGT2 + Should Be Equal As Integers ${result.rc} 0 + Wait Until Keyword Succeeds 2 min 5 sec TriggerAndVerifyTestPnfPolicy + *** Keywords *** DeployPolicy diff --git a/csit/apex-pdp/tests/data/onap.pnf.metadataSet.Test.json b/csit/apex-pdp/tests/data/onap.pnf.metadataSet.Test.json new file mode 100644 index 00000000..c59f695a --- /dev/null +++ b/csit/apex-pdp/tests/data/onap.pnf.metadataSet.Test.json @@ -0,0 +1,2735 @@ +{ + "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": { + "apex.metadata.pnf": { + "version": "1.0.0", + "type": "org.onap.nodetypes.policy.MetadataSet", + "type_version": "1.0.0", + "description": "Metadata set for apex pnf Policy", + "metadata": { + "apexPolicyModel": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2", + "version": "0.0.1" + }, + "keyInformation": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_KeyInfo", + "version": "0.0.1" + }, + "keyInfoMap": { + "entry": [ + { + "key": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "UUID": "7218fb2f-59e3-321d-9ae1-bc97b19eb4ae", + "description": "Generated description for concept referred to by key \"SimpleBooleanType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "UUID": "c8a29e27-0a15-354a-84f9-4c7f207e5c81", + "description": "Generated description for concept referred to by key \"SimpleCL_AAIFailureResponseEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "UUID": "5e843cee-0180-39b9-8989-180b2ffe11c0", + "description": "Generated description for concept referred to by key \"SimpleCL_AAIFailureResponseHandlerPolicy2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "UUID": "90291c92-9b27-3cd9-8720-db572419c048", + "description": "Generated description for concept referred to by key \"SimpleCL_AAIRequestErrorType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "UUID": "7b7e6751-4e0b-389d-98c0-5567bbc0294c", + "description": "Generated description for concept referred to by key \"SimpleCL_AAIRequestEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "UUID": "63d5680c-14ef-3505-8d34-ebb646bba07b", + "description": "Generated description for concept referred to by key \"SimpleCL_AAISuccessResponseEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "UUID": "a84ca97d-6e94-39a2-91f9-59a6c9aa435e", + "description": "Generated description for concept referred to by key \"SimpleCL_AAISuccessResponseHandlerPolicy2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "UUID": "0e2ee622-7fd3-3e49-82e2-539c4f5e9624", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSActionIdentifiersType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "UUID": "e84f8682-ea33-3ad0-8626-8bc4634581fc", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyFailureResponseEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "UUID": "a252f835-2479-38ef-9ef4-20af62725752", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "UUID": "cfc46ea9-b8c1-38dd-ac9c-304c916daf34", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyFailureResponseTask2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "UUID": "1e7095d6-a455-3f89-acae-486e35d7e311", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyRequestEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "UUID": "d22ea83b-695d-3da9-b9f5-41f16ca433bf", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyRequestPayloadType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "UUID": "e9fe2e40-1f0d-30dd-8b9e-885695878693", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifyResponsePayloadType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "UUID": "5e04fa76-0a17-38a9-8524-23b2d1a23fa5", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifySuccessResponseEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "UUID": "15866380-40f5-3f8e-87d9-13747a36d352", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "UUID": "2c3d76ce-dd42-32ac-a397-ab418534e1cf", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSConfigModifySuccessResponseTask2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "UUID": "b99c44da-dae7-3c96-b528-58852537d063", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSFailureResponseCommonHeaderType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "UUID": "1db688e2-3afe-3b03-9795-fdbfa80fa240", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSFailureResponseStatusType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "UUID": "31022456-e85b-3a9b-9ecb-a09691792d3e", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSRequestCommonHeaderType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "UUID": "d6075720-622e-3a0d-827a-aa4580a2f5d7", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSSuccessResponseCommonHeaderType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "UUID": "948359ff-3308-3ac5-a5ec-6e3c1b9cd4d5", + "description": "Generated description for concept referred to by key \"SimpleCL_CDSSuccessResponseStatusType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + }, + "UUID": "63a6fd26-2fd6-3a0e-8a27-49a5d2ea4644", + "description": "Generated description for concept referred to by key \"SimpleCL_EventDetailsAlbum:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_EventDetailsAlbumType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_EventDetailsAlbumType", + "version": "0.0.1" + }, + "UUID": "a0407d0b-5719-38bf-9529-25ad62ace8c4", + "description": "Generated description for concept referred to by key \"SimpleCL_EventDetailsAlbumType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "UUID": "28e894dc-4ab8-3469-aab7-d81bd05bb4c9", + "description": "Generated description for concept referred to by key \"SimpleCL_HandleAAIFailureResponseTask2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "UUID": "073f1433-999e-3506-98ad-ef820d2fa7f0", + "description": "Generated description for concept referred to by key \"SimpleCL_HandleAAISuccessResponseTask2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "UUID": "afc6ed46-6801-3c85-bb4c-0ab5b0dd4a74", + "description": "Generated description for concept referred to by key \"SimpleCL_HandleVesEventTask2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "UUID": "317be184-a01a-3e2d-9ae4-cafaa405de70", + "description": "Generated description for concept referred to by key \"SimpleCL_LogEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "UUID": "be7fc79b-9b73-381a-8e23-9dd6e6b1233d", + "description": "Generated description for concept referred to by key \"SimpleCL_LogEventComponentType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "UUID": "1a082851-49e3-3f4c-b023-c05236cc8389", + "description": "Generated description for concept referred to by key \"SimpleCL_LogEventOtherFieldsType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "UUID": "cab6cd51-ea7b-3241-a173-ea8a24e29737", + "description": "Generated description for concept referred to by key \"SimpleCL_LogEventTargetType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "UUID": "0f57665a-f0a9-314e-ad0a-04c1f5758174", + "description": "Generated description for concept referred to by key \"SimpleCL_VesEvent:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_VesEventHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_VesEventHandlerPolicy2", + "version": "0.0.1" + }, + "UUID": "ba5d9a46-8cb4-3fbe-84fd-eabba5b7dd4b", + "description": "Generated description for concept referred to by key \"SimpleCL_VesEventHandlerPolicy2:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "UUID": "9fd7a967-57d4-36ef-81e9-c3396f3aa8d1", + "description": "Generated description for concept referred to by key \"SimpleCL_VesEventType:0.0.1\"" + } + }, + { + "key": { + "name": "SimpleLongType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleLongType", + "version": "0.0.1" + }, + "UUID": "2dfcd9ec-a6f9-3f9f-958f-9b36cf4ac574", + "description": "Generated description for concept referred to by key \"SimpleLongType: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\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2", + "version": "0.0.1" + }, + "UUID": "ecc97b87-f30b-344c-a476-d36501bf5cbd", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Albums", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Albums", + "version": "0.0.1" + }, + "UUID": "1469671a-56dd-3a68-bf6c-77a5cf7a9487", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_Albums:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Events", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Events", + "version": "0.0.1" + }, + "UUID": "23c4eee4-aba5-36f6-96d6-46f40061bfed", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_Events:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_KeyInfo", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_KeyInfo", + "version": "0.0.1" + }, + "UUID": "ea9e73ff-483c-3827-896c-6eaa9d69bc6e", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_KeyInfo:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Policies", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Policies", + "version": "0.0.1" + }, + "UUID": "38c068e5-bb9a-3997-9e50-ec77c66825c8", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_Policies:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Schemas", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Schemas", + "version": "0.0.1" + }, + "UUID": "38514b27-8b9b-3d06-844a-3aced27deb0a", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_Schemas:0.0.1\"" + } + }, + { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Tasks", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Tasks", + "version": "0.0.1" + }, + "UUID": "0e0387b5-07fa-30e4-8554-eb51d2e18939", + "description": "Generated description for concept referred to by key \"onap.policies.apex.Simplecontrolloop2_Tasks:0.0.1\"" + } + } + ] + } + }, + "policies": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Policies", + "version": "0.0.1" + }, + "policyMap": { + "entry": [ + { + "key": { + "name": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "SimpleCL_ReceiveAAIFailureResponseState", + "value": { + "stateKey": { + "parentKeyName": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "SimpleCL_ReceiveAAIFailureResponseState" + }, + "trigger": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "AAIFailureStateOutput", + "value": { + "key": { + "parentKeyName": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAIFailureResponseState", + "localName": "AAIFailureStateOutput" + }, + "outgoingEvent": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "SimpleCL_LogEvent", + "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": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAIFailureResponseState", + "localName": "SimpleCL_AAIFailureResponseHandlerPolicy2" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "SimpleCL_AAIFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAIFailureResponseState", + "localName": "AAIFailureStateOutput" + } + } + } + ] + } + } + } + ] + }, + "firstState": "SimpleCL_ReceiveAAIFailureResponseState" + } + }, + { + "key": { + "name": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "SimpleCL_ReceiveAAISuccessResponseState", + "value": { + "stateKey": { + "parentKeyName": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "SimpleCL_ReceiveAAISuccessResponseState" + }, + "trigger": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "AAISuccessStateOutput", + "value": { + "key": { + "parentKeyName": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAISuccessResponseState", + "localName": "AAISuccessStateOutput" + }, + "outgoingEvent": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + { + "name": "SimpleCL_LogEvent", + "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": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAISuccessResponseState", + "localName": "SimpleCL_AAISuccessResponseHandlerPolicy2" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "SimpleCL_AAISuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveAAISuccessResponseState", + "localName": "AAISuccessStateOutput" + } + } + } + ] + } + } + } + ] + }, + "firstState": "SimpleCL_ReceiveAAISuccessResponseState" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "SimpleCL_CDSConfigModifyFailureResponseState", + "value": { + "stateKey": { + "parentKeyName": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "SimpleCL_CDSConfigModifyFailureResponseState" + }, + "trigger": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "ConfigModifyFailureResponseOutput", + "value": { + "key": { + "parentKeyName": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifyFailureResponseState", + "localName": "ConfigModifyFailureResponseOutput" + }, + "outgoingEvent": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "SimpleCL_LogEvent", + "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": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifyFailureResponseState", + "localName": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "SimpleCL_CDSConfigModifyFailureResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifyFailureResponseState", + "localName": "ConfigModifyFailureResponseOutput" + } + } + } + ] + } + } + } + ] + }, + "firstState": "SimpleCL_CDSConfigModifyFailureResponseState" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "SimpleCL_CDSConfigModifySuccessResponseState", + "value": { + "stateKey": { + "parentKeyName": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "SimpleCL_CDSConfigModifySuccessResponseState" + }, + "trigger": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "ConfigModifySuccessResponseOutput", + "value": { + "key": { + "parentKeyName": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifySuccessResponseState", + "localName": "ConfigModifySuccessResponseOutput" + }, + "outgoingEvent": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "SimpleCL_LogEvent", + "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": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifySuccessResponseState", + "localName": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "SimpleCL_CDSConfigModifySuccessResponseHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_CDSConfigModifySuccessResponseState", + "localName": "ConfigModifySuccessResponseOutput" + } + } + } + ] + } + } + } + ] + }, + "firstState": "SimpleCL_CDSConfigModifySuccessResponseState" + } + }, + { + "key": { + "name": "SimpleCL_VesEventHandlerPolicy2", + "version": "0.0.1" + }, + "value": { + "policyKey": { + "name": "SimpleCL_VesEventHandlerPolicy2", + "version": "0.0.1" + }, + "template": "Freestyle", + "state": { + "entry": [ + { + "key": "SimpleCL_ReceiveVesState", + "value": { + "stateKey": { + "parentKeyName": "SimpleCL_VesEventHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "NULL", + "localName": "SimpleCL_ReceiveVesState" + }, + "trigger": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "stateOutputs": { + "entry": [ + { + "key": "VesOutput", + "value": { + "key": { + "parentKeyName": "SimpleCL_VesEventHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveVesState", + "localName": "VesOutput" + }, + "outgoingEvent": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "outgoingEventReference": [ + { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + { + "name": "SimpleCL_LogEvent", + "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": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "taskReferences": { + "entry": [ + { + "key": { + "name": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "parentKeyName": "SimpleCL_VesEventHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveVesState", + "localName": "SimpleCL_VesEventHandlerPolicy2" + }, + "outputType": "DIRECT", + "output": { + "parentKeyName": "SimpleCL_VesEventHandlerPolicy2", + "parentKeyVersion": "0.0.1", + "parentLocalName": "SimpleCL_ReceiveVesState", + "localName": "VesOutput" + } + } + } + ] + } + } + } + ] + }, + "firstState": "SimpleCL_ReceiveVesState" + } + } + ] + } + }, + "tasks": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Tasks", + "version": "0.0.1" + }, + "taskMap": { + "entry": [ + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseTask2", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "CDS", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "status", + "value": { + "key": "status", + "fieldSchemaKey": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + }, + "outputEvents": { + "entry": [ + { + "key": "SimpleCL_LogEvent", + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": "TaskLogic", + "logicFlavour": "JAVASCRIPT", + "logic": "var uuidType = java.util.UUID;\nvar longType = java.lang.Long;\nvar HashMapType = java.util.HashMap;\n\nvar albumID = executor.getExecutionProperties().getProperty(\"albumId\");\nvar eventDetailsAlbum = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").get(albumID.toString());\n\nvar commonEventHeader = eventDetailsAlbum.get(\"commonEventHeader\");\nvar errorMessage = \"CDS operation failed. Error message from CDS - \" + executor.inFields.get(\"status\").get(\"errorMessage\");\nvar logEventFields = populateLogEventFields(commonEventHeader.get(\"eventId\"), eventDetailsAlbum.get(\"otherFields\").get(\"hashMap\").get(\"pnfName\"), \"PNF\", \"FINAL_FAILURE\", \"Failed to process VES event. Reason: \" + errorMessage);\nexecutor.addFieldsToOutput(logEventFields);\nexecutor.logger.info(executor.outFieldsList);\ntrue;\n\nfunction populateLogEventFields(eventId, pnfName, targetType, status, message) {\n var timestamp = longType(new Date().getTime());\n var logEventFields = java.util.HashMap();\n logEventFields.put(\"id\", eventId);\n \n var entityInfo = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewSubInstance(\"entityInfo\");\n entityInfo.put(\"pnf_DasH_name\", pnfName);\n var target = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewInstance();\n target.put(\"entityInfo\", entityInfo);\n target.put(\"targetType\", targetType)\n logEventFields.put(\"target\", target);\n \n var artifacts = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewSubInstance(\"artifacts\");\n artifacts.put(\"policyName\", \"onap.policies.apex.Simplecontrolloop2\");\n artifacts.put(\"policyVersion\", \"1.0.0\");\n var component = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewInstance();\n component.put(\"artifacts\", artifacts);\n component.put(\"name\", \"Policy\")\n component.put(\"flavour\", \"Apex-PDP\")\n component.put(\"timestamp\", timestamp)\n component.put(\"status\", status)\n component.put(\"message\", message)\n logEventFields.put(\"component\", component);\n \n var otherFieldsEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"otherFields\").createNewInstance();\n otherFieldsEntry.put(\"useCaseName\", \"simple-controlloop-usecase\");\n logEventFields.put(\"otherFields\", otherFieldsEntry);\n \n return logEventFields;\n}" + } + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseTask2", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "CDS", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "status", + "value": { + "key": "status", + "fieldSchemaKey": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + }, + "outputEvents": { + "entry": [ + { + "key": "SimpleCL_LogEvent", + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": "TaskLogic", + "logicFlavour": "JAVASCRIPT", + "logic": "var uuidType = java.util.UUID;\nvar longType = java.lang.Long;\nvar HashMapType = java.util.HashMap;\n\nvar albumID = executor.getExecutionProperties().getProperty(\"albumId\");\nvar eventDetailsAlbum = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").get(albumID.toString());\n\nvar commonEventHeader = eventDetailsAlbum.get(\"commonEventHeader\");\n\nvar logEventFields = populateLogEventFields(commonEventHeader.get(\"eventId\"), eventDetailsAlbum.get(\"otherFields\").get(\"hashMap\").get(\"pnfName\"), \"PNF\", \"FINAL_SUCCESS\", \"Successfully processed the VES event. Hostname is updated.\")\nexecutor.addFieldsToOutput(logEventFields);\nexecutor.logger.info(executor.outFieldsList);\ntrue;\n\nfunction populateLogEventFields(eventId, pnfName, targetType, status, message) {\n var timestamp = longType(new Date().getTime());\n var logEventFields = java.util.HashMap();\n logEventFields.put(\"id\", eventId);\n \n var entityInfo = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewSubInstance(\"entityInfo\");\n entityInfo.put(\"pnf_DasH_name\", pnfName);\n var target = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewInstance();\n target.put(\"entityInfo\", entityInfo);\n target.put(\"targetType\", targetType)\n logEventFields.put(\"target\", target);\n \n var artifacts = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewSubInstance(\"artifacts\");\n artifacts.put(\"policyName\", \"onap.policies.apex.Simplecontrolloop2\");\n artifacts.put(\"policyVersion\", \"1.0.0\");\n var component = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewInstance();\n component.put(\"artifacts\", artifacts);\n component.put(\"name\", \"Policy\")\n component.put(\"flavour\", \"Apex-PDP\")\n component.put(\"timestamp\", timestamp)\n component.put(\"status\", status)\n component.put(\"message\", message)\n logEventFields.put(\"component\", component);\n \n var otherFieldsEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"otherFields\").createNewInstance();\n otherFieldsEntry.put(\"useCaseName\", \"simple-controlloop-usecase\");\n logEventFields.put(\"otherFields\", otherFieldsEntry);\n \n return logEventFields;\n}" + } + } + }, + { + "key": { + "name": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleAAIFailureResponseTask2", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "AAI", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "requestError", + "value": { + "key": "requestError", + "fieldSchemaKey": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + }, + "outputEvents": { + "entry": [ + { + "key": "SimpleCL_LogEvent", + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": "TaskLogic", + "logicFlavour": "JAVASCRIPT", + "logic": "var uuidType = java.util.UUID;\nvar longType = java.lang.Long;\nvar HashMapType = java.util.HashMap;\n\nvar albumID = executor.getExecutionProperties().getProperty(\"albumId\");\nvar eventDetailsAlbum = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").get(albumID.toString());\n\nvar aaiErrorMessage = \"AAI operation failed. Error message from AAI - \" + executor.inFields.get(\"requestError\").get(\"serviceException\").get(\"text\");\n\nvar logEventFields = populateLogEventFields(eventDetailsAlbum.get(\"commonEventHeader\").get(\"eventId\"), eventDetailsAlbum.get(\"otherFields\").get(\"hashMap\").get(\"pnfName\"), \"PNF\", \"FINAL_FAILURE\", \"Failed to process VES event. Reason: \" + aaiErrorMessage)\nexecutor.addFieldsToOutput(logEventFields);\nexecutor.logger.info(executor.outFieldsList);\ntrue;\n\nfunction populateLogEventFields(eventId, pnfName, targetType, status, message) {\n var timestamp = longType(new Date().getTime());\n var logEventFields = java.util.HashMap();\n logEventFields.put(\"id\", eventId);\n \n var entityInfo = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewSubInstance(\"entityInfo\");\n entityInfo.put(\"pnf_DasH_name\", pnfName);\n var target = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewInstance();\n target.put(\"entityInfo\", entityInfo);\n target.put(\"targetType\", targetType)\n logEventFields.put(\"target\", target);\n \n var artifacts = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewSubInstance(\"artifacts\");\n artifacts.put(\"policyName\", \"onap.policies.apex.Simplecontrolloop2\");\n artifacts.put(\"policyVersion\", \"1.0.0\");\n var component = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewInstance();\n component.put(\"artifacts\", artifacts);\n component.put(\"name\", \"Policy\")\n component.put(\"flavour\", \"Apex-PDP\")\n component.put(\"timestamp\", timestamp)\n component.put(\"status\", status)\n component.put(\"message\", message)\n logEventFields.put(\"component\", component);\n \n var otherFieldsEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"otherFields\").createNewInstance();\n otherFieldsEntry.put(\"useCaseName\", \"simple-controlloop-usecase\");\n logEventFields.put(\"otherFields\", otherFieldsEntry);\n \n return logEventFields;\n}" + } + } + }, + { + "key": { + "name": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleAAISuccessResponseTask2", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "AAI", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "equip-model", + "value": { + "key": "equip-model", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "equip-type", + "value": { + "key": "equip-type", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "equip-vendor", + "value": { + "key": "equip-vendor", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "frame-id", + "value": { + "key": "frame-id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "in-maint", + "value": { + "key": "in-maint", + "fieldSchemaKey": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "ipaddress-v4-oam", + "value": { + "key": "ipaddress-v4-oam", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "nf-role", + "value": { + "key": "nf-role", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "pnf-ipv4-address", + "value": { + "key": "pnf-ipv4-address", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "pnf-name", + "value": { + "key": "pnf-name", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "resource-version", + "value": { + "key": "resource-version", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + }, + "outputEvents": { + "entry": [ + { + "key": "SimpleCL_CDSConfigModifyRequestEvent", + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": "SimpleCL_LogEvent", + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": "TaskLogic", + "logicFlavour": "JAVASCRIPT", + "logic": "var uuidType = java.util.UUID;\nvar HashMapType = java.util.HashMap;\nvar longType = java.lang.Long;\n\nvar albumID = executor.getExecutionProperties().getProperty(\"albumId\");\nvar eventDetailsAlbum = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").get(albumID.toString());\nexecutor.logger.info(\"HandleAAISuccessResponseTask extracted context album - \" + albumID.toString() + \"::\" + eventDetailsAlbum);\n\nvar commonEventHeader = eventDetailsAlbum.get(\"commonEventHeader\");\nvar otherFieldsMap = eventDetailsAlbum.get(\"otherFields\").get(\"hashMap\");\n\nvar targetEntityName = executor.inFields.get(\"pnf-name\")\nvar logMessage = \"\";\nvar existingHostname = executor.inFields.get(\"pnf-name2\");\nvar hostnameInVesEvent = otherFieldsMap.get(\"hostname\");\n\nvar albumSchemaHelper = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").getSchemaHelper();\nvar target = albumSchemaHelper.createNewSubInstance(\"target\");\ntarget.put(\"targetType\", \"PNF\")\nvar entityInfo = albumSchemaHelper.createNewSubInstance(\"entityInfo\");\nentityInfo.put(\"name\",targetEntityName);\ntarget.put(\"entityInfo\", entityInfo);\neventDetailsAlbum.put(\"target\", target);\n\nvar returnVal = true;\nif ((String(hostnameInVesEvent) != \"UNDEFINED\") && (String(existingHostname) != String(hostnameInVesEvent))) {\n logMessage = \"Hostname available in AAI does not match with the hostname received in the VES Event.\";\n returnVal = false\n var logEventFields = populateLogEventFields(commonEventHeader.get(\"eventId\"), otherFieldsMap.get(\"pnfName\"), \"PNF\", \"FINAL_FAILURE\", \"Failed to process VES event. Reason: \" + logMessage)\n executor.addFieldsToOutput(logEventFields);\n} else {\n logMessage = \"Received response from AAI successfully. Hostname in AAI matches with the one in Ves event. Going to make the update-config request to CDS.\";\n\n var commonHeader = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_CDSConfigModifyRequestEvent\", \"commonHeader\").createNewInstance();\n commonHeader.put(\"subRequestId\", albumID.toString());\n commonHeader.put(\"requestId\", commonEventHeader.get(\"eventId\"));\n commonHeader.put(\"originatorId\", \"POLICY\");\n\n var blueprintName = \"controlloop-hostname-update\";\n var blueprintVersion = \"1.0.4\";\n var newHostname = \"host\" + Math.random().toString(36).substring(7);\n eventDetailsAlbum.put(\"generatedHostname\", newHostname);\n\n var actionIdentifiers = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_CDSConfigModifyRequestEvent\", \"actionIdentifiers\").createNewInstance();\n actionIdentifiers.put(\"mode\", \"sync\");\n actionIdentifiers.put(\"blueprintName\", blueprintName);\n actionIdentifiers.put(\"blueprintVersion\", blueprintVersion);\n actionIdentifiers.put(\"actionName\", \"update-config\");\n\n var payloadEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_CDSConfigModifyRequestEvent\", \"payload\").createNewSubInstance(\"CDSConfigModifyRequestPayloadEntry\");\n payloadEntry.put(\"hostname\", newHostname)\n payloadEntry.put(\"IP\", executor.inFields.get(\"ipaddress-v4-oam\"));\n payloadEntry.put(\"pnfName\", otherFieldsMap.get(\"pnfName\"));\n\n var payload = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_CDSConfigModifyRequestEvent\", \"payload\").createNewInstance();\n payload.put(\"update_DasH_config_DasH_request\", payloadEntry);\n\n var cdsRequestEventFields = java.util.HashMap();\n cdsRequestEventFields.put(\"commonHeader\", commonHeader);\n cdsRequestEventFields.put(\"actionIdentifiers\", actionIdentifiers);\n cdsRequestEventFields.put(\"payload\", payload);\n executor.addFieldsToOutput(cdsRequestEventFields);\n\n var logEventFields = populateLogEventFields(commonEventHeader.get(\"eventId\"), otherFieldsMap.get(\"pnfName\"), \"PNF\", \"SUCCESS\", logMessage)\n executor.addFieldsToOutput(logEventFields);\n}\nexecutor.logger.info(executor.outFieldsList);\nreturnVal;\n\nfunction populateLogEventFields(eventId, pnfName, targetType, status, message) {\n var timestamp = longType(new Date().getTime());\n var logEventFields = java.util.HashMap();\n logEventFields.put(\"id\", eventId);\n \n var entityInfo = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewSubInstance(\"entityInfo\");\n entityInfo.put(\"pnf_DasH_name\", pnfName);\n var target = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewInstance();\n target.put(\"entityInfo\", entityInfo);\n target.put(\"targetType\", targetType)\n logEventFields.put(\"target\", target);\n \n var artifacts = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewSubInstance(\"artifacts\");\n artifacts.put(\"policyName\", \"onap.policies.apex.Simplecontrolloop2\");\n artifacts.put(\"policyVersion\", \"1.0.0\");\n var component = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewInstance();\n component.put(\"artifacts\", artifacts);\n component.put(\"name\", \"Policy\")\n component.put(\"flavour\", \"Apex-PDP\")\n component.put(\"timestamp\", timestamp)\n component.put(\"status\", status)\n component.put(\"message\", message)\n logEventFields.put(\"component\", component);\n \n var otherFieldsEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"otherFields\").createNewInstance();\n otherFieldsEntry.put(\"useCaseName\", \"simple-controlloop-usecase\");\n logEventFields.put(\"otherFields\", otherFieldsEntry);\n \n return logEventFields;\n}" + } + } + }, + { + "key": { + "name": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_HandleVesEventTask2", + "version": "0.0.1" + }, + "inputEvent": { + "key": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "DCAE", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "event", + "value": { + "key": "event", + "fieldSchemaKey": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + }, + "outputEvents": { + "entry": [ + { + "key": "SimpleCL_AAIRequestEvent", + "value": { + "key": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "AAI", + "parameter": { + "entry": [ + { + "key": "aaifield", + "value": { + "key": "aaifield", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": "SimpleCL_LogEvent", + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + }, + "taskParameters": { + "entry": [] + }, + "contextAlbumReference": [ + { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + } + ], + "taskLogic": { + "key": "TaskLogic", + "logicFlavour": "JAVASCRIPT", + "logic": "var uuidType = java.util.UUID;\nvar HashMapType = java.util.HashMap;\nvar longType = java.lang.Long;\n\nvar eventDetailsAlbum = executor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").getSchemaHelper().createNewInstance();\nvar returnValue = true;\n\nvar event = executor.inFields.get(\"event\");\nexecutor.logger.info(\"HandleVesEventTask processing VES event - \" + event);\n\nvar commonEventHeader = event.get(\"commonEventHeader\");\nvar otherFields = event.get(\"otherFields\");\n// albumID will be used to fetch info from our album later. Storing event data in album by sourceId / AAI pnf-id, the same will be sent to CDS request payload as subRequestId\nvar albumID = commonEventHeader.get(\"sourceId\");\n// save the event processing start time in apex\ncommonEventHeader.put(\"startEpochMicrosec\", longType(new Date().getTime()));\n//save the incoming event details to album\neventDetailsAlbum.put(\"commonEventHeader\", commonEventHeader);\neventDetailsAlbum.put(\"otherFields\", otherFields);\nexecutor.getContextAlbum(\"SimpleCL_EventDetailsAlbum\").put(albumID.toString(), eventDetailsAlbum);\nexecutor.logger.info(\"HandleVesEventTask storing context album - \" + albumID.toString() + \"::\" + eventDetailsAlbum);\n\nexecutor.getExecutionProperties().setProperty(\"albumId\", albumID);\nexecutor.getExecutionProperties().setProperty(\"pnfName\", otherFields.get(\"hashMap\").get(\"pnfName\"));\n\nvar logEventFields = populateLogEventFields(eventDetailsAlbum.get(\"commonEventHeader\").get(\"eventId\"), otherFields.get(\"hashMap\").get(\"pnfName\"), \"PNF\", \"ACTIVE\", \"VES event has been received. Going to fetch details from AAI.\")\n\nexecutor.addFieldsToOutput(logEventFields);\n\nexecutor.logger.info(executor.outFieldsList);\nreturnValue;\n\nfunction populateLogEventFields(eventId, pnfName, targetType, status, message) {\n // populate logEventFields\n var timestamp = longType(new Date().getTime());\n var logEventFields = java.util.HashMap();\n logEventFields.put(\"id\", eventId);\n \n var entityInfo = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewSubInstance(\"entityInfo\");\n entityInfo.put(\"pnf_DasH_name\", pnfName);\n var target = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"target\").createNewInstance();\n target.put(\"entityInfo\", entityInfo);\n target.put(\"targetType\", targetType)\n logEventFields.put(\"target\", target);\n \n var artifacts = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewSubInstance(\"artifacts\");\n artifacts.put(\"policyName\", \"onap.policies.apex.Simplecontrolloop2\");\n artifacts.put(\"policyVersion\", \"1.0.0\");\n var component = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"component\").createNewInstance();\n component.put(\"artifacts\", artifacts);\n component.put(\"name\", \"Policy\")\n component.put(\"flavour\", \"Apex-PDP\")\n component.put(\"timestamp\", timestamp)\n component.put(\"status\", status)\n component.put(\"message\", message)\n logEventFields.put(\"component\", component);\n \n var otherFieldsEntry = executor.subject.getOutFieldSchemaHelper(\"SimpleCL_LogEvent\", \"otherFields\").createNewInstance();\n otherFieldsEntry.put(\"useCaseName\", \"simple-controlloop-usecase\");\n logEventFields.put(\"otherFields\", otherFieldsEntry);\n \n return logEventFields;\n}" + } + } + } + ] + } + }, + "events": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Events", + "version": "0.0.1" + }, + "eventMap": { + "entry": [ + { + "key": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIFailureResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "AAI", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "requestError", + "value": { + "key": "requestError", + "fieldSchemaKey": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIRequestEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "AAI", + "parameter": { + "entry": [ + { + "key": "aaifield", + "value": { + "key": "aaifield", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAISuccessResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "AAI", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "equip-model", + "value": { + "key": "equip-model", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "equip-type", + "value": { + "key": "equip-type", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "equip-vendor", + "value": { + "key": "equip-vendor", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "frame-id", + "value": { + "key": "frame-id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "in-maint", + "value": { + "key": "in-maint", + "fieldSchemaKey": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "ipaddress-v4-oam", + "value": { + "key": "ipaddress-v4-oam", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "nf-role", + "value": { + "key": "nf-role", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "pnf-ipv4-address", + "value": { + "key": "pnf-ipv4-address", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "pnf-name", + "value": { + "key": "pnf-name", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "resource-version", + "value": { + "key": "resource-version", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyFailureResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "CDS", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "status", + "value": { + "key": "status", + "fieldSchemaKey": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifySuccessResponseEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "CDS", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "actionIdentifiers", + "value": { + "key": "actionIdentifiers", + "fieldSchemaKey": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "commonHeader", + "value": { + "key": "commonHeader", + "fieldSchemaKey": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "payload", + "value": { + "key": "payload", + "fieldSchemaKey": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "status", + "value": { + "key": "status", + "fieldSchemaKey": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "APEX", + "target": "DCAE", + "parameter": { + "entry": [ + { + "key": "component", + "value": { + "key": "component", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "id", + "value": { + "key": "id", + "fieldSchemaKey": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "otherFields", + "value": { + "key": "otherFields", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "optional": false + } + }, + { + "key": "target", + "value": { + "key": "target", + "fieldSchemaKey": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + }, + { + "key": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_VesEvent", + "version": "0.0.1" + }, + "nameSpace": "org.onap.policy.apex.simplecontrolloop", + "source": "DCAE", + "target": "APEX", + "parameter": { + "entry": [ + { + "key": "event", + "value": { + "key": "event", + "fieldSchemaKey": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "optional": false + } + } + ] + } + } + } + ] + } + }, + "albums": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Albums", + "version": "0.0.1" + }, + "albums": { + "entry": [ + { + "key": { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_EventDetailsAlbum", + "version": "0.0.1" + }, + "scope": "policy", + "isWritable": true, + "itemSchema": { + "name": "SimpleCL_EventDetailsAlbumType", + "version": "0.0.1" + } + } + } + ] + } + }, + "schemas": { + "key": { + "name": "onap.policies.apex.Simplecontrolloop2_Schemas", + "version": "0.0.1" + }, + "schemas": { + "entry": [ + { + "key": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleBooleanType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.Boolean" + } + }, + { + "key": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_AAIRequestErrorType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"AAIRequestErrorType\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"serviceException\",\n \"type\": {\n \"name\": \"serviceException\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"messageId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"text\",\n \"type\": \"string\"\n },\n {\n \"name\": \"variables\",\n \"type\": {\n \"type\": \"array\",\n \"items\": \"string\"\n }\n }\n ]\n }\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSActionIdentifiersType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSActionIdentifiers_Type\",\n \"fields\": [\n {\n \"name\": \"actionName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"blueprintVersion\",\n \"type\": \"string\"\n },\n {\n \"name\": \"mode\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyRequestPayloadType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"map\",\n \"values\": {\n \"type\": \"record\",\n \"name\": \"CDSConfigModifyRequestPayloadEntry\",\n \"fields\": [\n {\n \"name\": \"hostname\",\n \"type\": \"string\"\n },\n {\n \"name\": \"IP\",\n \"type\": \"string\"\n },\n {\n \"name\": \"pnfName\",\n \"type\": \"string\"\n }\n ]\n }\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSConfigModifyResponsePayloadType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"CDSConfigResponsePayloadEntry\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"update_DasH_config_DasH_response\",\n \"type\": {\n \"name\": \"update_DasH_config_DasH_response\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"execute_DasH_command_DasH_logs\",\n \"type\": {\n \"type\": \"array\",\n \"items\": \"string\"\n }\n },\n {\n \"name\": \"prepare_DasH_environment_DasH_logs\",\n \"type\": {\n \"type\": \"array\",\n \"items\": \"string\"\n }\n }\n ]\n }\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSFailureResponseCommonHeaderType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseCommonHeader_Type\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSFailureResponseStatusType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseStatus_Type\",\n \"fields\": [\n {\n \"name\": \"code\",\n \"type\": \"int\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n },\n {\n \"name\": \"errorMessage\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSRequestCommonHeaderType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSRequestCommonHeader_Type\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSSuccessResponseCommonHeaderType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseCommonHeader_Type\",\n \"fields\": [\n {\n \"name\": \"originatorId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"requestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"subRequestId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_CDSSuccessResponseStatusType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"type\": \"record\",\n \"name\": \"CDSResponseStatus_Type\",\n \"fields\": [\n {\n \"name\": \"code\",\n \"type\": \"int\"\n },\n {\n \"name\": \"eventType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_EventDetailsAlbumType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_EventDetailsAlbumType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"eventDetails\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"commonEventHeader\",\n \"type\": {\n \"name\": \"commonEventHeader\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"domain\",\n \"type\": \"string\"\n },\n {\n \"name\": \"eventId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"eventName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"lastEpochMicrosec\",\n \"type\": \"long\"\n },\n {\n \"name\": \"priority\",\n \"type\": \"string\"\n },\n {\n \"name\": \"reportingEntityName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"sequence\",\n \"type\": \"int\"\n },\n {\n \"name\": \"sourceId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"sourceName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"startEpochMicrosec\",\n \"type\": \"long\"\n },\n {\n \"name\": \"timeZoneOffset\",\n \"type\": \"string\"\n },\n {\n \"name\": \"version\",\n \"type\": \"string\"\n },\n {\n \"name\": \"internalHeaderFields\",\n \"type\": {\n \"name\": \"internalHeaderFields\",\n \"type\": \"record\",\n \"fields\": []\n }\n },\n {\n \"name\": \"vesEventListenerVersion\",\n \"type\": \"string\"\n }\n ]\n }\n },\n {\n \"name\": \"otherFields\",\n \"type\": {\n \"name\": \"otherFields\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"hashMap\",\n \"type\": {\n \"name\": \"hashMap\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"hostname\",\n \"type\": \"string\"\n },\n {\n \"name\": \"pnfName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"pnfId\",\n \"type\": \"string\"\n },\n {\n \"name\": \"ip\",\n \"type\": \"string\"\n }\n ]\n }\n },\n {\n \"name\": \"otherFieldsVersion\",\n \"type\": \"string\"\n }\n ]\n }\n },\n {\n \"name\": \"target\",\n \"type\": {\n \"name\": \"target\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"targetType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"entityInfo\",\n \"type\": {\n \"name\": \"entityInfo\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }\n },\n {\n \"name\": \"generatedHostname\",\n \"type\": \"string\"\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventComponentType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"component\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"name\",\n \"type\": \"string\"\n },\n {\n \"name\": \"flavour\",\n \"type\": \"string\"\n },\n {\n \"name\": \"timestamp\",\n \"type\": \"long\"\n },\n {\n \"name\": \"status\",\n \"type\": \"string\"\n },\n {\n \"name\": \"message\",\n \"type\": \"string\"\n },\n {\n \"name\": \"artifacts\",\n \"type\": {\n \"name\": \"artifacts\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"policyName\",\n \"type\": \"string\"\n },\n {\n \"name\": \"policyVersion\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }" + } + }, + { + "key": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventOtherFieldsType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"otherFields\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"useCaseName\",\n \"type\": \"string\"\n }\n ]\n }" + } + }, + { + "key": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_LogEventTargetType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\": \"target\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"targetType\",\n \"type\": \"string\"\n },\n {\n \"name\": \"entityInfo\",\n \"type\": {\n \"name\": \"entityInfo\",\n \"type\": \"record\",\n \"fields\": [\n {\n \"name\": \"pnf_DasH_name\",\n \"type\": \"string\"\n }\n ]\n }\n }\n ]\n }" + } + }, + { + "key": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleCL_VesEventType", + "version": "0.0.1" + }, + "schemaFlavour": "Avro", + "schemaDefinition": "{\n \"name\":\"event\",\n \"type\":\"record\",\n \"fields\":[\n {\n \"name\":\"commonEventHeader\",\n \"type\":{\n \"name\":\"commonEventHeader\",\n \"type\":\"record\",\n \"fields\":[\n {\n \"name\":\"domain\",\n \"type\":\"string\"\n },\n {\n \"name\":\"eventId\",\n \"type\":\"string\"\n },\n {\n \"name\":\"eventName\",\n \"type\":\"string\"\n },\n {\n \"name\":\"lastEpochMicrosec\",\n \"type\":\"long\"\n },\n {\n \"name\":\"priority\",\n \"type\":\"string\"\n },\n {\n \"name\":\"reportingEntityName\",\n \"type\":\"string\"\n },\n {\n \"name\":\"sequence\",\n \"type\":\"int\"\n },\n {\n \"name\":\"sourceId\",\n \"type\":\"string\"\n },\n {\n \"name\":\"sourceName\",\n \"type\":\"string\"\n },\n {\n \"name\":\"startEpochMicrosec\",\n \"type\":\"long\"\n },\n {\n \"name\":\"version\",\n \"type\":\"string\"\n },\n {\n \"name\":\"internalHeaderFields\",\n \"type\":{\n \"name\":\"internalHeaderFields\",\n \"type\":\"record\",\n \"fields\":[\n\n ]\n }\n },\n {\n \"name\":\"vesEventListenerVersion\",\n \"type\":\"string\"\n }\n ]\n }\n },\n {\n \"name\":\"otherFields\",\n \"type\":{\n \"name\":\"otherFields\",\n \"type\":\"record\",\n \"fields\":[\n {\n \"name\":\"hashMap\",\n \"type\":{\n \"name\":\"hashMap\",\n \"type\":\"record\",\n \"fields\":[\n {\n \"name\":\"hostname\",\n \"type\":\"string\"\n },\n {\n \"name\":\"pnfName\",\n \"type\":\"string\"\n },\n {\n \"name\":\"pnfId\",\n \"type\":\"string\"\n },\n {\n \"name\":\"ip\",\n \"type\":\"string\"\n }\n ]\n }\n },\n {\n \"name\":\"otherFieldsVersion\",\n \"type\":\"string\"\n }\n ]\n }\n }\n ]\n}" + } + }, + { + "key": { + "name": "SimpleLongType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleLongType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.Long" + } + }, + { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "value": { + "key": { + "name": "SimpleStringType", + "version": "0.0.1" + }, + "schemaFlavour": "Java", + "schemaDefinition": "java.lang.String" + } + } + ] + } + } + } + } + } + } + } +}
\ No newline at end of file diff --git a/csit/apex-pdp/tests/data/onap.policies.apex.pnf.metadataSet.Test.json b/csit/apex-pdp/tests/data/onap.policies.apex.pnf.metadataSet.Test.json new file mode 100644 index 00000000..767adf13 --- /dev/null +++ b/csit/apex-pdp/tests/data/onap.policies.apex.pnf.metadataSet.Test.json @@ -0,0 +1,165 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_1_0", + "topology_template": { + "policies": [ + { + "onap.policies.apex.pnf.metadataSet.Test": { + "type": "onap.policies.native.Apex", + "type_version": "1.0.0", + "name": "onap.policies.apex.pnf.metadataSet.Test", + "version": "1.0.0", + "metadata": { + "metadataSetName": "apex.metadata.pnf", + "metadataSetVersion": "1.0.0" + }, + "properties": { + "engineServiceParameters": { + "name": "NSOApexEngine", + "version": "0.0.1", + "id": 45, + "instanceCount": 4, + "deploymentPort": 12561, + "engineParameters": { + "executorParameters": { + "JAVASCRIPT": { + "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters" + } + }, + "contextParameters": { + "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters", + "schemaParameters": { + "Avro": { + "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters" + } + } + }, + "taskParameters": [ + { + "key": "logUrl", + "value": "https://message-router:3905/events/APEX-CL-MGT2" + } + ] + } + }, + "eventInputParameters": { + "SimpleCL_DCAEConsumer2": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "https://message-router:3905/events/unauthenticated.DCAE_CL_OUTPUT/cl/apex?timeout=30000" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventName": "SimpleCL_VesEvent" + }, + "SimpleCL_AAIResponseConsumer2": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTREQUESTOR", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters", + "parameters": { + "url": "https://aai-sim:6666/aai/v16/network/pnfs/pnf/{pnfName}", + "httpMethod": "GET", + "httpCodeFilter": "[2-5][0-1][0-9]", + "httpHeaders": [ + [ + "Accept", + "application/json" + ], + [ + "Content-Type", + "application/json" + ], + [ + "X-FromAppId", + "dcae-curl" + ], + [ + "x-transactionId", + "9998" + ], + [ + "Authorization", + "Basic QUFJOkFBSQ==" + ] + ] + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventName": "SimpleCL_AAISuccessResponseEvent|SimpleCL_AAIFailureResponseEvent", + "requestorMode": true, + "requestorPeer": "SimpleCL_AAIProducer2", + "requestorTimeout": 2000 + }, + "SimpleCL_CDSConfigModifyResponseConsumer2": { + "carrierTechnologyParameters": { + "carrierTechnology": "GRPC", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters" + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventName": "SimpleCL_CDSConfigModifySuccessResponseEvent|SimpleCL_CDSConfigModifyFailureResponseEvent", + "requestorMode": true, + "requestorPeer": "SimpleCL_CDSConfigModifyRequestProducer2", + "requestorTimeout": 500 + } + }, + "eventOutputParameters": { + "SimpleCL_AAIProducer2": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTREQUESTOR", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters" + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventNameFilter": "SimpleCL_AAIRequestEvent", + "requestorMode": true, + "requestorPeer": "SimpleCL_AAIResponseConsumer2", + "requestorTimeout": 2000 + }, + "SimpleCL_CDSConfigModifyRequestProducer2": { + "carrierTechnologyParameters": { + "carrierTechnology": "GRPC", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.grpc.GrpcCarrierTechnologyParameters", + "parameters": { + "host": "grpc-sim", + "port": 6680, + "username": "ccsdkapps", + "password": "ccsdkapps", + "timeout": 60 + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventNameFilter": "SimpleCL_CDSConfigModifyRequestEvent", + "requestorMode": true, + "requestorPeer": "SimpleCL_CDSConfigModifyResponseConsumer2", + "requestorTimeout": 500 + }, + "SimpleCL_logOutputter2": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "https://message-router:3905/events/APEX-CL-MGT2" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventNameFilter": "SimpleCL_LogEvent" + } + } + } + } + } + ] + } +} diff --git a/csit/api/plans/setup.sh b/csit/api/plans/setup.sh index c8346e38..8a20d93d 100644 --- a/csit/api/plans/setup.sh +++ b/csit/api/plans/setup.sh @@ -30,6 +30,8 @@ bash "${SCRIPTS}"/get-models-examples.sh DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies +NODETEMPLATES=${WORKSPACE}/models/models-examples/src/main/resources/nodetemplates + # create a couple of variations of the policy definitions sed -e 's!Measurement_vGMUX!ADifferentValue!' \ ${DATA}/vCPE.policy.monitoring.input.tosca.json \ @@ -60,3 +62,4 @@ echo MARIADB IP IS "${MARIADB_IP}" ROBOT_VARIABLES="" ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}" ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}" +ROBOT_VARIABLES="${ROBOT_VARIABLES} -v NODETEMPLATES:${NODETEMPLATES}"
\ No newline at end of file diff --git a/csit/api/tests/api-test.robot b/csit/api/tests/api-test.robot index 80e8afd5..c5c7e860 100644 --- a/csit/api/tests/api-test.robot +++ b/csit/api/tests/api-test.robot @@ -54,6 +54,12 @@ CreateNewMonitoringPolicyV2 ${postjson}= Get file ${DATA}/vCPE.policy.monitoring.input.tosca.v2.json CreatePolicy /policy/api/v1/policies 200 ${postjson} onap.restart.tca 2.0.0 + +CreateNodeTemplates + [Documentation] Create node templates in database using specific api + ${postjson}= Get file ${NODETEMPLATES}/nodetemplates.metadatasets.input.tosca.json + CreateNodeTemplate /policy/api/v1/nodetemplates 200 ${postjson} 3 + RetrievePoliciesOfType [Documentation] Retrieve all policies belonging to a specific Policy Type FetchPolicies /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies 2 @@ -66,6 +72,20 @@ RetrieveSpecificPolicy [Documentation] Retrieve a policy named 'onap.restart.tca' and version '1.0.0' using generic api FetchPolicy /policy/api/v1/policies/onap.restart.tca/versions/1.0.0 onap.restart.tca +RetrieveAllNodeTemplates + [Documentation] Retrieve all node templates + FetchNodeTemplates /policy/api/v1/nodetemplates 3 + +RetrieveSpecificNodeTemplate + [Documentation] Retrieve a node template named 'apexMetadata_grpc' and version '1.2.1' using generic api + FetchNodeTemplate /policy/api/v1/nodetemplates/apexMetadata_grpc/versions/1.2.1 apexMetadata_grpc + +DeleteSpecificNodeTemplate + [Documentation] Delete a node template named 'apexMetadata_adaptive' and version '2.3.1' using generic api + DeleteReq /policy/api/v1/nodetemplates/apexMetadata_adaptive/versions/2.3.1 200 + DeleteReq /policy/api/v1/nodetemplates/apexMetadata_adaptive/versions/2.3.1 404 + + DeleteSpecificPolicy [Documentation] Delete a policy named 'onap.restart.tca' and version '1.0.0' using generic api DeleteReq /policy/api/v1/policies/onap.restart.tca/versions/1.0.0 200 @@ -126,3 +146,16 @@ FetchPolicies [Documentation] Fetch all policies ${resp}= GetReq ${url} Length Should Be ${resp.json()['topology_template']['policies']} ${expectedLength} + + +FetchNodeTemplates + [Arguments] ${url} ${expectedLength} + [Documentation] Fetch all node templates + ${resp}= GetReq ${url} + Length Should Be ${resp.json()} ${expectedLength} + +FetchNodeTemplate + [Arguments] ${url} ${keyword} + [Documentation] Fetch the specific node template + ${resp}= GetReq ${url} + Dictionary Should Contain Value ${resp.json()[0]} ${keyword}
\ No newline at end of file diff --git a/csit/common-library.robot b/csit/common-library.robot index c2d1de7f..aa737a02 100644 --- a/csit/common-library.robot +++ b/csit/common-library.robot @@ -57,6 +57,14 @@ CreatePolicy Run Keyword If ${expectedstatus}==200 Dictionary Should Contain Key ${resp.json()['topology_template']['policies'][0]} ${policyname} Run Keyword If ${expectedstatus}==200 Should Be Equal As Strings ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']} ${policyversion} +CreateNodeTemplate + [Arguments] ${url} ${expectedstatus} ${postjson} ${nodeTemplateListLength} + [Documentation] Create the node templates + ${policyadmin}= PolicyAdminAuth + ${resp}= PerformPostRequest ${POLICY_API_IP} ${url} ${expectedstatus} ${postjson} \ ${policyadmin} + Run Keyword If ${expectedstatus}==200 Length Should Be ${resp.json()['topology_template']['node_templates']} ${nodeTemplateListLength} + + QueryPdpGroups [Documentation] Verify pdp group query - supports upto 2 groups [Arguments] ${groupsLength} ${group1Name} ${group1State} ${policiesLengthInGroup1} ${group2Name} ${group2State} ${policiesLengthInGroup2} @@ -73,13 +81,17 @@ QueryPdpGroups QueryPolicyAudit [Arguments] ${url} ${expectedstatus} ${pdpGroup} ${pdpType} ${policyName} ${expectedAction} ${policyadmin}= PolicyAdminAuth - ${resp}= PerformGetRequest ${POLICY_PAP_IP} ${url} ${expectedstatus} recordCount=1 ${policyadmin} - Should Be Equal As Strings ${resp.json()[0]['pdpGroup']} ${pdpGroup} - Should Be Equal As Strings ${resp.json()[0]['pdpType']} ${pdpType} - Should Be Equal As Strings ${resp.json()[0]['policy']['name']} ${policyName} - Should Be Equal As Strings ${resp.json()[0]['policy']['version']} 1.0.0 - Should Be Equal As Strings ${resp.json()[0]['action']} ${expectedAction} - Should Be Equal As Strings ${resp.json()[0]['user']} policyadmin + ${resp}= PerformGetRequest ${POLICY_PAP_IP} ${url} ${expectedstatus} recordCount=2 ${policyadmin} + Log Received response from queryPolicyAudit ${resp.text} + FOR ${responseEntry} IN @{resp.json()} + Exit For Loop IF '${responseEntry['policy']['name']}'=='${policyName}' + END + Should Be Equal As Strings ${responseEntry['pdpGroup']} ${pdpGroup} + Should Be Equal As Strings ${responseEntry['pdpType']} ${pdpType} + Should Be Equal As Strings ${responseEntry['policy']['name']} ${policyName} + Should Be Equal As Strings ${responseEntry['policy']['version']} 1.0.0 + Should Be Equal As Strings ${responseEntry['action']} ${expectedAction} + Should Be Equal As Strings ${responseEntry['user']} policyadmin QueryPolicyStatus [Documentation] Verify policy deployment status diff --git a/csit/compose-grafana.yml b/csit/compose-grafana.yml index 400593ab..e487a705 100644 --- a/csit/compose-grafana.yml +++ b/csit/compose-grafana.yml @@ -25,6 +25,7 @@ services: env_file: config/db/db.conf volumes: - ./config/db:/docker-entrypoint-initdb.d:ro + - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql expose: - 3306 policy-db-migrator: diff --git a/csit/config/clamp/application-smoke.properties b/csit/config/clamp/application-smoke.properties new file mode 100644 index 00000000..40578077 --- /dev/null +++ b/csit/config/clamp/application-smoke.properties @@ -0,0 +1,197 @@ +### +# ============LICENSE_START======================================================= +# ONAP POLICY-DOCKER +# ================================================================================ +# Copyright (C) 2022 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============================================ +# =================================================================== +# +### + +### Set the port for HTTP or HTTPS protocol (Controlled by Spring framework, only one at a time). +### (See below for the parameter 'server.http.port' if you want to have both enabled) +### To have only HTTP, keep the lines server.ssl.* commented +### To have only HTTPS enabled, uncomment the server.ssl.* lines and specify a right keystore location +### server.port=8080 +### Settings for HTTPS (this automatically enables the HTTPS on the port 'server.port') +#server.ssl.key-store=file:/tmp/mykey.jks +#server.ssl.key-store-password=pass +#server.ssl.key-password=pass + +### In order to be user friendly when HTTPS is enabled, +### you can add another HTTP port that will be automatically redirected to HTTPS +### by enabling this parameter (server.http.port) and set it to another port (80 or 8080, 8090, etc ...) +#server.http-to-https-redirection.port=8090 + +### HTTP Example: +###-------------- +### server.port=8080 + +### HTTPS Example: +### -------------- +### server.port=8443 +server.ssl.key-store=file:/opt/policy/clamp/policy-keystore +server.ssl.key-store-password=enc:qWxBtY7w9h5Hl72vQKgI5G1qqyRIuBarQqMkVDHqZmd +server.ssl.key-password=enc:qWxBtY7w9h5Hl72vQKgI5G1qqyRIuBarQqMkVDHqZmd +server.ssl.key-store-type=jks +server.port=8443 +## Config part for Server certificates +# Can be a classpath parameter instead of file:/ +#server.ssl.key-store=classpath:/clds/aaf/org.onap.clamp.p12 +#server.ssl.key-store-password=enc:YZs7M6IftyPjHniTa6J7G2416hssb8qI-Av8D1b8pPS +#server.ssl.key-password=enc:YZs7M6IftyPjHniTa6J7G2416hssb8qI-Av8D1b8pPS + +## Config part for Client certificates +server.ssl.client-auth=want +#server.ssl.trust-store=classpath:/clds/aaf/truststoreONAPall.jks +#server.ssl.trust-store-password=enc:iDnPBBLq_EMidXlMa1FEuBR8TZzYxrCg66vq_XfLHdJ +server.ssl.trust-store=file:/opt/policy/clamp/policy-truststore +server.ssl.trust-store-password=enc:qWxBtY7w9h5Hl72vQKgI5G1qqyRIuBarQqMkVDHqZmd + +# The key file used to decode the key store and trust store password +# If not defined, the key store and trust store password will not be decrypted +#clamp.config.keyFile=classpath:/clds/aaf/org.onap.clamp.keyfile +clamp.config.keyFile=file:/opt/policy/clamp/clamp-be-keyfile + +#server.http-to-https-redirection.port=8080 + +server.servlet.context-path=/ +#Modified engine-rest applicationpath +spring.profiles.active=clamp-default,clamp-default-user,clamp-sdc-controller,clamp-ssl-config,clamp-policy-controller,default-dictionary-elements +spring.http.converters.preferred-json-mapper=gson + +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. + +camel.springboot.consumer-template-cache-size=1000 +camel.springboot.producer-template-cache-size=1000 +camel.springboot.jmx-enabled=true +camel.defaultthreadpool.poolsize=10 +camel.defaultthreadpool.maxpoolsize=20 +camel.defaultthreadpool.maxqueuesize=1000 +camel.defaultthreadpool.keepaliveTime=60 +camel.defaultthreadpool.rejectpolicy=CallerRuns +camel.springboot.xml-routes=classpath:/clds/camel/routes/*.xml +camel.springboot.xml-rests=classpath:/clds/camel/rest/*.xml +camel.springboot.backlog-tracing=true +camel.springboot.tracing=true + +#clds datasource connection details +spring.datasource.driverClassName=org.mariadb.jdbc.Driver +spring.datasource.url=jdbc:mariadb:sequential://${MARIADB_HOST}:3306/policyclamp?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3 +spring.datasource.username=policy_user +spring.datasource.password=policy_user +spring.datasource.validationQuery=SELECT 1 +spring.datasource.validationQueryTimeout=20000 +spring.datasource.validationInterval=30000 +spring.datasource.testWhileIdle = true +spring.datasource.minIdle = 0 +spring.datasource.initialSize=0 +# Automatically test whether a connection provided is good or not +spring.datasource.testOnBorrow=true +spring.datasource.ignoreExceptionOnPreLoad=true +# control the sql db initialization (from schema.sql and data.sql) +spring.datasource..initialize=false + +spring.jpa.properties.javax.persistence.schema-generation.database.action=none +s#pring.jpa.properties.javax.persistence.schema-generation.create-source=metadata +#spring.jpa.properties.javax.persistence.schema-generation.scripts.action=create +#spring.jpa.properties.javax.persistence.schema-generation.scripts.create-target=create.sql +# disable Hibernate DDL generation because the schema will be generated from a sql script +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect +spring.jpa.properties.hibernate.ddl-auto=validate +spring.jpa.properties.hibernate.hbm2ddl.delimiter=; +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.hibernate.use-new-id-generator-mappings=true + +# Whether to enable logging of SQL statements. +#spring.jpa.show-sql=true + +#Async Executor default Parameters +async.core.pool.size=10 +async.max.pool.size=20 +async.queue.capacity=500 + +#For logback file +#clamp.config.logback.path= +clamp.config.logback.filename=logback-default.xml +#The log folder that will be used in logback.xml file +clamp.config.log.path=/var/log/onap/clamp +clamp.config.files.systemProperties=classpath:/system.properties +clamp.config.files.cldsUsers=classpath:/clds/clds-users.json +clamp.config.files.globalProperties=classpath:/clds/templates/globalProperties.json +clamp.config.files.sdcController=classpath:/clds/sdc-controllers-config.json + +clamp.config.httpclient.socketTimeout=60000 +clamp.config.httpclient.connectTimeout=10000 + +# +# Configuration Settings for Policy Engine Components +clamp.config.policy.api.url={{PROTOCOL}}${POLICY_API_HOST}:6969 +clamp.config.policy.api.userName=policyadmin +clamp.config.policy.api.password=zb!XztG34 +clamp.config.policy.pap.url={{PROTOCOL}}${POLICY_PAP_HOST}:6969 +clamp.config.policy.pap.userName=policyadmin +clamp.config.policy.pap.password=zb!XztG34 + +# +# Sdc service properties +clamp.config.sdc.csarFolder = /tmp/sdc-controllers + +#DCAE Inventory Url Properties +clamp.config.dcae.inventory.url={{PROTOCOL}}localhost:8085 +clamp.config.dcae.intentory.retry.interval=10000 +clamp.config.dcae.intentory.retry.limit=5 + +#DCAE Deployment Url Properties +clamp.config.dcae.deployment.url={{PROTOCOL}}localhost:8085 +clamp.config.dcae.deployment.userName=test +clamp.config.dcae.deployment.password=test + +#Define user permission related parameters, the permission type can be changed but MUST be redefined in clds-users.properties in that case ! +clamp.config.security.permission.type.cl=org.onap.clamp.clds.cl +clamp.config.security.permission.type.cl.manage=org.onap.clamp.clds.cl.manage +clamp.config.security.permission.type.cl.event=org.onap.clamp.clds.cl.event +clamp.config.security.permission.type.filter.vf=org.onap.clamp.clds.filter.vf +clamp.config.security.permission.type.template=org.onap.clamp.clds.template +clamp.config.security.permission.type.tosca=org.onap.clamp.clds.tosca +clamp.config.security.permission.type.policies=org.onap.clamp.clds.policies +#This one indicates the type of instances (dev|prod|perf...), this must be set accordingly in clds-users.properties +clamp.config.security.permission.instance=dev +clamp.config.security.authentication.class=org.onap.aaf.cadi.principal.X509Principal, org.onap.aaf.cadi.principal.CachedBasicPrincipal + +## Tosca converter +clamp.config.tosca.converter.json.schema.templates=classpath:/clds/tosca-converter/templates.json +clamp.config.tosca.converter.default.datatypes=classpath:/clds/tosca-converter/default-tosca-types.yaml +clamp.config.tosca.converter.dictionary.support.enabled=true + +# Configuration settings for CDS +clamp.config.cds.url={{PROTOCOL}}cds-blueprints-processor-http:8080 +clamp.config.cds.userName=ccsdkapps +clamp.config.cds.password=ccsdkapps + +# Configuration settings for ControlLoop Runtime Rest API +clamp.config.acm.runtime.url={{PROTOCOL}}${RUNTIME_HOST}:6969 +clamp.config.acm.runtime.userName=runtimeUser +clamp.config.acm.runtime.password=zb!XztG34 diff --git a/csit/config/clamp/gui/application.yaml b/csit/config/clamp/gui/application.yaml new file mode 100644 index 00000000..a0a6c224 --- /dev/null +++ b/csit/config/clamp/gui/application.yaml @@ -0,0 +1,43 @@ +# +# ===========LICENSE_START==================================================== +# Copyright (C) 2022 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. +# ============LICENSE_END===================================================== +# +server: + port: 2443 + ssl: + enabled: {{HTTPS_ENABLED}} + enabled-protocols: TLSv1.2 + client-auth: want + key-store: file:${KEYSTORE} + key-store-password: ${KEYSTORE_PASSWD} + trust-store: file:${TRUSTSTORE} + trust-store-password: ${TRUSTSTORE_PASSWD} + +clamp: + url: https://policy-clamp-be:8443 + disable-ssl-validation: false + disable-ssl-hostname-check: true + +apex-editor: + upload-url: + upload-userid: + +management: + endpoints: + web: + exposure: + include: health, metrics, prometheus + diff --git a/csit/config/clamp/org.onap.clamp.keyfile b/csit/config/clamp/org.onap.clamp.keyfile new file mode 100644 index 00000000..c2521fc8 --- /dev/null +++ b/csit/config/clamp/org.onap.clamp.keyfile @@ -0,0 +1,27 @@ +kzJMxgphAoBxJz1_vYjxx-V87fahDQdYUqBIyWhZp8ojXdNpmB-96T9CvgJScJynbLcqw2Cj2CYx +wd97vFOYhlyz5zK3tSyIuydOkVGJsJ1S4PviTtjhiJvNourJNDHgtas1Y1y2fQ5_8aVxj-s4W72N +MNYhkeTinaQx_d_5hkBPABJlgCxKLnmxHo2jAJktnZYa5t5h48m7KiUx_RVEkQVtEvux-7vgXaC4 +ymTXj6zI9XoMTVxM0OAl4y7kBiUoOUaxS4tVKV34RJYNNqBjiUTQa_ag-KeUacRABk1ozfwzpvE5 +Sjz8WCy0L-LtCQnapkhKLt04ndCZtw8LDJ-Zz0ZgR2PVIPpTgs9VnVuOi5jf4LzTrtUatvOWkKB9 +drXKzp6cNXnZ0jkD3vV1BzqzhynKnZR2o_ilZv5CTTdpGUt906N_DwZuX6LfcV_7yvjX42bTfeIR +ycPtodFPXlqqn9VUyh5nOauJlnOHAQmSDzjMEgjy17nQX3Ad7s4BfvujzUl-d0MqB_HCKbaW32UT +xcY-0JfI1Y-2IdYfIkUdhVmxop6sSg0jAobWzgCRoRQkP3a2iIlKdfMyskshoWKIDVtlr-3fkDEb +x_b_o1rRoUfzUzxEdphaUAq80Sc0i77ZLT3KF9vJOhyU_pBnApYFxVk7Hkk3VRxJKS7jyL4H7k1x +2m5-2G8fB9XbYZT82xmAquNx4oBdpwj3_ncGF9YRF94K6NZgqemT5iWhpXMoelSU1blASgT3qlTm +B6YgbD5owExNHwRVd8KeRsYrOnBWUiktsIhXFhNZmDUNWMFGQ2KxEcOt1tJwsQDehJFgY_l1JQ0d +643wJ7rTJkGkYX309cydRQUX4Z0ckSQS9LhMd9stxF5XOHlvHdbW0pXNS7SaLbzKCVldUgncvI6z +KWkwrWbftrZK2RT1UZKNngQDMGOk9OhbHAs7YzhFNFARZoRNobIv5tZVDomy-YgJb9-mD1UTkRBL +WXOyoryDlgKrgFsgHclGDI1UFO5N-JfebPKxbP505f4924hxF2r8bspvVW8ZtHQo_SJmhauOX8n_ +eN_LK43LB9k53WAHZ_utvs0s6wGf7I73oj_N7DIFaHTDSm_MhDsFDLVG_wUzCpZ5FP2uL3nnqMkF +Ob-l1fywfmfOmrz1BY6g4sRPPeWXuclYTnRnDRu5VQyc7_aBEVkyt3zw0JEex0vJNFUJl3pYjS55 +GplAB6p7VbS9ceZEtc5Z3qFIVHEzKWZxT190E23t_LlMuEoQ1zaqdHynNaMs61-q_A2aHRiTqlRm +7FahVB3RX4AVLl23mu4u3A9ZDXc40nzjs9mwOVsuKlPvQ2rteDUG1njr2R1_V_MyQuoJjdfbIkPG +4eF0QzlSMdbkeprdQxSfV5YT-yPpkBxSsCMMM43sKm4Hy7_CUdvp4Iayrp3vtK3oYMuCGi6qTadz +KzxfTf8meKan3eMZW4RLByyniH5nQnX_KGfBly05AmFyVH_j0fyOg-48kDhtEKeqmDnP4C01jOID +Ip_AKaB6e0GwsHzVTLZOklHwu_qzsaTzchBOG_dJJju7bxY7qv78Pa92wZIP311gSCVbc-gxxbsR +qI555twmYEoasFm4xz10OYDOkvM1E1Rtxu3ymRLZpe6AoyFBVzEW7Dncdw7O98dKcgrp8ZlQ_8Wg +5zZH0Cic7xnIZ0bNZyQXw56CSUiXVWuwVY3e0djXP3F-FO5gP8VTxbpW4C0t6McXAOlvSEfFKxN7 +u6OBeOKwjrtHaJk2ghF8MUcpDXanhbAgHez9larGlscCkgvoRLNaRH9GIdSVgY3HtNhJRaJIq01S +OGeBjC5J4o-nTrqRFkwyDAYcPL373eYX1dBFFVHR-4q50H9m_zMxZHXETafxzV4DT3Qi8Sxh3uaS +ZX7mRaNaOE0uC1n87_IZ9WhrwIQaZng2lnd9yZ-4rx8fB8WA8KQzifzvHAcMb_HV10JWGaz5A2Rm +EXDsfexQC6CqYg5rdzzlNWDPNlHy5ubyz7fRXZ99uIwBY9aJcvCXCiEXJkC6utj3NcXQrJmk
\ No newline at end of file diff --git a/csit/config/clamp/policy-clamp-create-tables.sql b/csit/config/clamp/policy-clamp-create-tables.sql new file mode 100644 index 00000000..5d655ad5 --- /dev/null +++ b/csit/config/clamp/policy-clamp-create-tables.sql @@ -0,0 +1,275 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 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========================================================= + */ + +create table if not exists dictionary ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + dictionary_second_level integer, + dictionary_type varchar(255), + primary key (name) + ) engine=InnoDB; + +create table if not exists dictionary_elements ( + short_name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + description varchar(255) not null, + name varchar(255) not null, + subdictionary_name varchar(255), + type varchar(255) not null, + primary key (short_name) + ) engine=InnoDB; + +create table if not exists dictionary_to_dictionaryelements ( + dictionary_name varchar(255) not null, + dictionary_element_short_name varchar(255) not null, + primary key (dictionary_name, dictionary_element_short_name) + ) engine=InnoDB; + +create table if not exists hibernate_sequence ( + next_val bigint +) engine=InnoDB; + +insert into hibernate_sequence values ( 1 ); + +create table if not exists loop_element_models ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + blueprint_yaml MEDIUMTEXT, + dcae_blueprint_id varchar(255), + loop_element_type varchar(255) not null, + short_name varchar(255), + primary key (name) + ) engine=InnoDB; + +create table if not exists loop_logs ( + id bigint not null, + log_component varchar(255) not null, + log_instant datetime(6) not null, + log_type varchar(255) not null, + message MEDIUMTEXT not null, + loop_id varchar(255) not null, + primary key (id) + ) engine=InnoDB; + +create table if not exists loop_templates ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + allowed_loop_type varchar(255), + blueprint_yaml MEDIUMTEXT, + dcae_blueprint_id varchar(255), + maximum_instances_allowed integer, + svg_representation MEDIUMTEXT, + unique_blueprint boolean default false, + service_uuid varchar(255), + primary key (name) + ) engine=InnoDB; + +create table if not exists loopelementmodels_to_policymodels ( + loop_element_name varchar(255) not null, + policy_model_type varchar(255) not null, + policy_model_version varchar(255) not null, + primary key (loop_element_name, policy_model_type, policy_model_version) + ) engine=InnoDB; + +create table if not exists loops ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + dcae_deployment_id varchar(255), + dcae_deployment_status_url varchar(255), + global_properties_json json, + last_computed_state varchar(255) not null, + svg_representation MEDIUMTEXT, + loop_template_name varchar(255) not null, + service_uuid varchar(255), + primary key (name) + ) engine=InnoDB; + +create table if not exists loops_to_microservicepolicies ( + loop_name varchar(255) not null, + microservicepolicy_name varchar(255) not null, + primary key (loop_name, microservicepolicy_name) + ) engine=InnoDB; + +create table if not exists looptemplates_to_loopelementmodels ( + loop_element_model_name varchar(255) not null, + loop_template_name varchar(255) not null, + flow_order integer not null, + primary key (loop_element_model_name, loop_template_name) + ) engine=InnoDB; + +create table if not exists micro_service_policies ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + configurations_json json, + json_representation json not null, + pdp_group varchar(255), + pdp_sub_group varchar(255), + context varchar(255), + dcae_blueprint_id varchar(255), + dcae_deployment_id varchar(255), + dcae_deployment_status_url varchar(255), + device_type_scope varchar(255), + shared bit not null, + loop_element_model_id varchar(255), + policy_model_type varchar(255), + policy_model_version varchar(255), + primary key (name) + ) engine=InnoDB; + +create table if not exists operational_policies ( + name varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + configurations_json json, + json_representation json not null, + pdp_group varchar(255), + pdp_sub_group varchar(255), + loop_element_model_id varchar(255), + policy_model_type varchar(255), + policy_model_version varchar(255), + loop_id varchar(255) not null, + primary key (name) + ) engine=InnoDB; + +create table if not exists policy_models ( + policy_model_type varchar(255) not null, + version varchar(255) not null, + created_by varchar(255), + created_timestamp datetime(6) not null, + updated_by varchar(255), + updated_timestamp datetime(6) not null, + policy_acronym varchar(255), + policy_tosca MEDIUMTEXT, + policy_pdp_group json, + primary key (policy_model_type, version) + ) engine=InnoDB; + +create table if not exists services ( + service_uuid varchar(255) not null, + name varchar(255) not null, + resource_details json, + service_details json, + version varchar(255), + primary key (service_uuid) + ) engine=InnoDB; + +alter table dictionary_to_dictionaryelements + add constraint FK68hjjinnm8nte2owstd0xwp23 + foreign key (dictionary_element_short_name) + references dictionary_elements (short_name); + +alter table dictionary_to_dictionaryelements + add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe + foreign key (dictionary_name) + references dictionary (name); + +alter table loop_logs + add constraint FK1j0cda46aickcaoxqoo34khg2 + foreign key (loop_id) + references loops (name); + +alter table loop_templates + add constraint FKn692dk6281wvp1o95074uacn6 + foreign key (service_uuid) + references services (service_uuid); + +alter table loopelementmodels_to_policymodels + add constraint FK23j2q74v6kaexefy0tdabsnda + foreign key (policy_model_type, policy_model_version) + references policy_models (policy_model_type, version); + +alter table loopelementmodels_to_policymodels + add constraint FKjag1iu0olojfwryfkvb5o0rk5 + foreign key (loop_element_name) + references loop_element_models (name); + +alter table loops + add constraint FK844uwy82wt0l66jljkjqembpj + foreign key (loop_template_name) + references loop_templates (name); + +alter table loops + add constraint FK4b9wnqopxogwek014i1shqw7w + foreign key (service_uuid) + references services (service_uuid); + +alter table loops_to_microservicepolicies + add constraint FKle255jmi7b065fwbvmwbiehtb + foreign key (microservicepolicy_name) + references micro_service_policies (name); + +alter table loops_to_microservicepolicies + add constraint FK8avfqaf7xl71l7sn7a5eri68d + foreign key (loop_name) + references loops (name); + +alter table looptemplates_to_loopelementmodels + add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9 + foreign key (loop_element_model_name) + references loop_element_models (name); + +alter table looptemplates_to_loopelementmodels + add constraint FKj29yxyw0x7ue6mwgi6d3qg748 + foreign key (loop_template_name) + references loop_templates (name); + +alter table micro_service_policies + add constraint FKqvvdypacbww07fuv8xvlvdjgl + foreign key (loop_element_model_id) + references loop_element_models (name); + +alter table micro_service_policies + add constraint FKn17j9ufmyhqicb6cvr1dbjvkt + foreign key (policy_model_type, policy_model_version) + references policy_models (policy_model_type, version); + +alter table operational_policies + add constraint FKi9kh7my40737xeuaye9xwbnko + foreign key (loop_element_model_id) + references loop_element_models (name); + +alter table operational_policies + add constraint FKlsyhfkoqvkwj78ofepxhoctip + foreign key (policy_model_type, policy_model_version) + references policy_models (policy_model_type, version); + +alter table operational_policies + add constraint FK1ddoggk9ni2bnqighv6ecmuwu + foreign key (loop_id) + references loops (name); diff --git a/csit/config/db/db.sh b/csit/config/db/db.sh index d1300091..0363ed8a 100755 --- a/csit/config/db/db.sh +++ b/csit/config/db/db.sh @@ -1,5 +1,6 @@ #!/bin/bash -xv # Copyright 2019,2021 AT&T Intellectual Property. All rights reserved +# Modifications Copyright (c) 2022 Nordix Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,10 +14,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -for db in migration pooling policyadmin operationshistory clampacm +for db in migration pooling policyadmin operationshistory clampacm policyclamp do mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "CREATE DATABASE IF NOT EXISTS ${db};" mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "GRANT ALL PRIVILEGES ON \`${db}\`.* TO '${MYSQL_USER}'@'%' ;" done mysql -uroot -p"${MYSQL_ROOT_PASSWORD}" --execute "FLUSH PRIVILEGES;" +mysql -u"${MYSQL_USER}" -p"${MYSQL_PASSWORD}" -f policyclamp < /tmp/policy-clamp-create-tables.sql diff --git a/csit/docker-compose-all.yml b/csit/docker-compose-all.yml index 071105b3..2ac9b90d 100644 --- a/csit/docker-compose-all.yml +++ b/csit/docker-compose-all.yml @@ -27,6 +27,7 @@ services: env_file: config/db/db.conf volumes: - ./config/db:/docker-entrypoint-initdb.d:ro + - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql expose: - 3306 policy-db-migrator: diff --git a/csit/docker-compose-gui-smoke.yml b/csit/docker-compose-gui-smoke.yml new file mode 100644 index 00000000..3951cb2f --- /dev/null +++ b/csit/docker-compose-gui-smoke.yml @@ -0,0 +1,361 @@ +# +# ===========LICENSE_START==================================================== +# Copyright (C) 2022 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. +# ============LICENSE_END===================================================== +# +version: '2' +services: + mariadb: + image: nexus3.onap.org:10001/mariadb:${POLICY_MARIADB_VER} + container_name: mariadb + hostname: mariadb + command: ['--lower-case-table-names=1', '--wait_timeout=28800'] + env_file: ./config/db/db.conf + volumes: + - ./config/clamp/policy-clamp-create-tables.sql:/tmp/policy-clamp-create-tables.sql + - ./config/db:/docker-entrypoint-initdb.d:ro + ports: + - "3306:3306" + policy-db-migrator: + image: nexus3.onap.org:10001/onap/policy-db-migrator:${POLICY_DOCKER_VERSION} + container_name: policy-db-migrator + hostname: policy-db-migrator + depends_on: + - mariadb + expose: + - 6824 + env_file: ./config/db/db.conf + environment: + SQL_DB: policyadmin + SQL_HOST: mariadb + volumes: + - ./db_migrator_policy_init.sh:/opt/app/policy/bin/db_migrator_policy_init.sh:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', + '/opt/app/policy/bin/db_migrator_policy_init.sh', + 'mariadb', '3306' + ] + simulator: + image: nexus3.onap.org:10001/onap/policy-models-simulator:${POLICY_MODELS_VERSION} + container_name: simulator + hostname: simulator + networks: + default: + aliases: + - message-router + - aai-sim + - grpc-sim + - sdnc-sim + - so-sim + - vfc-sim + volumes: + - ./config/sim-all:/opt/app/policy/simulators/etc/mounted:ro + - ./config/ks.jks:/opt/app/policy/simulators/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/simulators/etc/ssl/policy-truststore:ro + expose: + - 6666 + - 6668 + - 6669 + - 6670 + - 3905 + - 6680 + api: + image: nexus3.onap.org:10001/onap/policy-api:${POLICY_API_VERSION} + container_name: policy-api + depends_on: + - policy-db-migrator + hostname: policy-api + expose: + - 6969 + volumes: + - ./config/ks.jks:/opt/app/policy/api/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/api/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/api/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-api.sh', + 'mariadb', '3306', + 'policy-db-migrator', '6824' + ] + pap: + image: nexus3.onap.org:10001/onap/policy-pap:${POLICY_PAP_VERSION} + container_name: policy-pap + depends_on: + - mariadb + - simulator + - api + hostname: policy-pap + expose: + - 6969 + volumes: + - ./config/pap/papParameters.yaml:/opt/app/policy/pap/etc/papParameters.yaml:ro + - ./config/pap/groups.json:/opt/app/policy/pap/etc/mounted/groups.json:ro + - ./config/ks.jks:/opt/app/policy/pap/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/pap/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/pap/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pap.sh', + 'mariadb', '3306', + 'message-router', '3905', + 'api', '6969' + ] + xacml-pdp: + image: nexus3.onap.org:10001/onap/policy-xacml-pdp:${POLICY_XACML_PDP_VERSION} + container_name: policy-xacml-pdp + depends_on: + - mariadb + - simulator + - pap + hostname: policy-xacml-pdp + expose: + - 6969 + volumes: + - ./config/xacml-pdp/defaultConfig.json:/opt/app/policy/pdpx/etc/defaultConfig.json:ro + - ./config/ks.jks:/opt/app/policy/pdpx/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/pdpx/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro + entrypoint: ./wait_for_port.sh + command: [ + '-c', './policy-pdpx.sh', + 'mariadb', '3306', + 'message-router', '3905', + 'pap', '6969' + ] + drools: + image: nexus3.onap.org:10001/onap/policy-drools:${POLICY_DROOLS_VERSION} + container_name: drools + depends_on: + - mariadb + - simulator + - pap + hostname: drools + expose: + - 6969 + - 9696 + volumes: + - ./config/drools/custom:/tmp/policy-install/config:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - ./config/drools/env/base.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-entrypoint.sh boot', + 'mariadb', '3306', + 'message-router', '3905' + ] + drools-apps: + image: nexus3.onap.org:10001/onap/policy-pdpd-cl:${POLICY_DROOLS_APPS_VERSION} + container_name: drools-apps + depends_on: + - mariadb + - simulator + - pap + - xacml-pdp + hostname: drools-apps + expose: + - 6969 + - 9696 + volumes: + - ./config/drools-apps/custom:/tmp/policy-install/config:ro + - ./config/feature-lifecycle.properties:/opt/app/policy/features/lifecycle/config/feature-lifecycle.properties:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + env_file: + - ./config/drools-apps/env/base.conf + - ./config/drools-apps/env/feature-healthcheck.conf + - ./config/drools-apps/env/feature-pooling-dmaap.conf + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/bin/pdpd-cl-entrypoint.sh boot', + 'mariadb', '3306', + 'message-router', '3905', + 'pap', '6969', + 'aai-sim', '6666', + 'sdnc-sim', '6668', + 'so-sim', '6669', + 'vfc-sim', '6670' + ] + apex-pdp: + image: nexus3.onap.org:10001/onap/policy-apex-pdp:${POLICY_APEX_PDP_VERSION} + container_name: policy-apex-pdp + depends_on: + - mariadb + - simulator + - pap + hostname: policy-apex-pdp + expose: + - 6969 + - 23324 + volumes: + - ./config/apex-pdp/OnapPfConfig.json:/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json:ro + - ./config/ks.jks:/opt/app/policy/apex-pdp/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/apex-pdp/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', '/opt/app/policy/apex-pdp/bin/apexOnapPf.sh -c /opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', + 'mariadb', '3306', + 'message-router', '3905', + 'pap', '6969' + ] + distribution: + image: nexus3.onap.org:10001/onap/policy-distribution:${POLICY_DISTRIBUTION_VERSION} + container_name: policy-distribution + depends_on: + - mariadb + - api + - pap + - apex-pdp + hostname: policy-distribution + volumes: + - ./config/distribution/defaultConfig.json:/opt/app/policy/distribution/etc/defaultConfig.json:ro + - ./config/ks.jks:/opt/app/policy/distribution/etc/ssl/policy-keystore:ro + - ./config/policy-truststore:/opt/app/policy/distribution/etc/ssl/policy-truststore:ro + - ./distribution/config/temp/:/opt/app/policy/distribution/etc/temp/:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './policy-dist.sh', + 'mariadb', '3306', + 'message-router', '3905', + 'pap', '6969', + 'apex-pdp', '6969' + ] + policy-clamp-runtime-acm: + image: nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-runtime-acm + depends_on: + - mariadb + - simulator + - policy-clamp-ac-http-ppnt + - policy-clamp-ac-k8s-ppnt + - policy-clamp-ac-pf-ppnt + hostname: policy-clamp-runtime-acm + expose: + - 6969 + volumes: + - ./config/policy-truststore:/opt/app/policy/clamp/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + - ./config/clamp/AcRuntimeParameters.yaml:/opt/app/policy/clamp/config/AcRuntimeParameters.yaml + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './acm-runtime.sh', + 'message-router', '3905' + ] + policy-clamp-ac-http-ppnt: + image: nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-ac-http-ppnt + depends_on: + - simulator + hostname: policy-clamp-ac-http-ppnt + expose: + - 6971 + volumes: + - ./config/policy-truststore:/opt/app/policy/clamp/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './http-participant.sh', + 'message-router', '3905' + ] + policy-clamp-ac-k8s-ppnt: + image: nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-ac-k8s-ppnt + depends_on: + - simulator + hostname: policy-clamp-ac-k8s-ppnt + expose: + - 6972 + volumes: + - ./config/policy-truststore:/opt/app/policy/clamp/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './kubernetes-participant.sh', + 'message-router', '3905' + ] + policy-clamp-ac-pf-ppnt: + image: nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-ac-pf-ppnt + depends_on: + - simulator + - api + hostname: policy-clamp-ac-pf-ppnt + expose: + - 6973 + volumes: + - ./config/policy-truststore:/opt/app/policy/clamp/etc/ssl/policy-truststore:ro + - ./wait_for_port.sh:/opt/app/policy/bin/wait_for_port.sh:ro + - ./config/ks.jks:/opt/app/policy/clamp/etc/ssl/policy-keystore:ro + - ./config/clamp/PolicyParticipantParameters.yaml:/opt/app/policy/clamp/config/PolicyParticipantParameters.yaml:ro + entrypoint: /opt/app/policy/bin/wait_for_port.sh + command: [ + '-c', './policy-participant.sh', + 'message-router', '3905' + ] + + policy-gui: + image: nexus3.onap.org:10001/onap/policy-gui:latest + container_name: policy-gui + depends_on: + - policy-clamp-backend + hostname: policy-gui + environment: + CLAMP_URL: https://policy-clamp-backend:8443 + CLAMP_DISABLE_SSL_VALIDATION: "true" + SERVER_SSL_CLIENT_AUTH: want + KEYSTORE_PASSWD: Pol1cy_0nap + TRUSTSTORE_PASSWD: Pol1cy_0nap + ports: + - "2443:2443" + expose: + - 2443 + volumes: + - ./config/clamp/gui/application.yaml:/opt/app/policy/gui/etc/application.yaml + - ./config/policy-truststore:/opt/app/policy/gui/etc/mounted/policy-truststore:ro + - ./config/ks.jks:/opt/app/policy/gui/etc/mounted/policy-keystore:ro + - ./wait_for_port.sh:/opt/app/policy/gui/bin/wait_for_port.sh:ro + entrypoint: ./policy-gui.sh + working_dir: /opt/app/policy/gui/bin + command: ./policy-gui.sh + + policy-clamp-backend: + image: nexus3.onap.org:10001/onap/policy-clamp-backend:${POLICY_CLAMP_VERSION} + container_name: policy-clamp-backend + depends_on: + - policy-clamp-runtime-acm + - distribution + hostname: policy-clamp-backend + environment: + POLICY_API_HOST: api + POLICY_PAP_HOST: pap + MARIADB_HOST: mariadb + RUNTIME_HOST: policy-clamp-runtime-acm + ports: + - "8443:8443" + expose: + - 8443 + volumes: + - ./config/clamp/application-smoke.properties:/opt/policy/clamp/application-smoke.properties:ro + - ./config/policy-truststore:/opt/policy/clamp/policy-truststore:ro + - ./config/ks.jks:/opt/policy/clamp/policy-keystore:ro + - ./config/clamp/org.onap.clamp.keyfile:/opt/policy/clamp/clamp-be-keyfile:ro + working_dir: /opt/policy/clamp + command: java -Djava.security.egd=file:/dev/./urandom -XX:MinRAMPercentage=50 -XX:MaxRAMPercentage=75 -jar ./policy-clamp-backend.jar --spring.config.name=application-smoke --spring.config.location=optional:classpath:/,optional:classpath:/config/,optional:file:./,optional:file:./config/ diff --git a/csit/get-versions.sh b/csit/get-versions.sh index 5abc747f..d3f6bcda 100644 --- a/csit/get-versions.sh +++ b/csit/get-versions.sh @@ -62,3 +62,6 @@ echo POLICY_CLAMP_VERSION="${POLICY_CLAMP_VERSION}" export POLICY_DOCKER_VERSION=$(getVersion docker) echo POLICY_DOCKER_VERSION="${POLICY_DOCKER_VERSION}" + +export POLICY_GUI_VERSION=$(getVersion gui) +echo POLICY_GUI_VERSION="${POLICY_GUI_VERSION}" diff --git a/csit/pap/plans/setup.sh b/csit/pap/plans/setup.sh index 94a3b31b..8612d2bf 100644 --- a/csit/pap/plans/setup.sh +++ b/csit/pap/plans/setup.sh @@ -46,7 +46,10 @@ echo MARIADB IP IS "${MARIADB_IP}" DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies +NODETEMPLATES=${WORKSPACE}/models/models-examples/src/main/resources/nodetemplates + ROBOT_VARIABLES="" ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PAP_IP:${POLICY_PAP_IP}" ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}" ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}" +ROBOT_VARIABLES="${ROBOT_VARIABLES} -v NODETEMPLATES:${NODETEMPLATES}" diff --git a/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json b/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json new file mode 100644 index 00000000..5d84c294 --- /dev/null +++ b/csit/pap/tests/data/apex.policy.decisionmaker.input.tosca.json @@ -0,0 +1,184 @@ +{ + "tosca_definitions_version": "tosca_simple_yaml_1_1_0", + "topology_template": { + "policies": [ + { + "operational.apex.decisionMaker": { + "type": "onap.policies.native.Apex", + "type_version": "1.0.0", + "name": "operational.apex.decisionMaker", + "version": "1.0.0", + "metadata": { + "metadataSetName": "apexMetadata_decisionMaker", + "metadataSetVersion": "1.0.0" + }, + "properties": { + "engineServiceParameters": { + "name": "MyApexEngine", + "version": "0.0.1", + "id": 45, + "instanceCount": 4, + "deploymentPort": 12561, + "engineParameters": { + "executorParameters": { + "JAVASCRIPT": { + "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters" + } + }, + "contextParameters": { + "parameterClassName": "org.onap.policy.apex.context.parameters.ContextParameters", + "schemaParameters": { + "Avro": { + "parameterClassName": "org.onap.policy.apex.plugins.context.schema.avro.AvroSchemaHelperParameters" + }, + "Java": { + "parameterClassName": "org.onap.policy.apex.context.impl.schema.java.JavaSchemaHelperParameters", + "jsonAdapters": { + "Instant": { + "adaptedClass": "java.time.Instant", + "adaptorClass": "org.onap.policy.controlloop.util.Serialization$GsonInstantAdapter" + } + } + } + } + }, + "taskParameters": [ + { + "key": "ParameterKey1", + "value": "ParameterValue1" + }, + { + "taskId": "AAILookupTask:0.0.1", + "key": "SomeKeyForThisTask", + "value": "Value" + } + ] + } + }, + "eventInputParameters": { + "GuardRequestorConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTREQUESTOR", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters", + "parameters": { + "url": "http://111.222.333.444:5555/pdp/api/getDecision", + "httpMethod": "POST", + "restRequestTimeout": 2000, + "httpHeader": "Authorization:aaaaaaaaa== ClientAuth:bbbbbbbbb=" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventName": "GuardResponseEvent", + "eventNameFilter": "GuardResponseEvent", + "requestorMode": true, + "requestorPeer": "GuardRequestorProducer", + "requestorTimeout": 500 + }, + "DCAEConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://message-router:3904/events/unauthenticated.DCAE_CL_OUTPUT/APEX/1?timeout=60000" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "nameAlias": "closedLoopControlName", + "versionAlias": "version", + "sourceAlias": "from", + "pojoField": "VirtualControlLoopEvent" + } + }, + "eventName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e" + }, + "APPCConsumer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://message-router:3904/events/APPC-LCM-WRITE/APEX/1?timeout=60000" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "versionAlias": "version", + "pojoField": "APPCLCMResponseEvent" + } + }, + "eventName": "APPCRestartVNFResponseEvent", + "eventNameFilter": "APPCRestartVNFResponseEvent" + } + }, + "eventOutputParameters": { + "logProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "FILE", + "parameters": { + "fileName": "/tmp/VCPEEventsOut.json" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + } + }, + "GuardRequestorProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTREQUESTOR", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restrequestor.RestRequestorCarrierTechnologyParameters" + }, + "eventProtocolParameters": { + "eventProtocol": "JSON" + }, + "eventNameFilter": "GuardRequestEvent", + "requestorMode": true, + "requestorPeer": "GuardRequestorConsumer", + "requestorTimeout": 500 + }, + "APPCProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://message-router:3904/events/APPC-LCM-READ" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "versionAlias": "version", + "sourceAlias": "from", + "pojoField": "APPCLCMRequestEvent" + } + }, + "eventNameFilter": "APPCRestartVNFRequestEvent" + }, + "PolicyLogProducer": { + "carrierTechnologyParameters": { + "carrierTechnology": "RESTCLIENT", + "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters", + "parameters": { + "url": "http://message-router:3904/events/POLICY-CL-MGT" + } + }, + "eventProtocolParameters": { + "eventProtocol": "JSON", + "parameters": { + "versionAlias": "version", + "sourceAlias": "from", + "pojoField": "VirtualControlLoopNotification" + } + }, + "eventNameFilter": "ControlLoopLogEvent" + } + } + } + } + } + ] + } +}
\ No newline at end of file diff --git a/csit/pap/tests/data/create.group.request.json b/csit/pap/tests/data/create.group.request.json index e916a94e..1e37583c 100644 --- a/csit/pap/tests/data/create.group.request.json +++ b/csit/pap/tests/data/create.group.request.json @@ -30,6 +30,18 @@ } ], "policies": [] + }, + { + "pdpType": "pdpTypeC", + "desiredInstanceCount": 1, + "properties": {}, + "supportedPolicyTypes": [ + { + "name": "onap.policies.native.Apex", + "version": "1.0.0" + } + ], + "policies": [] } ] } diff --git a/csit/pap/tests/data/deploy.group.request.json b/csit/pap/tests/data/deploy.group.request.json index 73eb213f..cfd86d1e 100644 --- a/csit/pap/tests/data/deploy.group.request.json +++ b/csit/pap/tests/data/deploy.group.request.json @@ -12,6 +12,16 @@ "version": "1.0.0" } ] + }, + { + "pdpType": "pdpTypeC", + "action": "POST", + "policies": [ + { + "name": "operational.apex.decisionMaker", + "version": "1.0.0" + } + ] } ] } diff --git a/csit/pap/tests/pap-test.robot b/csit/pap/tests/pap-test.robot index 9c020ee8..203ddd6c 100644 --- a/csit/pap/tests/pap-test.robot +++ b/csit/pap/tests/pap-test.robot @@ -18,6 +18,16 @@ LoadPolicy ${postjson}= Get file ${DATA}/vCPE.policy.monitoring.input.tosca.json CreatePolicy /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies 200 ${postjson} onap.restart.tca 1.0.0 +LoadPolicyWithMetadataSet + [Documentation] Create a policy named 'operational.apex.decisionMaker' and version '1.0.0' using specific api + ${postjson}= Get file ${CURDIR}/data/apex.policy.decisionmaker.input.tosca.json + CreatePolicy /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies 200 ${postjson} operational.apex.decisionMaker 1.0.0 + +LoadNodeTemplates + [Documentation] Create node templates in database using specific api + ${postjson}= Get file ${NODETEMPLATES}/nodetemplates.metadatasets.input.tosca.json + CreateNodeTemplate /policy/api/v1/nodetemplates 200 ${postjson} 3 + Healthcheck [Documentation] Verify policy pap health check ${resp}= GetReq /policy/pap/v1/healthcheck @@ -77,11 +87,20 @@ QueryPolicyAuditAfterDeploy [Documentation] Verify policy audit record after deploy QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeA onap.restart.tca DEPLOYMENT +QueryPolicyAuditWithMetadataSetAfterDeploy + [Documentation] Verify policy audit record after deploy + QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeC operational.apex.decisionMaker DEPLOYMENT + UndeployPolicy [Documentation] Undeploy a policy named 'onap.restart.tca' from PdpGroups ${auth}= PolicyAdminAuth PerformDeleteRequest ${POLICY_PAP_IP} /policy/pap/v1/pdps/policies/onap.restart.tca 202 ${auth} +UndeployPolicyWithMetadataSet + [Documentation] Undeploy a policy named 'operational.apex.decisionMaker' from PdpGroups + ${auth}= PolicyAdminAuth + PerformDeleteRequest ${POLICY_PAP_IP} /policy/pap/v1/pdps/policies/operational.apex.decisionMaker 202 ${auth} + QueryPdpGroupsAfterUndeploy [Documentation] Verify PdpGroups after undeploy QueryPdpGroups 2 defaultGroup ACTIVE 0 testGroup ACTIVE 0 @@ -90,6 +109,10 @@ QueryPolicyAuditAfterUnDeploy [Documentation] Verify policy audit record after undeploy QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeA onap.restart.tca UNDEPLOYMENT +QueryPolicyAuditWithMetadataSetAfterUnDeploy + [Documentation] Verify policy audit record after undeploy + QueryPolicyAudit /policy/pap/v1/policies/audit 200 testGroup pdpTypeC operational.apex.decisionMaker UNDEPLOYMENT + DeactivatePdpGroup [Documentation] Change the state of PdpGroup named 'testGroup' to PASSIVE ${auth}= PolicyAdminAuth diff --git a/csit/prepare-config-files.py b/csit/prepare-config-files.py index 977df556..4eaa3422 100755 --- a/csit/prepare-config-files.py +++ b/csit/prepare-config-files.py @@ -30,6 +30,7 @@ if __name__ == '__main__': https_enabled = parser.parse_args().https message_router_port = '3905' if https_enabled == "true" else '3904' + protocol = 'https://' if https_enabled == "true" else 'http://' current_dir = os.getcwd() config_dir = current_dir + "/config/" @@ -44,6 +45,7 @@ if __name__ == '__main__': with open(file, 'r+') as f: content = f.read() new_content = content.replace("{{HTTPS_ENABLED}}", https_enabled) + new_content = new_content.replace("{{PROTOCOL}}", protocol) new_content = new_content.replace("{{MESSAGE_ROUTER_PORT}}", message_router_port) if new_content != content: diff --git a/csit/start-gui-smoke-components.sh b/csit/start-gui-smoke-components.sh new file mode 100755 index 00000000..4fe36a01 --- /dev/null +++ b/csit/start-gui-smoke-components.sh @@ -0,0 +1,29 @@ +# ============LICENSE_START==================================================== +# Copyright (C) 2022 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====================================================== +SCRIPTS=$(git rev-parse --show-toplevel) +export SCRIPTS="${SCRIPTS}"/csit + +cd ${SCRIPTS} + +python3 ./prepare-config-files.py --https=true + +source ./get-versions.sh + +docker-compose -f docker-compose-gui-smoke.yml up -d policy-gui + +echo "Clamp GUI: https://localhost:2443/clamp" diff --git a/csit/stop-gui-smoke.sh b/csit/stop-gui-smoke.sh new file mode 100755 index 00000000..c69069b3 --- /dev/null +++ b/csit/stop-gui-smoke.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# ============LICENSE_START==================================================== +# Copyright (C) 2022 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====================================================== + +SCRIPTS=$(git rev-parse --show-toplevel) +export SCRIPTS="${SCRIPTS}"/csit + +source "${SCRIPTS}"/get-versions.sh + +docker-compose -f "${SCRIPTS}"/docker-compose-gui-smoke.yml down |