From: adheli.tavares Date: Wed, 22 May 2024 13:30:57 +0000 (+0100) Subject: Update release data csv file after major release X-Git-Url: https://gerrit.onap.org/r/gitweb?p=policy%2Fparent.git;a=commitdiff_plain;h=refs%2Fheads%2Fmaster;hp=e0c4f78469aa1750fc082114d943cf029d2b94c0 Update release data csv file after major release Issue-ID: POLICY-5019 Change-Id: Ie658d5a600fb6f8b08d5dd5d6093b9142a57421e Signed-off-by: adheli.tavares --- diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml new file mode 100644 index 00000000..d2518ee0 --- /dev/null +++ b/checkstyle/pom.xml @@ -0,0 +1,30 @@ + + + + 4.0.0 + + org.onap.policy.parent + policy-parent + 5.0.0-SNAPSHOT + + checkstyle + checkstyle + diff --git a/checkstyle/src/main/resources/onap-checkstyle/apache-license-2.regexp.txt b/checkstyle/src/main/resources/onap-checkstyle/apache-license-2.regexp.txt new file mode 100644 index 00000000..5b69f285 --- /dev/null +++ b/checkstyle/src/main/resources/onap-checkstyle/apache-license-2.regexp.txt @@ -0,0 +1,15 @@ +^/[*]+$ +^ \* Copyright .*$ +^ \*( )?$ +^ \* 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. +^ [*]+/$ diff --git a/checkstyle/src/main/resources/onap-checkstyle/check-license.xml b/checkstyle/src/main/resources/onap-checkstyle/check-license.xml new file mode 100644 index 00000000..8421f520 --- /dev/null +++ b/checkstyle/src/main/resources/onap-checkstyle/check-license.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/checkstyle/src/main/resources/onap-checkstyle/onap-java-style.xml b/checkstyle/src/main/resources/onap-checkstyle/onap-java-style.xml new file mode 100644 index 00000000..3de8f610 --- /dev/null +++ b/checkstyle/src/main/resources/onap-checkstyle/onap-java-style.xml @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/clamp/acm/acm-participant-guide.rst b/docs/clamp/acm/acm-participant-guide.rst index a98e66b8..b4ca885d 100644 --- a/docs/clamp/acm/acm-participant-guide.rst +++ b/docs/clamp/acm/acm-participant-guide.rst @@ -194,6 +194,108 @@ Any new functionality in the future will be wrapped by this class. Default implementation are supported for the methods: lock, unlock, update, migrate, delete, prime, deprime, handleRestartComposition and handleRestartInstance. +Methods: deploy, undeploy, lock, unlock and delete + compositionElement: + ====================== ======================================= + **field** **description** + ====================== ======================================= + compositionId composition definition Id + elementDefinitionId composition definition element Id + inProperties composition definition in-properties + outProperties composition definition out-properties + ====================== ======================================= + instanceElement: + ============================== =========================== + **field** **description** + ============================== =========================== + instanceId instance id + elementId instance element id + toscaServiceTemplateFragment policies and policy types + inProperties instance in-properties + outProperties instance out-properties + ============================== =========================== + +Method: update + compositionElement: + ====================== ======================================= + **field** **description** + ====================== ======================================= + compositionId composition definition Id + elementDefinitionId composition definition element Id + inProperties composition definition in-properties + outProperties composition definition out-properties + ====================== ======================================= + instanceElement: + ============================== ================================================ + **field** **description** + ============================== ================================================ + instanceId instance id + elementId instance element id + toscaServiceTemplateFragment + inProperties instance in-properties **(before the update)** + outProperties instance out-properties + ============================== ================================================ + instanceElementUpdated: + ============================== ====================================== + **field** **description** + ============================== ====================================== + instanceId instance id + elementId instance element id + toscaServiceTemplateFragment + inProperties instance in-properties **(updated)** + outProperties instance out-properties + ============================== ====================================== + +Methods: prime, deprime + composition: + ====================== =================================================================== + **field** **description** + ====================== =================================================================== + compositionId composition definition Id + inProperties composition definition in-properties for each definition element + outProperties composition definition out-properties for each definition element + ====================== =================================================================== + +Method: migrate + compositionElement: + ====================== ======================================= + **field** **description** + ====================== ======================================= + compositionId composition definition Id + elementDefinitionId composition definition element Id + inProperties composition definition in-properties + outProperties composition definition out-properties + ====================== ======================================= + compositionElementTarget: + ====================== ============================================== + **field** **description** + ====================== ============================================== + compositionId composition definition target Id + elementDefinitionId composition definition target element Id + inProperties composition definition target in-properties + outProperties composition definition target out-properties + ====================== ============================================== + instanceElement: + ============================== =================================================== + **field** **description** + ============================== =================================================== + instanceId instance id + elementId instance element id + toscaServiceTemplateFragment + inProperties instance in-properties **(before the migration)** + outProperties instance out-properties + ============================== =================================================== + instanceElementMigrate: + ============================== ====================================== + **field** **description** + ============================== ====================================== + instanceId instance id + elementId instance element id + toscaServiceTemplateFragment + inProperties instance in-properties **(updated)** + outProperties instance out-properties + ============================== ====================================== + APIs to invoke -------------- ParticipantIntermediaryApi: @@ -665,4 +767,4 @@ error scenarios in the participant with the suitable approach. Tips: If the participant tries to undeploy an element which doesn’t exist in the system any more (due to various other external factors), -it could update the element state to ‘undeployed’ using the Intermediary api. \ No newline at end of file +it could update the element state to ‘undeployed’ using the Intermediary api. diff --git a/docs/clamp/acm/acm-user-guide.rst b/docs/clamp/acm/acm-user-guide.rst index faab7e61..3c56f906 100644 --- a/docs/clamp/acm/acm-user-guide.rst +++ b/docs/clamp/acm/acm-user-guide.rst @@ -418,7 +418,7 @@ The Json below is an example of configuration: Update and send composition outProperites ----------------------------------------- -Data like useState operationalState and outProperites could be updated any time using the following endpoint: +Composition Definition outProperites could be updated any time using the following endpoint: .. code-block:: bash @@ -454,7 +454,7 @@ could be read using the following endpoint: Update and send useState operationalState and instance outProperites -------------------------------------------------------------------- -Data like useState operationalState and outProperites could be updated any time using the following endpoint: +AC instance data like useState operationalState and outProperites could be updated any time using the following endpoint: .. code-block:: bash @@ -466,7 +466,7 @@ The Json below is an example of update, where {{instanceId}} is the UUID of the { "outProperties": { - "Opresult": true, + "result": true, "list": [ {"id": 1 }, {"id": 2 } diff --git a/docs/clamp/acm/design-impl/participants/participants.rst b/docs/clamp/acm/design-impl/participants/participants.rst index 6b12b7c4..254d80c7 100644 --- a/docs/clamp/acm/design-impl/participants/participants.rst +++ b/docs/clamp/acm/design-impl/participants/participants.rst @@ -38,3 +38,4 @@ The detailed implementation of the CLAMP Participant ecosystem is described on t a1pms-participant kserve-participant policy-framework-participant + sim-participant diff --git a/docs/clamp/acm/design-impl/participants/sim-participant.rst b/docs/clamp/acm/design-impl/participants/sim-participant.rst new file mode 100644 index 00000000..96683a6a --- /dev/null +++ b/docs/clamp/acm/design-impl/participants/sim-participant.rst @@ -0,0 +1,42 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. + +.. _clamp-acm-sim-participant: + +Simulator Participant +##################### + +This can be used for simulation testing purpose when there are no actual frameworks or a full deployment. +Typically the Simulator Participant can be used with other Simulator participants with different supported element types. +Once the microservice is up, the Simulator participants can be used to test CLAMP runtime and intermediary library. +It supports the message Broker Kafka. + +.. image:: ../../images/participants/sim-participant.png + +Supported Element Types +----------------------- +Supported Element Types for Simulator participant will be used to define a whatever participant Element Definition Types in tosca template. +Participant Supported Element Types is defined in Simulator participant application.yaml. +The example below shows how to mock the HTTP participant: + +.. code-block:: YAML + + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + typeVersion: 1.0.0 + +Supported participant Interactions: +----------------------------------- +The Simulator participant interacts with ACM Runtime on the northbound via Message Broker. It interacts with tester via Rest Api. + +The communication for the Automation Composition updates and state change requests are sent from the ACM Runtime to the participant via Message Broker. +The tester can invoke the appropriate endpoint of the participant to change the behavior of how the participant should replay to ACM runtime. + +Participant Simulator API +========================= + +This API allows a Participant Simulator to be started and run for test purposes. + +:download:`Download Policy Participant Simulator API Swagger ` + +.. swaggerv2doc:: swagger/participant-sim.json diff --git a/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json b/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json index b258f85a..3be2d348 100644 --- a/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json +++ b/docs/clamp/acm/design-impl/participants/swagger/participant-sim.json @@ -1,117 +1,205 @@ { - "swagger": "2.0", + "openapi": "3.0.1", "info": { - "description": "Api Documentation", - "version": "1.0", - "title": "Api Documentation", - "termsOfService": "urn:tos", - "contact": {}, + "title": "ACM Mock Participant", + "description": "CLAMP Mock Participant API", "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0" } }, + "externalDocs": { + "description": "CLAMP Automation Composition Management Documentation", + "url": "https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/clamp.html" + }, + "servers": [ + { + "url": "http://localhost:8084/onap/policy/clamp/acm/simparticipant", + "description": "Generated server url" + } + ], "paths": { - "/onap/participantsim/v2/elements": { - "put": { + "/v2/parameters": { + "get": { "tags": [ - "Clamp Automation Composition Participant Simulator API" - ], - "summary": "Updates simulated automation composition elements", - "description": "Updates simulated automation composition elements, returning the updated automation composition definition IDs", - "operationId": "updateUsingPUT", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json", - "application/yaml" + "Simulator-participant-controller" ], + "summary": "Return all Parameters", + "description": "Return all the parameters configured in the Simulator Participant", + "operationId": "getConfig", "parameters": [ { - "in": "body", - "name": "body", - "description": "Body of a automation composition element", - "required": true, + "name": "X-onap-RequestId", + "in": "header", + "description": "RequestID for http transaction", + "required": false, "schema": { - "$ref": "#/definitions/AutomationCompositionElementReq", - "originalRef": "AutomationCompositionElementReq" + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "OK, reutrns a serialised instance of [SimConfig](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/SimConfig.java)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + } } }, + "401": { + "description": "Authorization Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + } + } + }, + "500": { + "description": "Internal Server Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + } + } + } + }, + "security": [ + { + "basicAuth": [] + } + ] + }, + "put": { + "tags": [ + "Simulator-participant-controller" + ], + "summary": "change the parameters", + "description": "Change the parameters the behaviour of the Simulator Participant", + "operationId": "setConfig", + "parameters": [ { "name": "X-ONAP-RequestID", "in": "header", "description": "RequestID for http transaction", "required": false, - "type": "string", - "format": "uuid" + "schema": { + "type": "string", + "format": "uuid" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/SimConfig" + } + } + }, + "required": true + }, "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TypedSimpleResponse«AutomationCompositionElement»", - "originalRef": "TypedSimpleResponse«AutomationCompositionElement»" - } + "description": "OK, the parameters has been saved" }, - "201": { - "description": "Created" + "400": { + "description": "Bad Request" }, "401": { - "description": "Authentication Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "description": "Authorization Error" + }, + "500": { + "description": "Internal Server Error" + } + }, + "security": [ + { + "basicAuth": [] + } + ] + } + }, + "/v2/datas": { + "get": { + "tags": [ + "Simulator-participant-controller" + ], + "summary": "Query details of the requested internal datas", + "description": "Query details of the requested internal datas", + "operationId": "getDatas", + "parameters": [ + { + "name": "X-onap-RequestId", + "in": "header", + "description": "RequestID for http transaction", + "required": false, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Serialised instance of [InternalDatas](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/InternalDatas.java)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } }, - "403": { + "401": { "description": "Authorization Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } }, - "404": { - "description": "Not Found" - }, "500": { "description": "Internal Server Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } } @@ -120,114 +208,121 @@ { "basicAuth": [] } + ] + }, + "put": { + "tags": [ + "Simulator-participant-controller" ], - "x-interface info": { - "api-version": "1.0.0", - "last-mod-release": "Dublin" - } + "summary": "change the parameters", + "description": "Change the data of the Simulator Participant", + "operationId": "setData", + "parameters": [ + { + "name": "X-ONAP-RequestID", + "in": "header", + "description": "RequestID for http transaction", + "required": false, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalData" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalData" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK, the data has been saved" + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Authorization Error" + }, + "500": { + "description": "Internal Server Error" + } + }, + "security": [ + { + "basicAuth": [] + } + ] } }, - "/onap/participantsim/v2/elements/{name}/{version}": { + "/v2/compositiondatas": { "get": { "tags": [ - "Clamp Automation Composition Participant Simulator API" - ], - "summary": "Query details of the requested simulated automation composition elements", - "description": "Queries details of the requested simulated automation composition elements, returning all automation composition element details", - "operationId": "elementsUsingGET", - "produces": [ - "application/json", - "application/yaml" + "Simulator-participant-controller" ], + "summary": "Query details of the requested internal composition datas", + "description": "Query details of the requested internal composition datas", + "operationId": "getCompositionDatas", "parameters": [ { - "name": "name", - "in": "path", - "description": "Automation Composition element name", - "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "Automation Composition element version", - "required": true, - "type": "string" - }, - { - "name": "X-ONAP-RequestID", + "name": "X-onap-RequestId", "in": "header", "description": "RequestID for http transaction", "required": false, - "type": "string", - "format": "uuid" + "schema": { + "type": "string", + "format": "uuid" + } } ], "responses": { "200": { - "description": "OK", - "schema": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/AutomationCompositionElementRes", - "originalRef": "AutomationCompositionElementRes" + "description": "Serialised instance of [InternalDatas](https://github.com/onap/policy-clamp/blob/master/participant/participant-impl/policy-clamp-participant-impl-simulator/src/main/java/org/onap/policy/clamp/acm/participant/sim/model/InternalDatas.java)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } }, "401": { - "description": "Authentication Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" - } - } - }, - "403": { "description": "Authorization Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } }, - "404": { - "description": "Not Found" - }, "500": { "description": "Internal Server Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalDatas" + } } } } @@ -236,113 +331,121 @@ { "basicAuth": [] } - ], - "x-interface info": { - "api-version": "1.0.0", - "last-mod-release": "Dublin" - } - } - }, - "/onap/participantsim/v2/participants": { + ] + }, "put": { "tags": [ - "Clamp Automation Composition Participant Simulator API" - ], - "summary": "Updates simulated participants", - "description": "Updates simulated participants, returning the updated automation composition definition IDs", - "operationId": "updateUsingPUT_1", - "consumes": [ - "application/json" - ], - "produces": [ - "application/json", - "application/yaml" + "Simulator-participant-controller" ], + "summary": "change the parameters", + "description": "Change the data of the Simulator Participant", + "operationId": "setCompositionData", "parameters": [ - { - "in": "body", - "name": "body", - "description": "Body of a participant", - "required": true, - "schema": { - "$ref": "#/definitions/ParticipantReq", - "originalRef": "ParticipantReq" - } - }, { "name": "X-ONAP-RequestID", "in": "header", "description": "RequestID for http transaction", "required": false, - "type": "string", - "format": "uuid" + "schema": { + "type": "string", + "format": "uuid" + } } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternalData" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/InternalData" + } + } + }, + "required": true + }, "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/TypedSimpleResponse«Participant»", - "originalRef": "TypedSimpleResponse«Participant»" - } + "description": "OK, the data has been saved" }, - "201": { - "description": "Created" + "400": { + "description": "Bad Request" }, "401": { - "description": "Authentication Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "description": "Authorization Error" + }, + "500": { + "description": "Internal Server Error" + } + }, + "security": [ + { + "basicAuth": [] + } + ] + } + }, + "/v2/instances": { + "get": { + "tags": [ + "Simulator-participant-controller" + ], + "summary": "Query details of the requested automation composition instances", + "description": "Query details of the requested automation composition instances for the given automation composition definition ID, returning details of all its automation composition instances", + "operationId": "getAutomationCompositions", + "parameters": [ + { + "name": "X-onap-RequestId", + "in": "header", + "description": "RequestID for http transaction", + "required": false, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Serialised instance of [AutomationCompositions](https://github.com/onap/policy-clamp/blob/master/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/AutomationCompositions.java) containing a list of automation composition instances found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationCompositions" + } } } }, - "403": { + "401": { "description": "Authorization Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationCompositions" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/AutomationCompositions" + } } } }, - "404": { - "description": "Not Found" - }, "500": { "description": "Internal Server Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationCompositions" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/AutomationCompositions" + } } } } @@ -351,114 +454,77 @@ { "basicAuth": [] } - ], - "x-interface info": { - "api-version": "1.0.0", - "last-mod-release": "Dublin" - } + ] } }, - "/onap/participantsim/v2/participants/{name}/{version}": { + "/v2/instances/{instanceId}": { "get": { "tags": [ - "Clamp Automation Composition Participant Simulator API" - ], - "summary": "Query details of the requested simulated participants", - "description": "Queries details of the requested simulated participants, returning all participant details", - "operationId": "participantsUsingGET", - "produces": [ - "application/json", - "application/yaml" + "Simulator-participant-controller" ], + "summary": "Get automation composition instance details.", + "description": "Get details of the requested automation composition instance.", + "operationId": "getAutomationComposition", "parameters": [ { - "name": "name", + "name": "instanceId", "in": "path", - "description": "Participant name", + "description": "The UUID of the automation composition instance to get", "required": true, - "type": "string" - }, - { - "name": "version", - "in": "path", - "description": "Participant version", - "required": true, - "type": "string" + "schema": { + "type": "string", + "format": "uuid" + } }, { - "name": "X-ONAP-RequestID", + "name": "X-onap-RequestId", "in": "header", "description": "RequestID for http transaction", "required": false, - "type": "string", - "format": "uuid" + "schema": { + "type": "string", + "format": "uuid" + } } ], "responses": { "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ParticipantRes", - "originalRef": "ParticipantRes" + "description": "Serialised instance of [AutomationComposition](https://github.com/onap/policy-clamp/blob/master/models/src/main/java/org/onap/policy/clamp/models/acm/concepts/AutomationComposition.java) containing the automation composition instance", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationComposition" + } } } }, "401": { - "description": "Authentication Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" - } - } - }, - "403": { "description": "Authorization Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationComposition" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/AutomationComposition" + } } } }, - "404": { - "description": "Not Found" - }, "500": { "description": "Internal Server Error", - "headers": { - "X-LatestVersion": { - "type": "string" - }, - "X-PatchVersion": { - "type": "string" - }, - "X-MinorVersion": { - "type": "string" - }, - "X-ONAP-RequestID": { - "type": "string", - "format": "uuid" + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AutomationComposition" + } + }, + "application/yaml": { + "schema": { + "$ref": "#/components/schemas/AutomationComposition" + } } } } @@ -467,12 +533,318 @@ { "basicAuth": [] } - ], - "x-interface info": { - "api-version": "1.0.0", - "last-mod-release": "Dublin" + ] + } + } + }, + "components": { + "schemas": { + "SimConfig": { + "type": "object", + "properties": { + "deploySuccess": { + "type": "boolean" + }, + "undeploySuccess": { + "type": "boolean" + }, + "lockSuccess": { + "type": "boolean" + }, + "unlockSuccess": { + "type": "boolean" + }, + "deleteSuccess": { + "type": "boolean" + }, + "updateSuccess": { + "type": "boolean" + }, + "migrateSuccess": { + "type": "boolean" + }, + "primeSuccess": { + "type": "boolean" + }, + "deprimeSuccess": { + "type": "boolean" + }, + "deployTimerMs": { + "type": "integer", + "format": "int32" + }, + "undeployTimerMs": { + "type": "integer", + "format": "int32" + }, + "lockTimerMs": { + "type": "integer", + "format": "int32" + }, + "unlockTimerMs": { + "type": "integer", + "format": "int32" + }, + "updateTimerMs": { + "type": "integer", + "format": "int32" + }, + "migrateTimerMs": { + "type": "integer", + "format": "int32" + }, + "deleteTimerMs": { + "type": "integer", + "format": "int32" + }, + "primeTimerMs": { + "type": "integer", + "format": "int32" + }, + "deprimeTimerMs": { + "type": "integer", + "format": "int32" + } + } + }, + "InternalData": { + "type": "object", + "properties": { + "intProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "outProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "compositionId": { + "type": "string", + "format": "uuid" + }, + "compositionDefinitionElementId": { + "$ref": "#/components/schemas/ToscaConceptIdentifier" + }, + "automationCompositionId": { + "type": "string", + "format": "uuid" + }, + "automationCompositionElementId": { + "type": "string", + "format": "uuid" + }, + "useState": { + "type": "string" + }, + "operationalState": { + "type": "string" + } + } + }, + "ToscaConceptIdentifier": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "AutomationComposition": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "derivedFrom": { + "type": "string" + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "description": { + "type": "string" + }, + "instanceId": { + "type": "string", + "format": "uuid" + }, + "compositionId": { + "type": "string", + "format": "uuid" + }, + "compositionTargetId": { + "type": "string", + "format": "uuid" + }, + "restarting": { + "type": "boolean" + }, + "deployState": { + "type": "string", + "enum": [ + "DEPLOYED", + "DEPLOYING", + "UNDEPLOYED", + "UNDEPLOYING", + "DELETING", + "DELETED", + "UPDATING", + "MIGRATING" + ] + }, + "lockState": { + "type": "string", + "enum": [ + "LOCKED", + "LOCKING", + "UNLOCKED", + "UNLOCKING", + "NONE" + ] + }, + "elements": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/AutomationCompositionElement" + } + }, + "stateChangeResult": { + "type": "string", + "enum": [ + "NO_ERROR", + "FAILED", + "TIMEOUT" + ] + }, + "definedName": { + "type": "string" + }, + "definedVersion": { + "type": "string" + }, + "typeVersion": { + "type": "string" + }, + "key": { + "$ref": "#/components/schemas/ToscaEntityKey" + }, + "type": { + "type": "string" + } + } + }, + "AutomationCompositionElement": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "definition": { + "$ref": "#/components/schemas/ToscaConceptIdentifier" + }, + "participantId": { + "type": "string", + "format": "uuid" + }, + "restarting": { + "type": "boolean" + }, + "deployState": { + "type": "string", + "enum": [ + "DEPLOYED", + "DEPLOYING", + "UNDEPLOYED", + "UNDEPLOYING", + "DELETING", + "DELETED", + "UPDATING", + "MIGRATING" + ] + }, + "lockState": { + "type": "string", + "enum": [ + "LOCKED", + "LOCKING", + "UNLOCKED", + "UNLOCKING", + "NONE" + ] + }, + "operationalState": { + "type": "string" + }, + "useState": { + "type": "string" + }, + "description": { + "type": "string" + }, + "message": { + "type": "string" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "outProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "AutomationCompositions": { + "type": "object", + "properties": { + "automationCompositionList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AutomationComposition" + } + } + } + }, + "ToscaEntityKey": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "version": { + "type": "string" + } + } + }, + "InternalDatas": { + "type": "object", + "properties": { + "list": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InternalData" + } + } } } } } -} \ No newline at end of file +} diff --git a/docs/clamp/acm/draw.io/acm-participant-sim.drawio b/docs/clamp/acm/draw.io/acm-participant-sim.drawio new file mode 100644 index 00000000..5bcab9c2 --- /dev/null +++ b/docs/clamp/acm/draw.io/acm-participant-sim.drawio @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/clamp/acm/images/participants/sim-participant.png b/docs/clamp/acm/images/participants/sim-participant.png new file mode 100644 index 00000000..8ceabb16 Binary files /dev/null and b/docs/clamp/acm/images/participants/sim-participant.png differ diff --git a/docs/development/devtools/smoke/acm-participants-smoke.rst b/docs/development/devtools/smoke/acm-participants-smoke.rst index 0b8061e2..ad377768 100644 --- a/docs/development/devtools/smoke/acm-participants-smoke.rst +++ b/docs/development/devtools/smoke/acm-participants-smoke.rst @@ -26,92 +26,71 @@ The procedure documented in this article has been verified using Ubuntu 20.04 LT 2.1 Prerequisites ================= -- Java 11 +- Java 17 - Docker -- Maven 3 +- Maven 3.9 - Git - helm3 - k8s cluster - Refer to this guide for basic environment setup `Setting up dev environment `_ -2.2 Assumptions -=============== -- You are accessing the policy repositories through gerrit. +2.2 Cloning CLAMP automation composition +======================================== -The following repositories are required for development in this project. These repositories should be present on your machine and you should run "mvn clean install" on all of them so that the packages are present in your .m2 repository. +Run a script such as the script below to clone the required modules from the `ONAP git repository `_. This script clones CLAMP automation composition and all dependency. -- policy/parent -- policy/common -- policy/models -- policy/clamp +.. code-block:: bash -In this setup guide, we will be setting up all the components technically required for a working dev environment. + cd ~/git + git clone https://gerrit.onap.org/r/policy/clamp clamp -2.3 Setting up the components -============================= -2.3.1 MariaDB Setup -^^^^^^^^^^^^^^^^^^^ -We will be using Docker to run our mariadb instance. It will have the acm-runtime database running in it. +Execution of the command above results in the following directory hierarchy in your *~/git* directory: -- AutomationComposition: the runtime-acm db + * ~/git/clamp -The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*. -.. code-block:: mysql +2.3 Setting up the components +============================= - CREATE DATABASE `clampacm`; - USE `clampacm`; - CREATE USER 'policy'; - GRANT ALL on clampacm.* to 'policy' identified by 'P01icY' with GRANT OPTION; +2.3.1 Running MariaDb and Kafka +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +We will be using Docker to run our mariadb instance and Kafka. It will have the acm-runtime database running in it. +The easiest way to do this is to perform a SQL script. Create the *mariadb.sql* file in the directory *~/git*. -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +.. literalinclude:: files/mariadb.sql + :language: SQL - .. code-block:: bash +Create the '*docker-compose.yaml*' using following code: - cd ~/git - docker run --name mariadb-smoke-test \ - -p 3306:3306 \ - -e MYSQL_ROOT_PASSWORD=my-secret-pw \ - --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ - -d mariadb:10.10.2 \ - --lower-case-table-names=1 +.. literalinclude:: files/docker-compose-local.yaml + :language: yaml -The database will be exposed locally on port 3306 and will be backed by an anonymous docker volume. +Run the docker composition: -2.3.2 DMAAP Simulator -^^^^^^^^^^^^^^^^^^^^^ -For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following: + .. code-block:: bash -1. Navigate to /models-sim/policy-models-simulators in the policy/models repository. -2. Add a configuration file to src/test/resources with the following contents: + cd ~/git/ + docker compose up -.. code-block:: json +2.3.2 Setting topicParameterGroup for kafka localhost +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server. +In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below: - { - "dmaapProvider":{ - "name":"DMaaP simulator", - "topicSweepSec":900 - }, - "restServers":[ - { - "name":"DMaaP simulator", - "providerClass":"org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host":"localhost", - "port":3904, - "https":false - } - ] - } - -3. You can then start dmaap with: +.. literalinclude:: files/runtime-application.yaml + :language: yaml -.. code-block:: bash +Same changes (in the 'participant' parameters section) +may need to be apply into the file 'participant/participant-impl/participant-impl-http/src/main/resources/config/application.yaml'. - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json" +.. literalinclude:: files/participant-http-application.yaml + :language: yaml -At this stage the dmaap simulator should be running on your local machine on port 3904. +And into the file 'participant/participant-impl/participant-impl-kubernetes/src/main/resources/config/application.yaml'. +.. literalinclude:: files/participant-kubernetes-application.yaml + :language: yaml 2.3.3 Automation composition Runtime ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -245,7 +224,7 @@ Verify automation composition state: GET: https:// : /onap/policy/clamp/acm/v2/compositions/{compositionId}/instances/{instanceId} -3.4 Automation Compositions can be "UNDEPLOYED" after deployment +3.5 Automation Compositions can be "UNDEPLOYED" after deployment ================================================================ By changing the state to "UNDEPLOYED", all the helm deployments under the corresponding automation composition will be uninstalled from the cluster. diff --git a/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst index 52275be5..95a27ee7 100644 --- a/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst +++ b/docs/development/devtools/smoke/clamp-ac-participant-protocol-smoke.rst @@ -23,9 +23,9 @@ Linux user - although the majority of the steps show will be exactly the same in 2.1 Prerequisites ================= -- Java 11 +- Java 17 - Docker -- Maven 3 +- Maven 3.9 - Git - Refer to this guide for basic environment setup `Setting up dev environment `_ @@ -34,7 +34,7 @@ Linux user - although the majority of the steps show will be exactly the same in - Automation Composition runtime component docker image is started and running. - Participant docker images policy-clamp-ac-pf-ppnt, policy-clamp-ac-http-ppnt, policy-clamp-ac-k8s-ppnt are started and running. -- Dmaap simulator for communication between components. +- Kafka/Zookeeper for communication between components. - mariadb docker container for policy and clampacm database. - policy-api for communication between policy participant and policy-framework diff --git a/docs/development/devtools/smoke/clamp-smoke.rst b/docs/development/devtools/smoke/clamp-smoke.rst index 19f4a214..2f4a7c9f 100644 --- a/docs/development/devtools/smoke/clamp-smoke.rst +++ b/docs/development/devtools/smoke/clamp-smoke.rst @@ -24,240 +24,81 @@ This article assumes that: The procedure documented in this article has been verified using Ubuntu 20.04 LTS VM. -Cloning CLAMP automation composition and all dependency -******************************************************* +Cloning CLAMP automation composition +************************************ Run a script such as the script below to clone the required modules from the `ONAP git repository `_. This script clones CLAMP automation composition and all dependency. -ONAP Policy Framework has dependencies to the ONAP Parent *oparent* module, the ONAP ECOMP SDK *ecompsdkos* module, and the A&AI Schema module. - - .. code-block:: bash - :caption: Typical ONAP Policy Framework Clone Script - :linenos: - - #!/usr/bin/env bash - - ## script name for output - MOD_SCRIPT_NAME='basename $0' - - ## the ONAP clone directory, defaults to "onap" - clone_dir="onap" - - ## the ONAP repos to clone - onap_repos="\ - policy/parent \ - policy/common \ - policy/models \ - policy/clamp " - - ## - ## Help screen and exit condition (i.e. too few arguments) - ## - Help() - { - echo "" - echo "$MOD_SCRIPT_NAME - clones all required ONAP git repositories" - echo "" - echo " Usage: $MOD_SCRIPT_NAME [-options]" - echo "" - echo " Options" - echo " -d - the ONAP clone directory, defaults to '.'" - echo " -h - this help screen" - echo "" - exit 255; - } - - ## - ## read command line - ## - while [ $# -gt 0 ] - do - case $1 in - #-d ONAP clone directory - -d) - shift - if [ -z "$1" ]; then - echo "$MOD_SCRIPT_NAME: no clone directory" - exit 1 - fi - clone_dir=$1 - shift - ;; - - #-h prints help and exists - -h) - Help;exit 0;; - - *) echo "$MOD_SCRIPT_NAME: undefined CLI option - $1"; exit 255;; - esac - done - - if [ -f "$clone_dir" ]; then - echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as file" - exit 2 - fi - if [ -d "$clone_dir" ]; then - echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as directory" - exit 2 - fi - - mkdir $clone_dir - if [ $? != 0 ] - then - echo cannot clone ONAP repositories, could not create directory '"'$clone_dir'"' - exit 3 - fi - - for repo in $onap_repos - do - repoDir=`dirname "$repo"` - repoName=`basename "$repo"` - - if [ ! -z $dirName ] - then - mkdir "$clone_dir/$repoDir" - if [ $? != 0 ] - then - echo cannot clone ONAP repositories, could not create directory '"'$clone_dir/repoDir'"' - exit 4 - fi - fi - - git clone https://gerrit.onap.org/r/${repo} $clone_dir/$repo - done - - echo ONAP has been cloned into '"'$clone_dir'"' - - -Execution of the script above results in the following directory hierarchy in your *~/git* directory: - - * ~/git/onap - * ~/git/onap/policy - * ~/git/onap/policy/parent - * ~/git/onap/policy/common - * ~/git/onap/policy/models - * ~/git/onap/policy/clamp - - -Building CLAMP automation composition and all dependency -******************************************************** - -**Step 1:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. - - .. code-block:: bash - - rm -fr ~/.m2/repository/org/onap + cd ~/git + git clone https://gerrit.onap.org/r/policy/clamp clamp -**Step 2:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*. -.. code-block:: xml - :caption: Typical pom.xml to build the ONAP Policy Framework - :linenos: +Execution of the command above results in the following directory hierarchy in your *~/git* directory: - - 4.0.0 - org.onap - onap-policy - 1.0.0-SNAPSHOT - pom - ${project.artifactId} - 2023 - - ONAP - + * ~/git/clamp - - parent - common - models - clamp - - +Building CLAMP automation composition +************************************* -**Step 3:** You can now build the Policy framework. +**Step 1:** Setting topicParameterGroup for kafka localhost. +It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server. +In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below: -Build java artifacts only: +.. literalinclude:: files/runtime-application.yaml + :language: yaml - .. code-block:: bash +Same changes (in the 'participant' parameters section) may need to be apply into the file 'participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml'. - cd ~/git/onap/policy - mvn clean install +.. literalinclude:: files/participant-sim-application.yaml + :language: yaml -Build with docker images: +**Step 2:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. .. code-block:: bash - cd ~/git/onap/policy/clamp/packages/ - mvn clean install -P docker - - cd ~/git/onap/policy/models/models-sim/packages - mvn clean install -P docker - -Running MariaDb and DMaaP Simulator -*********************************** - -Running a MariaDb Instance -++++++++++++++++++++++++++ + rm -fr ~/.m2/repository/org/onap -Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, one of them is a -running MariaDb database instance. The easiest way to do this is to run the docker image locally. -A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. +**Step 3:** You can now build the Policy framework. - .. code-block:: SQL +Build java artifacts only: - create database clampacm; - CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; - GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; + .. code-block:: bash + cd ~/git/clamp + mvn clean install -DskipTests -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +Build with docker images: .. code-block:: bash - cd ~/git - docker run --name mariadb-smoke-test \ - -p 3306:3306 \ - -e MYSQL_ROOT_PASSWORD=my-secret-pw \ - --mount type=bind,source=$HOME/git/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ - -d mariadb:10.10.2 \ - --lower-case-table-names=1 + cd ~/git/clamp/packages/ + mvn clean install -P docker +Running MariaDb and Kafka +************************* -Running the DMaaP Simulator during Development -++++++++++++++++++++++++++++++++++++++++++++++ -The second requirement for the Clamp automation composition component to run is to run the DMaaP simulator. You can run it from the command line using Maven. +Assuming you have successfully built the codebase using the instructions above. There are two requirements for the Clamp automation composition component to run, MariaDb database and Kafka/Zookeeper. The easiest way to do this is to run a docker compose locally. +A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in the directory *~/git*. -Create a new configuration file *~/git/onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json* using the below code: +.. literalinclude:: files/mariadb.sql + :language: SQL -.. code-block:: json +Create the '*docker-compose.yaml*' using following code: - { - "dmaapProvider": { - "name": "DMaaP simulator", - "topicSweepSec": 900 - }, - "restServers": [ - { - "name": "DMaaP simulator", - "providerClass": "org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host": "localhost", - "port": 3904, - "https": false - } - ] - } +.. literalinclude:: files/docker-compose-local.yaml + :language: yaml -Run the following commands: +Run the docker composition: .. code-block:: bash - cd ~/git/onap/policy/models/models-sim/policy-models-simulators - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/newParameters.json" + cd ~/git/ + docker compose up Developing and Debugging CLAMP automation composition @@ -270,7 +111,7 @@ Once the mariadb and DMaap simulator are up and running, run the following comma .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm + cd ~/git/clamp/runtime-acm mvn spring-boot:run @@ -279,84 +120,103 @@ Running on the Command Line .. code-block:: bash - cd ~/git/onap/policy/clamp/runtime-acm - java -jar target/policy-clamp-runtime-acm-6.4.2-SNAPSHOT.jar - - -Running in Eclipse -++++++++++++++++++ - -1. Check out the policy models repository -2. Go to the *policy-clamp-runtime-acm* module in the clamp repo -3. Where necessary Add as Source Folder 'target/generated-sources/swagger' -4. Specify a run configuration using the class *org.onap.policy.clamp.acm.runtime.Application* as the main class -5. Run the configuration - -Swagger UI of Automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* + cd ~/git/clamp/runtime-acm + java -jar target/policy-clamp-runtime-acm-7.1.3-SNAPSHOT.jar -Running one or more participants -++++++++++++++++++++++++++++++++ - -Into :ref:`HTTP Participant ` you can find a test case with http-participant. +Running participant simulator ++++++++++++++++++++++++++++++ Run the following commands: .. code-block:: bash - cd ~/git/onap/policy/clamp/participant/participant-impl/participant-impl-http - java -jar target/policy-clamp-participant-impl-http-6.4.2-SNAPSHOT.jar + cd ~/git/clamp/participant/participant-impl/participant-impl-simulator + java -jar target/policy-clamp-participant-impl-simulator-7.1.3-SNAPSHOT.jar Running the CLAMP automation composition docker image +++++++++++++++++++++++++++++++++++++++++++++++++++++ -Create the '*docker-composition.yaml*' using following code: +Create the '*docker-compose.yaml*' using following code: .. code-block:: yaml - version: '3.1' - services: mariadb: image: mariadb:10.10.2 + command: ['mysqld', '--lower_case_table_names=1'] volumes: - type: bind source: ./mariadb.sql target: /docker-entrypoint-initdb.d/data.sql environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - - lower-case-table-names=1 ports: - "3306:3306" + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - 2181:2181 + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + depends_on: + - zookeeper + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + runtime-acm: image: onap/policy-clamp-runtime-acm + depends_on: + - zookeeper + - kafka + - mariadb environment: - - mariadb.host=mariadb - - topicServer=message-router + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/clamp/runtime-acm/src/main/resources/application.yaml + source: ./clamp/runtime-acm/src/main/resources/application.yaml target: /opt/app/policy/clamp/etc/AcRuntimeParameters.yaml ports: - "6969:6969" - message-router: - image: onap/policy-models-simulator + participant-simulator: + image: onap/policy-clamp-ac-sim-ppnt + depends_on: + - zookeeper + - kafka + environment: + MARIADB_HOST: mariadb + TOPICSERVER: kafka:9092 + SERVER_SSL_ENABLED: false volumes: - type: bind - source: ./onap/policy/models/models-sim/policy-models-simulators/src/test/resources/newParameters.json - target: /opt/app/policy/simulators/etc/mounted/simParameters.json - ports: - - "3904:3904" + source: ./clamp/participant/participant-impl/participant-impl-simulator/src/main/resources/config/application.yaml + target: /opt/app/policy/clamp/etc/SimulatorParticipantParameters.yaml + ports: + - "8085:8085" Run the docker composition: .. code-block:: bash cd ~/git/ - docker-compose up + docker compose up Swagger UI of automation composition is available at *http://localhost:6969/onap/policy/clamp/acm/swagger-ui/index.html* diff --git a/docs/development/devtools/smoke/distribution-smoke.rst b/docs/development/devtools/smoke/distribution-smoke.rst index c0e3cb1d..ad57ee15 100644 --- a/docs/development/devtools/smoke/distribution-smoke.rst +++ b/docs/development/devtools/smoke/distribution-smoke.rst @@ -7,131 +7,72 @@ Policy Distribution Smoke Test ################################ -The policy-distribution smoke testing is executed against a custom ONAP docker installation as defined in the docker compose file in "policy/docker/csit/". +The policy-distribution smoke testing is executed against a custom ONAP docker or Kubernetes installation as defined in the docker compose file in "policy/docker/csit/". The policy-distribution configuration file is located in "docker/csit/config/distribution/". -This test verifies the execution of the REST api's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected. +This test verifies the execution of the REST API's exposed by the component to make sure the CSAR Decoding and Forwarding works as expected. +Also, the deployment of the policy is checked automatically. An event is then sent to the deployed policy, and thus, its correct operation is verified. -General Setup -***************** -In policy/docker/csit/ - -.. code-block:: bash - - ./start-grafana.sh distribution - -This script will compose the ONAP components used during the smoke tests are: - -- Policy API to perform CRUD of policies. -- Policy DB to store the policies, and DB Migrator to start the db. -- DMAAP Simulator for the communication between components. -- Policy PAP to perform runtime administration (deploy/undeploy/status/statistics/etc). -- Policy Apex-PDP to deploy & undeploy policies. And send heartbeats to PAP. -- Policy Drools-PDP to deploy & undeploy policies. And send heartbeats to PAP. -- Policy Xacml-PDP to deploy & undeploy policies. And send heartbeats to PAP. - -- Policy Distribution to test the Decoding and Forwarding functions. - -Use this script to easily bring down the containers : - -.. code-block:: bash - - ./stop-grafana.sh - -Testing procedure -********************** - -The test set is focused on the following use cases: - -- Wait until Distribution starts and reach the built-in REST endpoints for fetching healthcheck & statistics. -- Execute some of the REST api's exposed by policy-pap component. - -Starting Policy Distribution ------------------------------------- - -Check the docker logs to see when Distribution service is up and running. - -Get the ips of distribution and pap services: +There are 2 alternative ways to carry out the tests. In Docker and in Kubernetes -.. code:: - :number-lines: +Docker Setup +************ +In policy/docker/csit/ - ./get-instance-ip.sh policy-distribution - ./get-instance-ip.sh policy-pap +More detailed setup for docker CSIT is here -Health check status & statistical data of running distribution system. +`Policy CSIT Test Install Docker `_ .. code-block:: bash - curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/healthcheck - curl -u 'healthcheck:zb!XztG34' --basic http://{POLICY_DISTRIBUTION_IP}:6969/statistics - -Expected result for healthcheck - -.. code-block:: json - - {"name":"Policy SSD","url":"policy-distribution","healthy":true,"code":200,"message":"alive"} - -Expected result for statistics + ./run-project-csit.sh distribution -.. code-block:: json +This script will do the following: - {"code":200,"totalDistributionCount":0,"distributionSuccessCount":0,"distributionFailureCount":0,"totalDownloadCount":0,"downloadSuccessCount":0,"downloadFailureCount":0} +- Deploys all required components - including api, pap and distribution +- Runs distributions CSIT tests. These tests: -Trigger Policy Distribution Core ------------------------------------------- + - Take a policy from a CSAR file in distribution. + - Distribution sends and deploys it in API and PAP. + - Send an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404. -In order to test policy-distribution, we need to trigger the decoding copying a .csar in the mapped volume, -defined in the docker-compose-distribution-smoke.yml as : +- Takes down all the components. +- Saves the results in a .html file in the csit/archives/distribution directory +- Saves the docker compose logs in the same directory -.. code-block:: yaml - - volumes: - - ./distribution/config/temp/:/opt/app/policy/distribution/etc/temp/ - -So now copy the "sample_csar_with_apex_policy.csar" from ./distribution/config/csar/ to ./distribution/config/temp/ - -If the commissioning is successful we should see from the logs this message +K8S Setup +********* +In policy/docker/csit/ -.. image:: images/message-commissioning-participant.png +More detailed setup for K8S CSIT is here -So if we check the distribution statistics again +`Policy CSIT Test Install Kubernetes `_ .. code-block:: bash - {"code":200,"totalDistributionCount":1,"distributionSuccessCount":1,"distributionFailureCount":0,"totalDownloadCount":1,"downloadSuccessCount":1,"downloadFailureCount":0} + ./run-k8s-csit.sh install distribution -Execute policy-pap testing ------------------------------------- -.. note:: - The user for pap is different. +This script will do the following: -Check the details of policies deployed +- Installs microk8s and configures it. +- Deploys all required components - including api, pap and distribution as helm charts +- Waits for all the charts to come up +- Runs distributions CSIT tests. These tests: -.. code-block:: bash - - curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/status - -Expected SUCCESS result - -.. code-block:: json + - Take a policy from a CSAR file in distribution. + - Distribution sends and deploys it in API and PAP. + - Sends an event to the deployed policy - if the policy is NOT deployed successfully, this will FAIL with a 404. - [{"pdpGroup":"defaultGroup","pdpType":"apex","pdpId":"apex-91fa25a1-0456-42fa-9556-6a4d2bd613fc","policy":{"name":"operational.apex.sampledomain","version":"1.0.0"},"policyType":{"name":"onap.policies.native.Apex","version":"1.0.0"},"deploy":true,"state":"SUCCESS"},{"pdpGroup":"defaultGroup","pdpType":"xacml","pdpId":"xacml-83e19452-0854-41dd-9f17-8b0a68f11813","policy":{"name":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","version":"1.0.0"},"policyType":{"name":"onap.policies.Naming","version":"1.0.0"},"deploy":true,"state":"SUCCESS"}] +- Saves the results in a .html file in the csit/archives/distribution directory +- The pods are not automatically taken down. -Check number of policies deployed +To uninstall policy helm deployment and/or the microk8s cluster, use `run-k8s-csit.sh` .. code-block:: bash - curl -k --user 'policyadmin:zb!XztG34' http://{POLICY_PAP_IP}:6969/policy/pap/v1/policies/deployed - -Expected success-count result - -.. code-block:: json - - [{"policy-type":"onap.policies.native.Apex","policy-type-version":"1.0.0","policy-id":"operational.apex.sampledomain","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0},{"policy-type":"onap.policies.Naming","policy-type-version":"1.0.0","policy-id":"SDNC_Policy.ONAP_NF_NAMING_TIMESTAMP","policy-version":"1.0.0","success-count":1,"failure-count":0,"incomplete-count":0}] - -Or download & execute the steps in postman collection for verifying policy-pap component. -The steps need to be performed sequentially one after another. And no input is required from user. + # to uninstall deployment + ./run-k8s-csit.sh uninstall -`Policy Framework Administration API `_ + # to remove cluster + ./run-k8s-csit.sh clean -Make sure to execute the delete steps in order to clean the setup after testing. +End of document \ No newline at end of file diff --git a/docs/development/devtools/smoke/files/api-application.yaml b/docs/development/devtools/smoke/files/api-application.yaml new file mode 100644 index 00000000..39f1de5d --- /dev/null +++ b/docs/development/devtools/smoke/files/api-application.yaml @@ -0,0 +1,23 @@ +spring: + profiles: + active: default + security.user: + name: policyadmin + password: zb!XztG34 + mvc.converters.preferred-json-mapper: gson + datasource: + url: jdbc:mariadb://localhost:3306/policyadmin + driverClassName: org.mariadb.jdbc.Driver + username: policy_user + password: policy_user + jpa: + hibernate: + ddl-auto: none + naming: + physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy + +server: + port: 6968 + servlet: + context-path: /policy/api/v1 diff --git a/docs/development/devtools/smoke/files/docker-compose-local.yaml b/docs/development/devtools/smoke/files/docker-compose-local.yaml new file mode 100644 index 00000000..5ee39f67 --- /dev/null +++ b/docs/development/devtools/smoke/files/docker-compose-local.yaml @@ -0,0 +1,36 @@ +services: + mariadb: + image: mariadb:10.10.2 + command: ['mysqld', '--lower_case_table_names=1'] + volumes: + - type: bind + source: ./mariadb.sql + target: /docker-entrypoint-initdb.d/data.sql + environment: + - MYSQL_ROOT_PASSWORD=my-secret-pw + ports: + - "3306:3306" + + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - 2181:2181 + + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + depends_on: + - zookeeper + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 diff --git a/docs/development/devtools/smoke/files/docker-compose-policy.yaml b/docs/development/devtools/smoke/files/docker-compose-policy.yaml new file mode 100644 index 00000000..cdb50ebb --- /dev/null +++ b/docs/development/devtools/smoke/files/docker-compose-policy.yaml @@ -0,0 +1,61 @@ +services: + mariadb: + image: mariadb:10.10.2 + command: ['mysqld', '--lower_case_table_names=1'] + volumes: + - type: bind + source: ./mariadb.sql + target: /docker-entrypoint-initdb.d/data.sql + environment: + - MYSQL_ROOT_PASSWORD=my-secret-pw + ports: + - "3306:3306" + + policy-db-migrator: + image: nexus3.onap.org:10001/onap/policy-db-migrator:3.1.3-SNAPSHOT + container_name: policy-db-migrator + hostname: policy-db-migrator + depends_on: + - mariadb + expose: + - 6824 + environment: + SQL_DB: policyadmin + SQL_HOST: mariadb + MYSQL_ROOT_PASSWORD: my-secret-pw + MYSQL_USER: policy_user + MYSQL_PASSWORD: policy_user + MYSQL_CMD: mysql + volumes: + - ./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' + ] + + zookeeper: + image: confluentinc/cp-zookeeper:latest + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + ports: + - 2181:2181 + + kafka: + image: confluentinc/cp-kafka:latest + container_name: kafka + depends_on: + - zookeeper + ports: + - 29092:29092 + - 9092:9092 + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 diff --git a/docs/development/devtools/smoke/files/mariadb.sql b/docs/development/devtools/smoke/files/mariadb.sql new file mode 100644 index 00000000..95c4c766 --- /dev/null +++ b/docs/development/devtools/smoke/files/mariadb.sql @@ -0,0 +1,3 @@ +create database clampacm; +CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; +GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; diff --git a/docs/development/devtools/smoke/files/pap-application.yaml b/docs/development/devtools/smoke/files/pap-application.yaml new file mode 100644 index 00000000..8a03b1dd --- /dev/null +++ b/docs/development/devtools/smoke/files/pap-application.yaml @@ -0,0 +1,91 @@ +spring: + security: + user: + name: policyadmin + password: zb!XztG34 + datasource: + url: jdbc:mariadb://localhost:3306/policyadmin + driverClassName: org.mariadb.jdbc.Driver + username: policy_user + password: policy_user + jpa: + hibernate: + ddl-auto: none + naming: + physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy + mvc: + converters: + preferred-json-mapper: gson + +server: + port: 6970 + servlet: + context-path: /policy/pap/v1 +pap: + name: PapGroup + topic: + pdp-pap.name: POLICY-PDP-PAP + notification.name: POLICY-NOTIFICATION + heartbeat.name: POLICY-HEARTBEAT + pdpParameters: + heartBeatMs: 120000 + updateParameters: + maxRetryCount: 1 + maxWaitMs: 30000 + stateChangeParameters: + maxRetryCount: 1 + maxWaitMs: 30000 + topicParameterGroup: + topicSources: + - topic: ${pap.topic.pdp-pap.name} + servers: + - kafka + topicCommInfrastructure: NOOP + fetchTimeout: 15000 + - topic: ${pap.topic.heartbeat.name} + effectiveTopic: ${pap.topic.pdp-pap.name} + consumerGroup: policy-pap + servers: + - kafka + topicCommInfrastructure: NOOP + fetchTimeout: 15000 + topicSinks: + - topic: ${pap.topic.pdp-pap.name} + servers: + - kafka + topicCommInfrastructure: NOOP + - topic: ${pap.topic.notification.name} + servers: + - kafka + topicCommInfrastructure: NOOP + healthCheckRestClientParameters: + - clientName: api + hostname: localhost + port: 6968 + userName: policyadmin + password: zb!XztG34 + useHttps: false + basePath: policy/api/v1/healthcheck + - clientName: distribution + hostname: policy-distribution + port: 6969 + userName: healthcheck + password: zb!XztG34 + useHttps: true + basePath: healthcheck + - clientName: kafka + hostname: kafka + port: 3905 + useHttps: true + basePath: topics + +management: + endpoints: + web: + base-path: / + exposure: + include: health, metrics, prometheus + path-mapping: + -metrics: plain-metrics + -prometheus: metrics diff --git a/docs/development/devtools/smoke/files/participant-http-application.yaml b/docs/development/devtools/smoke/files/participant-http-application.yaml new file mode 100644 index 00000000..142c24e5 --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-http-application.yaml @@ -0,0 +1,23 @@ + +participant: + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c01 + clampAutomationCompositionTopics: + topicSources: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.HttpAutomationCompositionElement + typeVersion: 1.0.0 + diff --git a/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml new file mode 100644 index 00000000..9b25c615 --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-kubernetes-application.yaml @@ -0,0 +1,26 @@ + +participant: + localChartDirectory: /home/policy/local-charts + infoFileName: CHART_INFO.json + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c02 + clampAutomationCompositionTopics: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/participant-policy-application.yaml b/docs/development/devtools/smoke/files/participant-policy-application.yaml new file mode 100644 index 00000000..5b87d1b3 --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-policy-application.yaml @@ -0,0 +1,41 @@ +participant: + pdpGroup: defaultGroup + pdpType: apex + policyApiParameters: + clientName: api + hostname: localhost + port: 6968 + userName: policyadmin + password: zb!XztG34 + useHttps: false + allowSelfSignedCerts: false + policyPapParameters: + clientName: pap + hostname: localhost + port: 6970 + userName: policyadmin + password: zb!XztG34 + useHttps: false + allowSelfSignedCerts: false + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c03 + clampAutomationCompositionTopics: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/participant-sim-application.yaml b/docs/development/devtools/smoke/files/participant-sim-application.yaml new file mode 100644 index 00000000..2d23c12c --- /dev/null +++ b/docs/development/devtools/smoke/files/participant-sim-application.yaml @@ -0,0 +1,22 @@ + +participant: + intermediaryParameters: + reportingTimeIntervalMs: 120000 + description: Participant Description + participantId: 101c62b3-8918-41b9-a747-d21eb79c6c90 + clampAutomationCompositionTopics: + topicSources: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.SimAutomationCompositionElement + typeVersion: 1.0.0 diff --git a/docs/development/devtools/smoke/files/runtime-application.yaml b/docs/development/devtools/smoke/files/runtime-application.yaml new file mode 100644 index 00000000..f798d5bb --- /dev/null +++ b/docs/development/devtools/smoke/files/runtime-application.yaml @@ -0,0 +1,22 @@ + +runtime: + participantParameters: + heartBeatMs: 20000 + maxStatusWaitMs: 200000 + topicParameterGroup: + topicSources: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + fetchTimeout: 15000 + topicSinks: + - + topic: policy-acruntime-participant + servers: + - ${topicServer:localhost:29092} + topicCommInfrastructure: kafka + acmParameters: + toscaElementName: org.onap.policy.clamp.acm.AutomationCompositionElement + toscaCompositionName: org.onap.policy.clamp.acm.AutomationComposition diff --git a/docs/development/devtools/smoke/json/acm-instantiation.json b/docs/development/devtools/smoke/json/acm-instantiation.json index 28eef7da..2cf009cd 100644 --- a/docs/development/devtools/smoke/json/acm-instantiation.json +++ b/docs/development/devtools/smoke/json/acm-instantiation.json @@ -10,7 +10,6 @@ "name": "org.onap.policy.clamp.Local_K8SMicroserviceAutomationCompositionElement", "version": "1.2.3" }, - "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c02", "description": "K8s Automation composition Element for the nginx-ingress microservice", "properties": { "chart": { @@ -29,7 +28,6 @@ "name": "org.onap.policy.clamp.Http_AutomationCompositionElement", "version": "1.2.3" }, - "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c01", "description": "Http Automation composition Element", "properties": { "baseUrl": "http://httpbin.org", @@ -59,4 +57,4 @@ } } } -} \ No newline at end of file +} diff --git a/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json index aa8ca23d..6346d76b 100644 --- a/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json +++ b/docs/development/devtools/smoke/json/instantiation_pptnt_smoke.json @@ -10,7 +10,6 @@ "name": "onap.policy.clamp.ac.element.Policy_AutomationCompositionElement", "version": "1.2.3" }, - "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", "description": "Starter Automation Composition Element for the Demo", "properties": { "policy_type_id": { diff --git a/docs/development/devtools/smoke/policy-participant-smoke.rst b/docs/development/devtools/smoke/policy-participant-smoke.rst index 58e34494..ba677e11 100644 --- a/docs/development/devtools/smoke/policy-participant-smoke.rst +++ b/docs/development/devtools/smoke/policy-participant-smoke.rst @@ -11,21 +11,23 @@ CLAMP Policy Participant Smoke Tests The Smoke testing of the policy participant is executed in a local CLAMP/Policy environment. The CLAMP-ACM interfaces interact with the Policy Framework to perform actions based on the state of the policy participant. The goal of the Smoke tests is the ensure that CLAMP Policy Participant and Policy Framework work together as expected. All applications will be running by console, so they need to run with different ports. Configuration files should be changed accordingly. -+------------------------------+------+ -| Application | port | -+==============================+======+ -| MariDB | 3306 | -+------------------------------+------+ -| DMaaP simulator | 3904 | -+------------------------------+------+ -| policy-api | 6968 | -+------------------------------+------+ -| policy-pap | 6970 | -+------------------------------+------+ -| policy-clamp-runtime-acm | 6969 | -+------------------------------+------+ -| onap/policy-clamp-ac-pf-ppnt | 8085 | -+------------------------------+------+ ++------------------------------+-------+ +| Application | port | ++==============================+=======+ +| MariDB | 3306 | ++------------------------------+-------+ +| Zookeeper | 2181 | ++------------------------------+-------+ +| Kafka | 29092 | ++------------------------------+-------+ +| policy-api | 6968 | ++------------------------------+-------+ +| policy-pap | 6970 | ++------------------------------+-------+ +| policy-clamp-runtime-acm | 6969 | ++------------------------------+-------+ +| onap/policy-clamp-ac-pf-ppnt | 8085 | ++------------------------------+-------+ 2. Setup Guide @@ -36,301 +38,366 @@ This section will show the developer how to set up their environment to start te 2.1 Prerequisites ================= -- Java 11 -- Maven 3 +- Java 17 +- Maven 3.9 - Git - Refer to this guide for basic environment setup `Setting up dev environment `_ -2.2 Assumptions -=============== +2.2 Cloning CLAMP automation composition and all dependency +=========================================================== -- You are accessing the policy repositories through gerrit -- You are using "git review". +Run a script such as the script below to clone the required modules from the `ONAP git repository `_. This script clones CLAMP automation composition and all dependency. -The following repositories are required for development in this project. These repositories should be present on your machine and you should run "mvn clean install" on all of them so that the packages are present in your .m2 repository. +.. code-block:: bash + :caption: Typical ONAP Policy Framework Clone Script + :linenos: -- policy/parent -- policy/common -- policy/models -- policy/clamp -- policy/api -- policy/pap + #!/usr/bin/env bash -In this setup guide, we will be setting up all the components technically required for a working convenient dev environment. + ## script name for output + MOD_SCRIPT_NAME='basename $0' -2.3 Setting up the components -============================= + ## the ONAP clone directory, defaults to "onap" + clone_dir="onap" -2.3.1 MariaDB Setup -^^^^^^^^^^^^^^^^^^^ + ## the ONAP repos to clone + onap_repos="\ + policy/api \ + policy/clamp \ + policy/pap " -We will be using Docker to run our mariadb instance. It will have a total of two databases running in it. + ## + ## Help screen and exit condition (i.e. too few arguments) + ## + Help() + { + echo "" + echo "$MOD_SCRIPT_NAME - clones all required ONAP git repositories" + echo "" + echo " Usage: $MOD_SCRIPT_NAME [-options]" + echo "" + echo " Options" + echo " -d - the ONAP clone directory, defaults to '.'" + echo " -h - this help screen" + echo "" + exit 255; + } -- clampacm: the policy-clamp-runtime-acm db -- policyadmin: the policy-api db + ## + ## read command line + ## + while [ $# -gt 0 ] + do + case $1 in + #-d ONAP clone directory + -d) + shift + if [ -z "$1" ]; then + echo "$MOD_SCRIPT_NAME: no clone directory" + exit 1 + fi + clone_dir=$1 + shift + ;; -A sql such as the one below can be used to build the SQL initialization. Create the *mariadb.sql* file in a directory *PATH_DIRECTORY*. + #-h prints help and exists + -h) + Help;exit 0;; - .. code-block:: SQL + *) echo "$MOD_SCRIPT_NAME: undefined CLI option - $1"; exit 255;; + esac + done + + if [ -f "$clone_dir" ]; then + echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as file" + exit 2 + fi + if [ -d "$clone_dir" ]; then + echo "$MOD_SCRIPT_NAME: requested clone directory '$clone_dir' exists as directory" + exit 2 + fi + + mkdir $clone_dir + if [ $? != 0 ] + then + echo cannot clone ONAP repositories, could not create directory '"'$clone_dir'"' + exit 3 + fi + + for repo in $onap_repos + do + repoDir=`dirname "$repo"` + repoName=`basename "$repo"` + + if [ ! -z $dirName ] + then + mkdir "$clone_dir/$repoDir" + if [ $? != 0 ] + then + echo cannot clone ONAP repositories, could not create directory '"'$clone_dir/repoDir'"' + exit 4 + fi + fi + + git clone https://gerrit.onap.org/r/${repo} $clone_dir/$repo + done + + echo ONAP has been cloned into '"'$clone_dir'"' + + +Execution of the script above results in the following directory hierarchy in your *~/git* directory: + + * ~/git/onap + * ~/git/onap/policy + * ~/git/onap/policy/api + * ~/git/onap/policy/clamp + * ~/git/onap/policy/pap + + +2.3 Building CLAMP automation composition and all dependency +============================================================ + +**Step 1:** Setting topicParameterGroup for kafka localhost in clamp and policy-participant. +It needs to set 'kafka' as topicCommInfrastructure and 'localhost:29092' as server. +In the clamp repo, you should find the file 'runtime-acm/src/main/resources/application.yaml'. This file (in the 'runtime' parameters section) may need to be altered as below: + +.. literalinclude:: files/runtime-application.yaml + :language: yaml + +Setting topicParameterGroup for kafka localhost and api/pap http client (in the 'participant' parameters section) may need to be apply into the file 'participant/participant-impl/participant-impl-policy/src/main/resources/config/application.yaml'. + +.. literalinclude:: files/participant-policy-application.yaml + :language: yaml + + +**Step 2:** Setting datasource.url, hibernate.ddl-auto and server.port in policy-api. +In the api repo, you should find the file 'main/src/main/resources/application.yaml'. This file may need to be altered as below: + +.. literalinclude:: files/api-application.yaml + :language: yaml - create database clampacm; - CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; - GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; - CREATE DATABASE `policyadmin`; - CREATE USER 'policy_user'@'%' IDENTIFIED BY 'policy_user'; - GRANT ALL PRIVILEGES ON policyadmin.* to 'policy_user'@'%'; - FLUSH PRIVILEGES; +**Step 3:** Setting datasource.url, server.port, and api http client in policy-pap. +In the pap repo, you should find the file 'main/src/main/resources/application.yaml'. This file may need to be altered as below: -Execution of the command above results in the creation and start of the *mariadb-smoke-test* container. +.. literalinclude:: files/pap-application.yaml + :language: yaml + + +**Step 4:** Optionally, for a completely clean build, remove the ONAP built modules from your local repository. .. code-block:: bash - docker run --name mariadb-smoke-test \ - -p 3306:3306 \ - -e MYSQL_ROOT_PASSWORD=my-secret-pw \ - --mount type=bind,source=PATH_DIRECTORY/mariadb.sql,target=/docker-entrypoint-initdb.d/data.sql \ - -d mariadb:10.10.2 \ - --lower-case-table-names=1 + rm -fr ~/.m2/repository/org/onap -This will setup the two databases needed. The database will be exposed locally on port 3306. -2.3.2 DMAAP Simulator -^^^^^^^^^^^^^^^^^^^^^ +**Step 5:** A pom such as the one below can be used to build the ONAP Policy Framework modules. Create the *pom.xml* file in the directory *~/git/onap/policy*. -For convenience, a dmaap simulator has been provided in the policy/models repository. To start the simulator, you can do the following: +.. code-block:: xml + :caption: Typical pom.xml to build the ONAP Policy Framework + :linenos: -#. Navigate to models-sim/policy-models-simulators in the policy/models repository. -#. Add a configuration file to src/test/resources with the following contents: + + 4.0.0 + org.onap + onap-policy + 1.0.0-SNAPSHOT + pom + ${project.artifactId} + 2024 + + ONAP + -.. code-block:: json + + api + clamp + pap + + - { - "dmaapProvider":{ - "name":"DMaaP simulator", - "topicSweepSec":900 - }, - "restServers":[ - { - "name":"DMaaP simulator", - "providerClass":"org.onap.policy.models.sim.dmaap.rest.DmaapSimRestControllerV1", - "host":"localhost", - "port":3904, - "https":false - } - ] - } -3. You can then start dmaap with: +**Step 6:** You can now build the Policy framework. -.. code-block:: bash +Build java artifacts only: + + .. code-block:: bash + + cd ~/git/onap/policy + mvn clean install -DskipTests + +Build with docker images: + + .. code-block:: bash + + cd ~/git/onap/policy/clamp/packages/ + mvn clean install -P docker + + cd ~/git/onap/policy/api/packages/ + mvn clean install -P docker + + cd ~/git/onap/policy/pap/packages/ + mvn clean install -P docker + +2.4 Setting up the components +============================= - mvn exec:java -Dexec.mainClass=org.onap.policy.models.simulators.Main -Dexec.args="src/test/resources/YOUR_CONF_FILE.json" +2.4.1 MariaDB and Kafka Setup +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -At this stage the dmaap simulator should be running on your local machine on port 3904. +We will be using Docker to run our mariadb instance`and Zookeeper/Kafka. It will have a total of two databases running in mariadb. -2.3.3 Policy API +- clampacm: the policy-clamp-runtime-acm db +- policyadmin: the policy-api db + +**Step 1:** Create the *mariadb.sql* file in a directory *~/git*. + + .. code-block:: SQL + + create database clampacm; + CREATE USER 'policy'@'%' IDENTIFIED BY 'P01icY'; + GRANT ALL PRIVILEGES ON clampacm.* TO 'policy'@'%'; + CREATE DATABASE `policyadmin`; + CREATE USER 'policy_user'@'%' IDENTIFIED BY 'policy_user'; + GRANT ALL PRIVILEGES ON policyadmin.* to 'policy_user'@'%'; + CREATE DATABASE `migration`; + GRANT ALL PRIVILEGES ON migration.* to 'policy_user'@'%'; + FLUSH PRIVILEGES; + + +**Step 2:** Create the *init.sh* file in a directory *~/git* with execution permission. + + .. code-block:: sh + + #!/bin/sh + + export POLICY_HOME=/opt/app/policy + export SQL_USER=${MYSQL_USER} + export SQL_PASSWORD=${MYSQL_PASSWORD} + export SCRIPT_DIRECTORY=sql + + /opt/app/policy/bin/prepare_upgrade.sh ${SQL_DB} + /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report + /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o upgrade + rc=$? + /opt/app/policy/bin/db-migrator -s ${SQL_DB} -o report + nc -l -p 6824 + exit $rc + + +**Step 3:** Create the *wait_for_port.sh* file in a directory *~/git* with execution permission. + + .. code-block:: sh + + #!/bin/sh + + usage() { + echo args: [-t timeout] [-c command] hostname1 port1 hostname2 port2 ... >&2 + exit 1 + } + tmout=300 + cmd= + while getopts c:t: opt + do + case "$opt" in + c) + cmd="$OPTARG" + ;; + t) + tmout="$OPTARG" + ;; + *) + usage + ;; + esac + done + nargs=$((OPTIND-1)) + shift "$nargs" + even_args=$(($#%2)) + if [ $# -lt 2 ] || [ "$even_args" -ne 0 ] + then + usage + fi + while [ $# -ge 2 ] + do + export host="$1" + export port="$2" + shift + shift + echo "Waiting for $host port $port..." + + while [ "$tmout" -gt 0 ] + do + if command -v docker > /dev/null 2>&1 + then + docker ps --format "table {{ .Names }}\t{{ .Status }}" + fi + nc -vz "$host" "$port" + rc=$? + if [ $rc -eq 0 ] + then + break + else + tmout=$((tmout-1)) + sleep 1 + fi + done + if [ $rc -ne 0 ] + then + echo "$host port $port cannot be reached" + exit $rc + fi + done + $cmd + exit 0 + + +**Step 4:** Create the '*docker-compose.yaml*' using following code: + +.. literalinclude:: files/docker-compose-policy.yaml + :language: yaml + + +**Step 5:** Run the docker composition: + + .. code-block:: bash + + cd ~/git/ + docker compose up + + +2.4.2 Policy API ^^^^^^^^^^^^^^^^ -Navigate to the "/main" directory. You can then run the following command to start the policy api: +In the policy-api repo, navigate to the "/main" directory. You can then run the following command to start the policy api: .. code-block:: bash - java -jar target/api-main-2.8.2-SNAPSHOT.jar --spring.datasource.url=jdbc:mariadb://localhost:3306/policyadmin --spring.jpa.hibernate.ddl-auto=update --server.port=6968 + mvn spring-boot:run -2.3.4 Policy PAP +2.4.3 Policy PAP ^^^^^^^^^^^^^^^^ -In the policy-pap repo, you should find the file 'main\src\main\resources\application.yaml'. This file may need to be altered slightly as below: - -.. code-block:: yaml - - spring: - security: - user: - name: policyadmin - password: zb!XztG34 - http: - converters: - preferred-json-mapper: gson - datasource: - url: jdbc:mariadb://localhost:3306/policyadmin - driverClassName: org.mariadb.jdbc.Driver - username: policy_user - password: policy_user - jpa: - properties: - hibernate: - dialect: org.hibernate.dialect.MariaDB103Dialect - hibernate: - ddl-auto: update - naming: - physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl - implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy - - server: - port: 6970 - servlet: - context-path: /policy/pap/v1 - pap: - name: PapGroup - aaf: false - topic: - pdp-pap.name: POLICY-PDP-PAP - notification.name: POLICY-NOTIFICATION - heartbeat.name: POLICY-HEARTBEAT - pdpParameters: - heartBeatMs: 120000 - updateParameters: - maxRetryCount: 1 - maxWaitMs: 30000 - stateChangeParameters: - maxRetryCount: 1 - maxWaitMs: 30000 - savePdpStatisticsInDb: true - topicParameterGroup: - topicSources: - - topic: ${pap.topic.pdp-pap.name} - servers: - - localhost - topicCommInfrastructure: dmaap - fetchTimeout: 15000 - - topic: ${pap.topic.heartbeat.name} - effectiveTopic: ${pap.topic.pdp-pap.name} - consumerGroup: policy-pap - servers: - - localhost - topicCommInfrastructure: dmaap - fetchTimeout: 15000 - topicSinks: - - topic: ${pap.topic.pdp-pap.name} - servers: - - localhost - topicCommInfrastructure: dmaap - - topic: ${pap.topic.notification.name} - servers: - - localhost - topicCommInfrastructure: dmaap - healthCheckRestClientParameters: - - clientName: api - hostname: localhost - port: 6968 - userName: policyadmin - password: zb!XztG34 - useHttps: false - basePath: policy/api/v1/healthcheck - - clientName: distribution - hostname: policy-distribution - port: 6969 - userName: healthcheck - password: zb!XztG34 - useHttps: false - basePath: healthcheck - - clientName: dmaap - hostname: localhost - port: 3904 - useHttps: false - basePath: topics - - management: - endpoints: - web: - base-path: / - exposure: - include: health, metrics, prometheus - path-mapping.metrics: plain-metrics - path-mapping.prometheus: metrics - -Next, navigate to the "/main" directory. You can then run the following command to start the policy pap +In the policy-pap repo, navigate to the "/main" directory. You can then run the following command to start the policy pap: .. code-block:: bash mvn spring-boot:run -2.3.5 ACM Runtime +2.4.4 ACM Runtime ^^^^^^^^^^^^^^^^^ -To start the clampacm runtime we need to go the "runtime-acm" directory in the clamp repo. There is a config file that is used, by default, for the clampacm runtime. That config file is here: "src/main/resources/application.yaml". For development in your local environment, it shouldn't need any adjustment and we can just run the clampacm runtime with: +To start the clampacm runtime we need to go the "runtime-acm" directory in the clamp repo. You can then run the following command to start the clampacm runtime: .. code-block:: bash mvn spring-boot:run -2.3.6 ACM Policy Participant +2.4.5 ACM Policy Participant ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -To start the policy participant we need to go to the "participant/participant-impl/participant-impl-policy" directory in the clamp repo. There is a config file under "src/main/resources/config/application.yaml". For development in your local environment, we will need to adjust this file slightly: - -.. code-block:: yaml - - spring: - security: - user: - name: participantUser - password: zb!XztG34 - autoconfigure: - exclude: - - org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration - - org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration - - org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration - - org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration - - participant: - pdpGroup: defaultGroup - pdpType: apex - policyApiParameters: - clientName: api - hostname: localhost - port: 6968 - userName: policyadmin - password: zb!XztG34 - useHttps: false - allowSelfSignedCerts: true - policyPapParameters: - clientName: pap - hostname: localhost - port: 6970 - userName: policyadmin - password: zb!XztG34 - useHttps: false - allowSelfSignedCerts: true - intermediaryParameters: - reportingTimeIntervalMs: 120000 - description: Participant Description - participantId: 101c62b3-8918-41b9-a747-d21eb79c6c03 - clampAutomationCompositionTopics: - topicSources: - - - topic: POLICY-ACRUNTIME-PARTICIPANT - servers: - - ${topicServer:localhost} - topicCommInfrastructure: dmaap - fetchTimeout: 15000 - topicSinks: - - - topic: POLICY-ACRUNTIME-PARTICIPANT - servers: - - ${topicServer:localhost} - topicCommInfrastructure: dmaap - participantSupportedElementTypes: - - - typeName: org.onap.policy.clamp.acm.PolicyAutomationCompositionElement - typeVersion: 1.0.0 - - management: - endpoints: - web: - base-path: / - exposure: - include: health, metrics, prometheus - server: - port: 8085 - servlet: - context-path: /onap/policy/clamp/acm/policyparticipant - - -Navigate to the "participant/participant-impl/participant-impl-policy" directory. We can then run the policy-participant with the following command: +To start the policy participant we need to go to the "participant/participant-impl/participant-impl-policy" directory in the clamp repo. You can then run the following command to start the policy-participant: .. code-block:: bash diff --git a/docs/development/devtools/smoke/xacml-smoke.rst b/docs/development/devtools/smoke/xacml-smoke.rst index 2a0be4b6..61f3551f 100644 --- a/docs/development/devtools/smoke/xacml-smoke.rst +++ b/docs/development/devtools/smoke/xacml-smoke.rst @@ -10,37 +10,33 @@ XACML PDP Smoke Test ~~~~~~~~~~~~~~~~~~~~ -The policy-xacml-pdp smoke testing can be executed against a kubernetes based ONAP installation, +The policy-xacml-pdp smoke testing can be executed against a kubernetes based policy framework installation, and/or a docker-compose set up similar to the one executed by CSIT tests. General Setup ************* -ONAP OOM kubernetes -------------------- +PF kubernetes Install +--------------------- For installation instructions, please refer to the following documentation: -`OOM Documentation `_ +`Policy Framework K8S Install `_ -At a minimum policy needs the following components installed: - -- onap base charts -- AAF for certificate generation -- DMaaP message-router for communication among policy components. +The script referred to in the above link should handle the install of the of microk8s, docker and other required components for the install of the policy framework and clamp components. The scripts are used by policy as a means to run the CSIT tests in Kubernetes. docker-compose based -------------------- -A smaller testing environment can be put together by replicating the CSIT test environment: +A smaller testing environment can be put together by replicating the docker-based CSIT test environment. Details are on the same page as K8s setup: -`Policy CSIT Test infrastructure `_ +`Policy CSIT Test Install Docker `_ Testing procedures ****************** The smoke tests should be focused on verifying the proper workings of the xacml -PDP and dependent components. The following scenarios should be considered: +PDP and dependent components. The following scenarios should be considered: - PDP-X registration with PAP. - PDP-X restarts and re-registration with PAP. diff --git a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png index ae3308d1..38b6c000 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_performance_jmeter.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png index 3721435e..bd9d0e84 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_jmeter.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png index 6401eb1d..94402c8f 100644 Binary files a/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png and b/docs/development/devtools/testing/s3p/clamp-s3p-results/acm_stability_table.png differ diff --git a/docs/development/devtools/testing/s3p/clamp-s3p.rst b/docs/development/devtools/testing/s3p/clamp-s3p.rst index dc0b5998..2cf3e236 100644 --- a/docs/development/devtools/testing/s3p/clamp-s3p.rst +++ b/docs/development/devtools/testing/s3p/clamp-s3p.rst @@ -37,7 +37,7 @@ The common setup for performance and stability tests is now automated - being ca Clone the policy-clamp repo to access the test scripts -.. code-block:: bash +.. code-block:: sh git clone https://gerrit.onap.org/r/policy/clamp @@ -69,9 +69,9 @@ Run Test The code in the setup section also serves to run the tests. Just one execution needed to do it all. -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run stability + ./run-s3p-test.sh run stability Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file. @@ -89,24 +89,28 @@ Stability test plan was triggered for 72 hours. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -260590 100.00 % 0.00 % 997 ms +261852 100.00 % 0.00 % 387.126 ms ======================= ================= ================== ================================== **ACM component Setup** -============================================== ============================================================ =========================================== -**NAME** **IMAGE** **PORT** -============================================== ============================================================ =========================================== - policy-clamp-runtime-acm-5c6d8fbfb-jz8rb nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:latest 30007/tcp - policy-clamp-ac-pf-ppnt-55c4cb99f4-spvng nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:latest 30008/tcp - policy-api-58cb45fc9b-ff5md nexus3.onap.org:10001/onap/policy-api:latest 30002/tcp - policy-clamp-ac-http-ppnt-7b99cbfbf8-d4w9v nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:latest 30009/tcp - policy-clamp-ac-k8s-ppnt-6d854cc8b6-twdkh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:latest 30010/tcp - policy-models-simulator-bcd494d87-bfg6g nexus3.onap.org:10001/onap/policy-models-simulator:latest 30904/tcp - mariadb-galera-0 nexus3.onap.org:10001/mariadb:10.5.8 3306/tcp - policy-pap-847d89997d-x9h99 nexus3.onap.org:10001/onap/policy-pap:latest 30003/tcp - policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:latest 6969/tcp -============================================== ============================================================ =========================================== +============================================== ================================================================== ==================== +**NAME** **IMAGE** **PORT** +============================================== ================================================================== ==================== + zookeeper-deployment-7ff87c7fcc-ptkwv confluentinc/cp-zookeeper:latest 2181/TCP + kafka-deployment-5c87d497b-2jv27 confluentinc/cp-kafka:latest 9092/TCP + policy-models-simulator-6947667bdc-v4czs nexus3.onap.org:10001/onap/policy-models-simulator:latest 3904:30904/TCP + prometheus-f66f97b6-rknvp nexus3.onap.org:10001/prom/prometheus:latest 9090:30909/TCP + mariadb-galera-0 nexus3.onap.org:10001/bitnami/mariadb-galera:10.5.8 3306/TCP + policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969:30001/TCP + policy-clamp-ac-http-ppnt-7d747b5d98-4phjf nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt7.1.3-SNAPSHOT 8084/TCP + policy-clamp-ac-sim-ppnt-97f487577-4p7ks nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt7.1.3-SNAPSHOT 6969/TCP + policy-clamp-ac-k8s-ppnt-6bbd86bbc6-csknn nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt7.1.3-SNAPSHOT 8083:30443/TCP + policy-clamp-ac-pf-ppnt-5fcbbcdb6c-twkxw nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt7.1.3-SNAPSHOT 6969:30008/TCP + policy-clamp-runtime-acm-66b5d6b64-4gnth nexus3.onap.org:10001/onap/policy-clamp-runtime-acm7.1.3-SNAPSHOT 6969:30007/TCP + policy-pap-f7899d4cd-7m898 nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969:30003/TCP + policy-api-7f7d995b4-ckb84 nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969:30002/TCP +============================================== ================================================================== ==================== @@ -124,14 +128,6 @@ Stability test plan was triggered for 72 hours. .. image:: clamp-s3p-results/acm_stability_table.png -**Memory and CPU usage** - -The memory and CPU usage can be monitored by running "docker stats" command. - -Memory and CPU usage after test execution: - -.. image:: clamp-s3p-results/Stability_after_stats.png - Performance Test of acm components ++++++++++++++++++++++++++++++++++ @@ -146,30 +142,45 @@ Setup Details We can setup the environment and execute the tests like this from the **clamp/testsuites** directory -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run performance + ./run-s3p-test.sh run performance -This runs for 2 hours. Test results are present in the **testsuites/automate-performance/s3pTestResults.jtl** +Test results are present in the **testsuites/automate-performance/s3pTestResults.jtl** directory. Logs are present for jmeter in **testsuites/automate-performance/jmeter.log** and **testsuites/automated-performance/nohup.out** Test Plan --------- -Performance test plan is the same as the stability test plan above except for the few differences listed below. - -- Increase the number of threads up to 5 (simulating 5 users' behaviours at the same time). -- Reduce the test time to 2 hours. +The Performance test ran the following steps sequentially by 5 threaded users. Any user will create 100 compositions/instances. + +- **SetUp** - SetUp Thread Group + - **Register Participants** - Registers the presence of participants in the acm database +- **AutomationComposition Test Flow** - flow by 5 threaded users. + - **Creation and Deploy** - Creates 100 Compositions and Instances + - **Commission Automation Composition Definitions** - Commissions the ACM Definitions + - **Prime AC definition** - Primes the AC Definition to the participants + - **Instantiate acm** - Instantiate the acm instance + - **DEPLOY the ACM instance** - change the state of the acm to DEPLOYED + - **Check instance state** - check the current state of instance and that it is DEPLOYED + - **Get participants** - fetch all participants + - **Get compositions** - fetch all compositions + - **Undeploy and Delete** - Deletes instances and Compositions created before + - **UNDEPLOY the ACM instance** - change the state of the ACM to UNDEPLOYED + - **Check instance state** - check the current state of instance and that it is UNDEPLOYED + - **Delete instance** - delete the instance from all participants and ACM db + - **DEPRIME ACM definitions** - DEPRIME ACM definitions from participants + - **Delete ACM Definition** - delete the ACM definition on runtime Run Test -------- The code in the setup section also serves to run the tests. Just one execution needed to do it all. -.. code-block:: bash +.. code-block:: sh - bash run-s3p-test.sh run performance + ./run-s3p-test.sh run performance Once the test execution is completed, the results are present in the **automate-performance/s3pTestResults.jtl** file. @@ -185,24 +196,28 @@ Test results are shown as below. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -15520 100 % 0.00 % 464 ms +8624 100 % 0.00 % 1296.8 ms ======================= ================= ================== ================================== **ACM component Setup** -============================================== ============================================================ =========================================== -**NAME** **IMAGE** **PORT** -============================================== ============================================================ =========================================== - policy-clamp-runtime-acm-5c6d8fbfb-jz8rb nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:latest 30007/tcp - policy-clamp-ac-pf-ppnt-55c4cb99f4-spvng nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:latest 30008/tcp - policy-api-58cb45fc9b-ff5md nexus3.onap.org:10001/onap/policy-api:latest 30002/tcp - policy-clamp-ac-http-ppnt-7b99cbfbf8-d4w9v nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:latest 30009/tcp - policy-clamp-ac-k8s-ppnt-6d854cc8b6-twdkh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:latest 30010/tcp - policy-models-simulator-bcd494d87-bfg6g nexus3.onap.org:10001/onap/policy-models-simulator:latest 30904/tcp - mariadb-galera-0 nexus3.onap.org:10001/mariadb:10.5.8 3306/tcp - policy-pap-847d89997d-x9h99 nexus3.onap.org:10001/onap/policy-pap:latest 30003/tcp - policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:latest 6969/tcp -============================================== ============================================================ =========================================== +============================================== ================================================================== ==================== +**NAME** **IMAGE** **PORT** +============================================== ================================================================== ==================== + zookeeper-deployment-7ff87c7fcc-5svgw confluentinc/cp-zookeeper:latest 2181/TCP + kafka-deployment-5c87d497b-hmbhc confluentinc/cp-kafka:latest 9092/TCP + policy-models-simulator-6947667bdc-crcwq nexus3.onap.org:10001/onap/policy-models-simulator:latest 3904:30904/TCP + prometheus-f66f97b6-24dvx nexus3.onap.org:10001/prom/prometheus:latest 9090:30909/TCP + mariadb-galera-0 nexus3.onap.org:10001/bitnami/mariadb-galera:10.5.8 3306/TCP + policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969:30001/TCP + policy-clamp-ac-sim-ppnt-97f487577-pn56t nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt7.1.3-SNAPSHOT 6969/TCP + policy-clamp-ac-http-ppnt-7d747b5d98-qjjlv nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt7.1.3-SNAPSHOT 8084/TCP + policy-clamp-ac-k8s-ppnt-6bbd86bbc6-ffbz2 nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt7.1.3-SNAPSHOT 8083:30443/TCP + policy-clamp-ac-pf-ppnt-5fcbbcdb6c-vmsnv nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt7.1.3-SNAPSHOT 6969:30008/TCP + policy-clamp-runtime-acm-66b5d6b64-6vjl5 nexus3.onap.org:10001/onap/policy-clamp-runtime-acm7.1.3-SNAPSHOT 6969:30007/TCP + policy-pap-f7899d4cd-8sjk9 nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969:30003/TCP + policy-api-7f7d995b4-dktdw nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969:30002/TCP +============================================== ================================================================== ==================== **JMeter Screenshot** diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png index 98760e09..d535c4aa 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-monitor.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png index 440a177a..a2caab4e 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-statistics.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png index a04d98bc..9b6c3d23 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threads.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png index bf20cf32..6a26a09e 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/performance-threshold.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png index 23030a42..cbb675ba 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-monitor.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png index f184a596..ae1853f9 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-statistics.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png index c7279d9c..67da4a62 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threads.png differ diff --git a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png index 37ad5c41..5aa6cc64 100644 Binary files a/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png and b/docs/development/devtools/testing/s3p/distribution-s3p-results/stability-threshold.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png index 57746d3b..e061ba47 100644 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_performance_jmeter_results.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png index 53f95fb2..c1c04f92 100644 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stability_jmeter_results.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png index b95b23f0..7c56f74a 100644 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_after_72h.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png index 49b05e96..0984521f 100644 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_before_72h.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png index e107864f..1d86b175 100644 Binary files a/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png and b/docs/development/devtools/testing/s3p/pap-s3p-results/pap_stats_during_72h.png differ diff --git a/docs/development/devtools/testing/s3p/pap-s3p.rst b/docs/development/devtools/testing/s3p/pap-s3p.rst index 04a16e61..c658cbc5 100644 --- a/docs/development/devtools/testing/s3p/pap-s3p.rst +++ b/docs/development/devtools/testing/s3p/pap-s3p.rst @@ -114,7 +114,7 @@ Stability test plan was triggered for 72 hours. There were no failures during th ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== - 168997 100 % 0.00 % 425 ms + 170212 100 % 0.00 % 419 ms ======================= ================= ================== ================================== @@ -190,7 +190,7 @@ Test results are shown as below. ======================= ================= ================== ================================== **Total # of requests** **Success %** **Error %** **Average time taken per request** ======================= ================= ================== ================================== -199400 100 % 0.00 % 397 ms +48093 100 % 0.00 % 1116 ms ======================= ================= ================== ================================== **JMeter Screenshot** diff --git a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png old mode 100755 new mode 100644 index b5ef5794..6f30f143 Binary files a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-perf-xacml.png differ diff --git a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png old mode 100755 new mode 100644 index d45aeee4..842ec9dd Binary files a/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png and b/docs/development/devtools/testing/s3p/xacml-s3p-results/s3p-stability-xacml.png differ diff --git a/docs/development/devtools/testing/s3p/xacml-s3p.rst b/docs/development/devtools/testing/s3p/xacml-s3p.rst index 2ca0a533..3b81406b 100644 --- a/docs/development/devtools/testing/s3p/xacml-s3p.rst +++ b/docs/development/devtools/testing/s3p/xacml-s3p.rst @@ -88,7 +88,7 @@ Stability test plan was triggered for 24 hours. ======================= ================= ======================== ========================= **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec** ======================= ================= ======================== ========================= - 63618103 0.00 % 5 ms 736.064 ms + 54472562 0.00 % 5 ms 630.1 ms ======================= ================= ======================== ========================= **JMeter Results** @@ -97,22 +97,26 @@ Stability test plan was triggered for 24 hours. **Policy component Setup** -============================================== ==================================================================== =========================================== +============================================== ==================================================================== ============================================= **NAME** **IMAGE** **PORT** -============================================== ==================================================================== =========================================== +============================================== ==================================================================== ============================================= +zookeeper-deployment-7ff87c7fcc-fbsfb confluentinc/cp-zookeeper:latest 2181/TCP +kafka-deployment-5c87d497b-m8s2g confluentinc/cp-kafka:latest 9092/TCP +policy-drools-pdp-0 nexus3.onap.org:10001/onap/policy-pdpd-cl:2.1.3-SNAPSHOT 6969/TCP 9696/TCP +policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.1.3-SNAPSHOT 6969/TCP +policy-distribution-f48bff778-48pm2 nexus3.onap.org:10001/onap/policy-distribution:3.1.3-SNAPSHOT 6969/TCP +policy-models-simulator-6947667bdc-wcd9r nexus3.onap.org:10001/onap/policy-models-simulator:3.1.3-SNAPSHOT 6666/TCP 6680/TCP 6668/TCP 6669/TCP 6670/TCP +policy-clamp-ac-http-ppnt-7d747b5d98-wmr5n nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.1.3-SNAPSHOT 8084/TCP +policy-clamp-ac-k8s-ppnt-6bbd86bbc6-vnvx6 nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.1.3-SNAPSHOT 8083/TCP +policy-clamp-ac-pf-ppnt-5fcbbcdb6c-k2cbk nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.1.3-SNAPSHOT 6969/TCP +policy-clamp-ac-sim-ppnt-97f487577-m2zjr nexus3.onap.org:10001/onap/policy-clamp-ac-sim-ppnt:7.1.3-SNAPSHOT 6969/TCP +policy-clamp-runtime-acm-66b5d6b64-l6dpq nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.1.3-SNAPSHOT 6969/TCP mariadb-galera-0 docker.io/bitnami/mariadb-galera:10.5.8 3306/TCP -policy-models-simulator-bcd494d87-cldfr nexus3.onap.org:10001/onap/policy-models-simulator:3.0.2-SNAPSHOT 30904/TCP -policy-apex-pdp-0 nexus3.onap.org:10001/onap/policy-apex-pdp:3.0.2-SNAPSHOT 30001/TCP -prometheus-f66f97b6-kpg5c nexus3.onap.org:10001/prom/prometheus:latest 30909/TCP -policy-distribution-86777bdd78-95zjx nexus3.onap.org:10001/onap/policy-distribution:3.0.2-SNAPSHOT 30006/TCP -policy-clamp-ac-http-ppnt-7b99cbfbf8-d5zjk nexus3.onap.org:10001/onap/policy-clamp-ac-http-ppnt:7.0.3-SNAPSHOT -policy-clamp-ac-pf-ppnt-55c4cb99f4-pp699 nexus3.onap.org:10001/onap/policy-clamp-ac-pf-ppnt:7.0.3-SNAPSHOT 30008/TCP -policy-clamp-ac-k8s-ppnt-6d854cc8b6-nzlgh nexus3.onap.org:10001/onap/policy-clamp-ac-k8s-ppnt:7.0.3-SNAPSHOT -policy-clamp-runtime-acm-5c6d8fbfb-zww5j nexus3.onap.org:10001/onap/policy-clamp-runtime-acm:7.0.3-SNAPSHOT 30007/TCP -policy-pap-847d89997d-gljzh nexus3.onap.org:10001/onap/policy-pap:3.0.2-SNAPSHOT 30003/TCP -policy-xacml-pdp-656d57d578-9h6fx nexus3.onap.org:10001/onap/policy-xacml-pdp:3.0.2-SNAPSHOT 30004/TCP -policy-api-58cb45fc9b-9qcx6 nexus3.onap.org:10001/onap/policy-api:3.0.2-SNAPSHOT 30002/tcp -============================================== ==================================================================== =========================================== +prometheus-f66f97b6-kkmpq nexus3.onap.org:10001/prom/prometheus:latest 9090/TCP +policy-api-7f7d995b4-2zhnw nexus3.onap.org:10001/onap/policy-api:3.1.3-SNAPSHOT 6969/TCP +policy-pap-f7899d4cd-mfrtp nexus3.onap.org:10001/onap/policy-pap:3.1.3-SNAPSHOT 6969/TCP +policy-xacml-pdp-6c86f85ff6-6qzgf nexus3.onap.org:10001/onap/policy-xacml-pdp:3.1.2 6969/TCP +============================================== ==================================================================== ============================================= .. Note:: @@ -188,7 +192,7 @@ The test was run for 20 minutes with 10 users (i.e., threads), with the followin ======================= ================= ======================== ========================= **Total # of requests** **Error %** **Average Latency (ms)** **Measured requests/sec** ======================= ================= ======================== ========================= - 912141 0.00 % 25.5666 ms 741.917 ms + 888047 0.00 % 25 ms 723.2 ms ======================= ================= ======================== ========================= .. image:: xacml-s3p-results/s3p-perf-xacml.png diff --git a/docs/development/property-configuration.rst b/docs/development/property-configuration.rst index 39691ade..d89b4769 100644 --- a/docs/development/property-configuration.rst +++ b/docs/development/property-configuration.rst @@ -10,13 +10,13 @@ Property-configuration mechanisms .. contents:: :depth: 3 -This article explains how to implement handling and validation of common parameter into the Policy Framework Components. +This article explains how to implement handling and validation of common parameters into the Policy Framework Components. Not Spring boot framework ************************* -The application should have a ParameterHandler class to support the map values from Json to a POJO, so it should be load the file, convert it performing all type conversion. +The application should have a ParameterHandler class to support the map of values from Json to a POJO; so it should load the file and convert it; performing all type conversion. -The code below shown an example of ParameterHandler: +The code below shown is an example of ParameterHandler: .. code-block:: java @@ -59,9 +59,9 @@ The code below shown an example of ParameterHandler: } -The POJO have to implement **org.onap.policy.common.parameters.ParameterGroup** interface or eventually extend **org.onap.policy.common.parameters.ParameterGroupImpl**. The last one already implements **validate()** method that performs error checking using validation **org.onap.policy.common.parameters.annotations**. +The POJO has to implement the **org.onap.policy.common.parameters.ParameterGroup** interface or eventually extend **org.onap.policy.common.parameters.ParameterGroupImpl**. The last one already implements the **validate()** method that performs error checking using validation **org.onap.policy.common.parameters.annotations**. -The code below shown an example of POJO: +The code below shows an example of the POJO: .. code-block:: java @@ -87,7 +87,7 @@ The code below shown an example of POJO: } -The code shows below, is an example of Unit Test validation of the POJO PapParameterGroup: +The code shown below, is an example of Unit Test validation of the POJO PapParameterGroup: .. code-block:: java @@ -106,13 +106,13 @@ The code shows below, is an example of Unit Test validation of the POJO PapParam Using Spring boot framework *************************** -Spring loads automatically the property file and put it available under the **org.springframework.core.env.Environment** Spring component. +Spring loads the property file automatically and makes it available under the **org.springframework.core.env.Environment** Spring component. Environment +++++++++++ A component can use Environment component directly. -Environment component is not a good approach because there is not type conversion and error checking, but it could be useful when the name of the property you need to access changes dynamically. +The Environment component is not a good approach because there is no type conversion or error checking, but it could be useful when the name of the property you need to access changes dynamically. .. code-block:: java @@ -134,7 +134,7 @@ Annotation-based Spring configuration All annotation-based Spring configurations support the Spring Expression Language (SpEL), a powerful expression language that supports querying and manipulating an object graph at runtime. A documentation about SpEL could be found here: https://docs.spring.io/spring-framework/docs/3.0.x/reference/expressions.html. -A component can use **org.springframework.beans.factory.annotation.Value**, which reads from properties, performs a type conversion and injects the value into the filed. There is not error checking, but it can assign default value if the property is not defined. +A component can use **org.springframework.beans.factory.annotation.Value**, which reads from properties, performs a type conversion and injects the value into the field. There is no error checking, but it can assign a default value if the property is not defined. .. code-block:: java @@ -178,9 +178,9 @@ ConfigurationProperties private String description; } -In a scenario that we need to include into a POJO shown before, a class that implement **ParameterGroup** interface, we need to add the **org.onap.policy.common.parameters.validation.ParameterGroupConstraint** annotation. That annotation is configured to use **ParameterGroupValidator** that handles the conversion of a **org.onap.policy.common.parameters.BeanValidationResult** to a Spring validation. +In a scenario where we need to include the properties in a POJO, as shown before, in a class that implements **ParameterGroup** interface, we need to add the **org.onap.policy.common.parameters.validation.ParameterGroupConstraint** annotation. That annotation is configured to use **ParameterGroupValidator**, which handles the conversion of a **org.onap.policy.common.parameters.BeanValidationResult** to a Spring validation. -The code below shown how to add TopicParameterGroup parameter into ClRuntimeParameterGroup: +The code below shows how to add the TopicParameterGroup parameter into acRuntimeParameterGroup: .. code-block:: java @@ -197,7 +197,7 @@ A bean configured with ConfigurationProperties, is automatically a Spring compon @RequiredArgsConstructor public class Example { - private ClRuntimeParameterGroup parameters; + private acRuntimeParameterGroup parameters; .... public void method() { @@ -206,7 +206,7 @@ A bean configured with ConfigurationProperties, is automatically a Spring compon ..... } -The code shows below, is an example of Unit Test validation of the POJO ClRuntimeParameterGroup: +The code shown below, is an example of Unit Test validation of the POJO acRuntimeParameterGroup: .. code-block:: java @@ -214,7 +214,7 @@ The code shows below, is an example of Unit Test validation of the POJO ClRuntim @Test void testParameters_NullTopicParameterGroup() { - final ClRuntimeParameterGroup parameters = CommonTestData.geParameterGroup(); + final acRuntimeParameterGroup parameters = CommonTestData.geParameterGroup(); parameters.setTopicParameterGroup(null); assertThat(validatorFactory.getValidator().validate(parameters)).isNotEmpty(); } diff --git a/docs/pap/notification/dmaap-pap-notif.json b/docs/pap/notification/kafka-pap-notif.json similarity index 100% rename from docs/pap/notification/dmaap-pap-notif.json rename to docs/pap/notification/kafka-pap-notif.json diff --git a/docs/pap/pap.rst b/docs/pap/pap.rst index c6da41b2..1515af53 100644 --- a/docs/pap/pap.rst +++ b/docs/pap/pap.rst @@ -122,14 +122,13 @@ PAP supports the operations listed in the following table, via its REST API: "Undeploy policy", "Undeploys a policy from the PDPs" "Policy Status", "Queries the status of all policies" "Policy deployment status", "Queries the status of all deployed policies" - "PDP statistics", "Queries the statistics of PDPs" "Policy Audit", "Queries the audit records of policies" -1.2 DMaaP API +1.2 KAFKA API ------------- -PAP interacts with the PDPs via the DMaaP Message Router. The messages listed -in the following table are transmitted via DMaaP: +PAP interacts with the PDPs via the kafka interface. The messages listed +in the following table are transmitted via Kafka: .. csv-table:: :header: "Message", "Direction", "Description" @@ -139,12 +138,12 @@ in the following table are transmitted via DMaaP: "PDP update", "Outgoing", "Assigns a PDP to a PDP Group and Subgroup; also deploys or undeploys policies from the PDP" "PDP state change", "Outgoing", "Changes the state of a PDP or all PDPs within a PDP Group or Subgroup" -In addition, PAP generates notifications via the DMaaP Message Router when policies are successfully or unsuccessfully +In addition, PAP generates notifications via the Kafka when policies are successfully or unsuccessfully deployed (or undeployed) from all relevant PDPs. Here is a sample notification: -.. literalinclude:: notification/dmaap-pap-notif.json +.. literalinclude:: notification/kafka-pap-notif.json :language: json @@ -201,22 +200,6 @@ Here is a sample response: .. literalinclude:: response/consolidated-healthcheck-pap-resp.json :language: json -.. csv-table:: - :header: "/statistics" - :widths: 10 - - `Statistics PAP Swagger <./local-swagger.html#tag/StatisticsRestControllerV1>`_ - -This operation allows statistics for PDP groups, PDP subgroups, and individual PDPs to be retrieved. - -.. note:: - While this API is supported, most of the statistics are not currently updated; that work has been deferred to a later - release. - -Here is a sample response: - -.. literalinclude:: response/statistics-pap-resp.json - :language: json .. csv-table:: :header: "/pdps/groups/{name}" @@ -386,21 +369,6 @@ Here is a sample response: .. literalinclude:: response/deployed-policy-pap-resp.json :language: json -.. csv-table:: - :header: "/pdps/statistics" - :widths: 10 - - `Policy Statistics PAP Swagger <./local-swagger.html#tag/StatisticsRestControllerV1>`_ - -This operation allows the PDP statistics to be retrieved for all registered PDPs. -The result can be filtered based on PDP group, PDP subgroup & PDP instance. -Along with record count, start time & end time as query parameters. - -Here is a sample response: - -.. literalinclude:: response/pdp-statistics-pap-resp.json - :language: json - .. csv-table:: :header: "/policies/audit" :widths: 10 @@ -424,15 +392,5 @@ The *PolicyAdministration* component (PAP) is initialized using a configuration The configuration file is a YAML file containing the relevant fields for configuring the REST server, Database and DMaaP connectivity and so on. -3.1 Disable collection of PDP Statistics -======================================== - -This configuration is to inform PAP to not save the PDP statistics in the database. - -In *papParameters.yaml*, add or change the property savePdpStatisticsInDb to false. - -.. note:: - By default, if the property is not present, it will be considered as false and - PDP statistics will not be saved in the database. End of Document diff --git a/docs/pap/response/pdp-statistics-pap-resp.json b/docs/pap/response/pdp-statistics-pap-resp.json deleted file mode 100644 index 77b03444..00000000 --- a/docs/pap/response/pdp-statistics-pap-resp.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "defaultGroup": { - "apex": [ - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:15:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - }, - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:17:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - }, - { - "pdpInstanceId": "dev-policy-apex-pdp-0", - "timeStamp": "Apr 29, 2020, 6:19:29 PM", - "pdpGroupName": "defaultGroup", - "pdpSubGroupName": "apex", - "policyDeployCount": 0, - "policyDeploySuccessCount": 0, - "policyDeployFailCount": 0, - "policyExecutedCount": 0, - "policyExecutedSuccessCount": 0, - "policyExecutedFailCount": 0, - "engineStats": [] - } - ] - } -} \ No newline at end of file diff --git a/docs/pap/response/statistics-pap-resp.json b/docs/pap/response/statistics-pap-resp.json deleted file mode 100644 index 836b5956..00000000 --- a/docs/pap/response/statistics-pap-resp.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "code": 200, - "policyDeployFailureCount": 0, - "policyDeploySuccessCount": 0, - "policyDownloadFailureCount": 0, - "policyDownloadSuccessCount": 0, - "totalPdpCount": 0, - "totalPdpGroupCount": 0, - "totalPolicyDeployCount": 0, - "totalPolicyDownloadCount": 0 -} diff --git a/docs/release-notes.rst b/docs/release-notes.rst index fb43f4d5..ce932362 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -14,6 +14,189 @@ Policy Framework Release Notes .. * Except the date and the version number, all the other sections are optional but there must be at least .. * one section describing the purpose of this new release. +.. ========================== +.. * * * MONTREAL * * * +.. ========================== + +Version: 13.0.0 +--------------- + +:Release Date: 2023-11-30 (Montreal Release) + +Artifacts released: + +.. list-table:: + :widths: 15 10 10 + :header-rows: 1 + + * - Repository + - Java Artifact + - Docker Image (if applicable) + * - policy/parent + - 4.0.2 + - N/A + * - policy/docker + - 3.0.2 + - | policy-jre-alpine + | policy-jdk-alpine + | policy-db-migrator + * - policy/common + - 2.0.2 + - N/A + * - policy/models + - 3.0.2 + - N/A + * - policy/api + - 3.0.2 + - policy-api + * - policy/pap + - 3.0.2 + - policy-pap + * - policy/apex-pdp + - 3.0.2 + - policy-apex-pdp + * - policy/drools-pdp + - 2.0.2 + - policy-drools + * - policy/xacml-pdp + - 3.0.2 + - policy-xacml-pdp + * - policy/distribution + - 3.0.2 + - policy-distribution + * - policy/clamp + - 7.0.3 + - | policy-clamp-ac-pf-ppnt + | policy-clamp-ac-k8s-ppnt + | policy-clamp-ac-http-ppnt + | policy-clamp-runtime-acm' + * - policy/gui + - 3.0.2 + - policy-gui + * - policy/drools-applications + - 2.0.2 + - policy-pdpd-cl + +Key Updates +=========== + +* Improvements to CLAMP Automation Composition Management (ACM) + + CLAMP ACM is improved with new features and Failure handling capabilities. ACM can handle a restarted participant and send updates to the participant with the runtime data. + In addition, the user can also update instance properties on the deployed instances without impacting the ACM system. From Montreal release, the ACM participants can handle + multiple messages from ACM simultaneously. ACM configuration now supports customizable element names in the compositions. + + See: + - `POLICY-4505 `_ - R13: Improvements specific to clamp + +* Migration functionality in ACM + + From Montreal release, Users can migrate the deployed AC instances to a different composition definition with updated configurations without impacting the running system. + + See: + - `POLICY-4809 `_ - R13: Instance Migration/Upgrade in ACM + +* Java 17 Upgrade + + All the components in the policy framework are upgraded to java 17 version. Spring version upgraded to spring 6 and spring boot 3. This improves the overall performance of the + applications along with the latest java capabilities. Also this upgrade is very significant in removing the critical security vulnerabilities. + + See: + - `POLICY-4665 `_ - R13: Java 17 and associated dependency upgrade + +* Remove AAF from Policy Framework + + AAF project is deprecated in ONAP. Policy Framework is refactored to remove unused functionalities and configurations related to AAF. + + See: + - `POLICY-4592 `_ - R13: Remove AAF from Policy Framework + +Known Limitations, Issues and Workarounds +========================================= + +System Limitations +~~~~~~~~~~~~~~~~~~ +N/A + +Known Vulnerabilities +~~~~~~~~~~~~~~~~~~~~~ +N/A + +Workarounds +~~~~~~~~~~~ +N/A + +Security Notes +============== + +Policy Framework upgraded to Spring 6 and Springboot 3 and eliminated critical security vulnerabilities. Java version upgraded to Java 17. + +Functional Improvements +======================= +| `POLICY-4505 `_ - R13: Improvements specific to clamp +| `POLICY-4591 `_ - Update properties on deployed instances +| `POLICY-4683 `_ - Failure handling on the ACM-R +| `POLICY-4700 `_ - Handle multiple messages from ACM to Participant simultaneously +| `POLICY-4716 `_ - Enable timeout functionality in ACM/Participants +| `POLICY-4684 `_ - Participant restart handling in ACM +| `POLICY-4827 `_ - Allow customisation of element names in composition definition +| `POLICY-4699 `_ - Create a mock participant for ACM testing +| `POLICY-4809 `_ - Instance Migration/Upgrade in ACM + +Necessary Improvements and Bug Fixes +==================================== + +Necessary Improvements +~~~~~~~~~~~~~~~~~~~~~~ +| `POLICY-4396 `_ - R13: Improvements on Apex-pdp +| `POLICY-4765 `_ - Support for Context Albums across policy sets in Apex +| `POLICY-4645 `_ - Use Postgres DB in CSIT tests for Apex-pdp +| `POLICY-4505 `_ - R13: Improvements on clamp Acm +| `POLICY-4651 `_ - Extend instance deletion to request additional actions in participant +| `POLICY-4636 `_ - ACM manual and automation tests +| `POLICY-4774 `_ - Participant priming properties +| `POLICY-4762 `_ - Unused Property Removal in clamp/docker +| `POLICY-4802 `_ - Make authentication optional for prometheus metrics +| `POLICY-4808 `_ - Update swagger with new functionality and examples +| `POLICY-4818 `_ - policy endpoint allow packaging of kafka-client dependency +| `POLICY-4768 `_ - Update openapi.yaml to have the common headers section +| `POLICY-4763 `_ - Make changes to the liveness/readiness timeout in helm charts +| `POLICY-4593 `_ - R13: Software (non functional) improvements +| `POLICY-4615 `_ - Software Vulnerability discrepancies in Sonatype reports +| `POLICY-4406 `_ - Mitigate vulnerable dependencies in CDS +| `POLICY-4831 `_ - Fix Sonar issues + + +Bug Fixes +~~~~~~~~~ +| `POLICY-4769 `_ - State change result of AC instances not updated after TIMEOUT +| `POLICY-4770 `_ - Participants are offline in the runtime database after registration +| `POLICY-4772 `_ - Restart flag in ACM instance is still true after participant is restarted +| `POLICY-4773 `_ - Missing validation in Delete AC instance +| `POLICY-4776 `_ - Participants are unable to perform deploy/undeploy/delete operations after restart +| `POLICY-4804 `_ - Participant Intermediary is not updating the transition state "UNDEPLOYING" in the participant status +| `POLICY-4830 `_ - Tosca element names are not validated if not aligned with the configured values + + +References +========== + +For more information on the ONAP London release, please see: + +#. `ONAP Home Page`_ +#. `ONAP Documentation`_ +#. `ONAP Release Downloads`_ +#. `ONAP Wiki Page`_ + +.. _`ONAP Home Page`: https://www.onap.org +.. _`ONAP Wiki Page`: https://wiki.onap.org +.. _`ONAP Documentation`: https://docs.onap.org +.. _`ONAP Release Downloads`: https://git.onap.org + +Quick Links: + - `POLICY project page`_ + - `Passing Badge information for POLICY`_ + .. ========================== .. * * * LONDON * * * .. ========================== diff --git a/integration/pom.xml b/integration/pom.xml index c0e5a4ed..d86de59a 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -29,7 +29,7 @@ org.onap.policy.parent policy-parent - 4.1.2-SNAPSHOT + 5.0.0-SNAPSHOT integration pom @@ -38,13 +38,20 @@ 17 - 4.1.2-SNAPSHOT - ${project.basedir}/../target/code-coverage/jacoco-ut.exec + 5.0.0-SNAPSHOT + ${project.build.directory}/code-coverage/jacoco-ut.exec + + jacoco + ${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml + + + org/drools/**/*,**/gen/**,**/generated-sources/** https://nexus3.onap.org/repository/npm.public/npm/-/ nexus3.onap.org:10001 nexus3.onap.org:10003 1.9.4 + 1.14.13 1.5.3 7.15.0 3.3.2 @@ -63,6 +70,7 @@ 1.9.23 2.23.1 1.4.14 + 3.3.1 3.1.0 1.1.1 1.11.10 @@ -79,6 +87,7 @@ 6.0.18 3.1.10 6.1.8 + 3.11.0.3922 3.0.52 2.2.20 10.1.19 @@ -170,6 +179,11 @@ simpleclient_logback ${version.io.prometheus} + + io.prometheus + simpleclient_httpserver + ${version.io.prometheus} + com.google.re2j re2j @@ -243,6 +257,11 @@ jakarta.persistence-api 3.1.0 + + jakarta.transaction + jakarta.transaction-api + 2.0.1 + io.swagger.core.v3 @@ -349,6 +368,11 @@ slf4j-ext ${version.slf4j} + + org.slf4j + jcl-over-slf4j + ${version.slf4j} + ch.qos.logback logback-core @@ -895,6 +919,11 @@ bcpkix-fips 1.0.7 + + io.micrometer + micrometer-tracing-bridge-otel + 1.1.8 + io.opentelemetry.instrumentation opentelemetry-kafka-clients-2.6 @@ -910,11 +939,6 @@ opentelemetry-sdk-extension-autoconfigure ${version.opentel}-alpha - - io.micrometer - micrometer-tracing-bridge-otel - 1.1.8 - io.opentelemetry opentelemetry-sdk-extension-jaeger-remote-sampler @@ -925,6 +949,11 @@ opentelemetry-context ${version.opentel} + + io.opentelemetry + opentelemetry-api + ${version.opentel} + @@ -953,6 +982,33 @@ ${version.kotlin} + + + com.squareup.okhttp3 + okhttp + 4.12.0 + + + io.projectreactor + reactor-core + 3.6.5 + + + net.bytebuddy + byte-buddy + ${version.bytebuddy} + + + net.bytebuddy + byte-buddy-agent + ${version.bytebuddy} + + + org.jboss.logging + jboss-logging + 3.5.3.Final + runtime + @@ -985,7 +1041,7 @@ org.apache.maven.plugins maven-checkstyle-plugin - 3.3.0 + ${version.maven-checkstyle-plugin} check @@ -1107,6 +1163,25 @@ + + cve + + + + org.owasp + dependency-check-maven + 9.1.0 + + + + aggregate + + + + + + + @@ -1276,6 +1351,26 @@ maven-surefire-plugin 3.1.2 + + org.sonarsource.scanner.maven + sonar-maven-plugin + ${version.sonar} + + + org.apache.maven.plugins + maven-site-plugin + 4.0.0-M13 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.1 + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.2.5 + @@ -1301,7 +1396,10 @@ org/drools/**/* + **/gen/** + **/generated-sources/** + file @@ -1310,8 +1408,9 @@ prepare-agent - ${jacoco.dataFile} + ${jacoco.destFile} true + surefireArgLine @@ -1321,41 +1420,26 @@ report - ${jacoco.dataFile} - - - - pre-integration-test - pre-integration-test - - prepare-agent - - - true - - - - post-integration-test - post-integration-test - - report - - - true + ${jacoco.destFile} + ${project.reporting.outputDirectory}/jacoco-ut report-aggregate - prepare-package + verify report-aggregate + + true + org.apache.maven.plugins maven-checkstyle-plugin + ${version.maven-checkstyle-plugin} onap-license @@ -1401,13 +1485,30 @@ - org.onap.oparent + org.onap.policy.parent checkstyle - ${oparent.version} + [4.1.2,) compile + + org.apache.maven.plugins + maven-failsafe-plugin + + + integration-tests + + integration-test + verify + + + + ${failsafeArgLine} + + + + diff --git a/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv b/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv new file mode 100644 index 00000000..4322b176 --- /dev/null +++ b/integration/src/main/resources/release/14.0.0-ONAP_pf_release_data.csv @@ -0,0 +1,14 @@ +Repo, Last Tag Version,Snapshot Version,Changed Files,Docker Images +policy/parent,4.1.4,4.1.5-SNAPSHOT,0, +policy/docker,3.1.3,3.1.4-SNAPSHOT,1,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' +policy/common,2.1.3,2.1.4-SNAPSHOT,0, +policy/models,3.1.3,3.1.4-SNAPSHOT,2,'policy-models-simulator' +policy/api,3.1.3,3.1.4-SNAPSHOT,1,'policy-api' +policy/pap,3.1.3,3.1.4-SNAPSHOT,1,'policy-pap' +policy/apex-pdp,3.1.3,3.1.4-SNAPSHOT,1,'policy-apex-pdp' +policy/drools-pdp,2.1.3,2.1.4-SNAPSHOT,1,'policy-drools' +policy/xacml-pdp,3.1.3,3.1.4-SNAPSHOT,1,'policy-xacml-pdp' +policy/distribution,3.1.3,3.1.4-SNAPSHOT,1,'policy-distribution' +policy/clamp,7.1.3,7.1.4-SNAPSHOT,8,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' +policy/gui,3.1.3,3.1.4-SNAPSHOT,2,'policy-gui' +policy/drools-applications,2.1.3,2.1.4-SNAPSHOT,1,'policy-pdpd-cl' diff --git a/integration/src/main/resources/release/14.0.0-PF-I3_pf_release_data.csv b/integration/src/main/resources/release/14.0.0-PF-I3_pf_release_data.csv new file mode 100644 index 00000000..d70991fb --- /dev/null +++ b/integration/src/main/resources/release/14.0.0-PF-I3_pf_release_data.csv @@ -0,0 +1,14 @@ +Repo, Last Tag Version,Snapshot Version,Changed Files,Docker Images +policy/parent,4.1.2,4.1.3-SNAPSHOT,0, +policy/docker,3.1.2,3.1.3-SNAPSHOT,7,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' +policy/common,2.1.2,2.1.3-SNAPSHOT,0, +policy/models,3.1.2,3.1.3-SNAPSHOT,3,'policy-models-simulator' +policy/api,3.1.2,3.1.3-SNAPSHOT,2,'policy-api' +policy/pap,3.1.2,3.1.3-SNAPSHOT,2,'policy-pap' +policy/apex-pdp,3.1.2,3.1.3-SNAPSHOT,3,'policy-apex-pdp' +policy/drools-pdp,2.1.2,2.1.3-SNAPSHOT,2,'policy-drools' +policy/xacml-pdp,3.1.2,3.1.3-SNAPSHOT,2,'policy-xacml-pdp' +policy/distribution,3.1.2,3.1.3-SNAPSHOT,2,'policy-distribution' +policy/clamp,7.1.2,7.1.3-SNAPSHOT,9,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' +policy/gui,3.1.2,3.1.3-SNAPSHOT,1,'policy-gui' +policy/drools-applications,2.1.2,2.1.3-SNAPSHOT,0,'policy-pdpd-cl' diff --git a/integration/src/main/resources/release/pf_release_data.csv b/integration/src/main/resources/release/pf_release_data.csv index 4a25fb30..ba380748 100644 --- a/integration/src/main/resources/release/pf_release_data.csv +++ b/integration/src/main/resources/release/pf_release_data.csv @@ -1,14 +1,14 @@ Repo, Last Tag Version,Snapshot Version,Changed Files,Docker Images -policy/parent,4.1.1,4.1.2-SNAPSHOT,0, -policy/docker,3.1.1,3.1.2-SNAPSHOT,1,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' -policy/common,2.1.1,2.1.2-SNAPSHOT,0, -policy/models,3.1.1,3.1.2-SNAPSHOT,2,'policy-models-simulator' -policy/api,3.1.1,3.1.2-SNAPSHOT,1,'policy-api' -policy/pap,3.1.1,3.1.2-SNAPSHOT,1,'policy-pap' -policy/apex-pdp,3.1.1,3.1.2-SNAPSHOT,1,'policy-apex-pdp' -policy/drools-pdp,2.1.1,2.1.2-SNAPSHOT,1,'policy-drools' -policy/xacml-pdp,3.1.1,3.1.2-SNAPSHOT,1,'policy-xacml-pdp' -policy/distribution,3.1.1,3.1.2-SNAPSHOT,1,'policy-distribution' -policy/clamp,7.1.1,7.1.2-SNAPSHOT,8,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' -policy/gui,3.1.1,3.1.2-SNAPSHOT,1,'policy-gui' -policy/drools-applications,2.1.1,2.1.2-SNAPSHOT,0,'policy-pdpd-cl' +policy/parent,4.1.4,5.0.0-SNAPSHOT,0, +policy/docker,3.1.3,4.0.0-SNAPSHOT,1,'policy-jre-alpine':'policy-jdk-alpine':'policy-db-migrator' +policy/common,2.1.3,3.0.0-SNAPSHOT,0, +policy/models,3.1.3,4.0.0-SNAPSHOT,2,'policy-models-simulator' +policy/api,3.1.3,4.0.0-SNAPSHOT,1,'policy-api' +policy/pap,3.1.3,4.0.0-SNAPSHOT,1,'policy-pap' +policy/apex-pdp,3.1.3,4.0.0-SNAPSHOT,1,'policy-apex-pdp' +policy/drools-pdp,2.1.3,3.0.0-SNAPSHOT,1,'policy-drools' +policy/xacml-pdp,3.1.3,4.0.0-SNAPSHOT,1,'policy-xacml-pdp' +policy/distribution,3.1.3,4.0.0-SNAPSHOT,1,'policy-distribution' +policy/clamp,7.1.3,8.0.0-SNAPSHOT,8,'policy-clamp-ac-pf-ppnt':'policy-clamp-ac-k8s-ppnt':'policy-clamp-ac-http-ppnt':'policy-clamp-ac-a1pms-ppnt':'policy-clamp-runtime-acm':'policy-clamp-acm-element-impl':'policy-clamp-ac-kserve-ppnt':'policy-clamp-ac-sim-ppnt' +policy/gui,3.1.3,4.0.0-SNAPSHOT,2,'policy-gui' +policy/drools-applications,2.1.3,3.0.0-SNAPSHOT,1,'policy-pdpd-cl' diff --git a/integration/src/main/scripts/release/updateRefs.sh b/integration/src/main/scripts/release/updateRefs.sh index 0d3131e9..22db3373 100755 --- a/integration/src/main/scripts/release/updateRefs.sh +++ b/integration/src/main/scripts/release/updateRefs.sh @@ -4,7 +4,7 @@ # ============LICENSE_START================================================ # ONAP # ========================================================================= -# Copyright (C) 2021-2022 Nordix Foundation. +# Copyright (C) 2021-2022,2024 Nordix Foundation. # ========================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/pom.xml b/pom.xml index dc589fac..511c6c1f 100644 --- a/pom.xml +++ b/pom.xml @@ -19,29 +19,37 @@ SPDX-License-Identifier: Apache-2.0 ============LICENSE_END========================================================= --> - + 4.0.0 - - org.onap.oparent - oparent - - 3.3.3 - - org.onap.policy.parent policy-parent - 4.1.2-SNAPSHOT + 5.0.0-SNAPSHOT pom - 3.3.3 + UTF-8 + UTF-8 + /content/sites/site/${project.groupId}/${project.artifactId}/${project.version} + checkstyle resources integration + + + ecomp-releases + ${onap.nexus.url}/content/repositories/releases + + + ecomp-snapshots + ${onap.nexus.url}/content/repositories/snapshots + + + @@ -59,7 +67,7 @@ formatter-maven-plugin 2.11.0 - ${project.parent.basedir}/onap-java-formatter.xml + ${project.basedir}/onap-java-formatter.xml + + + + + onap-settings + + https://nexus.onap.org + https://nexus.onap.org/content/sites/raw + https://nexus.onap.org/service/local/repositories/raw/content + ecomp-raw + + + nexus3.onap.org:10003 + nexus3.onap.org:10002 + nexus3.onap.org:10001 + nexus3.onap.org:10003 + + + + onap-snapshots + + + onap-snapshots + onap-snapshots + https://nexus.onap.org/content/repositories/snapshots/ + + false + + + true + + + + + + onap-snapshots + onap-snapshots + https://nexus.onap.org/content/repositories/snapshots/ + + false + + + true + + + + + + onap-releases + + + onap-releases + onap-releases + https://nexus.onap.org/content/repositories/releases/ + + true + + + false + + + + + + onap-releases + onap-releases + https://nexus.onap.org/content/repositories/releases/ + + true + + + false + + + + + + onap-public + + + central + https://repo1.maven.org/maven2/ + + + onap-public + onap-public + https://nexus.onap.org/content/repositories/public/ + + true + + + false + + + + + + central + https://repo1.maven.org/maven2/ + + + onap-public + onap-public + https://nexus.onap.org/content/repositories/public/ + + true + + + false + + + + + + + local-public + + + local-public + local-public + http://nexus-proxy:8081/nexus/content/repositories/public/ + + true + + + false + + + + + + local-public + local-public + http://nexus-proxy:8081/nexus/content/repositories/public/ + + true + + + false + + + + + + + + onap-settings + onap-snapshots + onap-releases + onap-public + + + + diff --git a/version.properties b/version.properties index dd2ef931..295674ed 100644 --- a/version.properties +++ b/version.properties @@ -2,9 +2,9 @@ # Note that these variables cannot be structured (e.g. : version.release or version.snapshot etc... ) # because they are used in Jenkins, whose plug-in doesn't support -major=4 -minor=1 -patch=2 +major=5 +minor=0 +patch=0 base_version=${major}.${minor}.${patch}