From: Priyank Maheshwari Date: Fri, 25 Aug 2023 09:21:33 +0000 (+0000) Subject: Merge "Subscription Forwarding Fix" X-Git-Tag: 3.3.7~14 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=e8a7c4aac83b05ef3d19bf78174ee5f68e0c9c3e;hp=88abb73bfe3e421c1a7fd09fcb259008f19a32cb;p=cps.git Merge "Subscription Forwarding Fix" --- diff --git a/.github/workflows/gerrit-verify.yaml b/.github/workflows/gerrit-verify.yaml new file mode 100644 index 000000000..d4254278c --- /dev/null +++ b/.github/workflows/gerrit-verify.yaml @@ -0,0 +1,102 @@ +--- +name: Gerrit Composed rtdv3 Verify + +# yamllint disable-line rule:truthy +on: + workflow_dispatch: + inputs: + GERRIT_BRANCH: + description: "Branch that change is against" + required: true + type: string + GERRIT_CHANGE_ID: + description: "The ID for the change" + required: true + type: string + GERRIT_CHANGE_NUMBER: + description: "The Gerrit number" + required: true + type: string + GERRIT_CHANGE_URL: + description: "URL to the change" + required: true + type: string + GERRIT_EVENT_TYPE: + description: "Type of Gerrit event" + required: true + type: string + GERRIT_PATCHSET_NUMBER: + description: "The patch number for the change" + required: true + type: string + GERRIT_PATCHSET_REVISION: + description: "The revision sha" + required: true + type: string + GERRIT_PROJECT: + description: "Project in Gerrit" + required: true + type: string + GERRIT_REFSPEC: + description: "Gerrit refspec of change" + required: true + type: string + +jobs: + prepare: + runs-on: ubuntu-latest + steps: + - name: Clear votes + # yamllint disable-line rule:line-length + uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4 + with: + host: ${{ vars.GERRIT_SERVER }} + username: ${{ vars.GERRIT_SSH_USER }} + key: ${{ secrets.GERRIT_SSH_PRIVKEY }} + known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }} + gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} + gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + vote-type: clear + comment-only: true + - name: Allow replication + run: sleep 10s + + rtd-validation: + needs: prepare + # use compose-jjb-verify from the v0.4 series of releng-reusable-workflows + # yamllint disable-line rule:line-length + uses: lfit/releng-reusable-workflows/.github/workflows/compose-rtdv3-verify.yaml@main + with: + GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }} + GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }} + GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }} + GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }} + GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }} + GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }} + GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }} + GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }} + secrets: + RTD_TOKEN: ${{ secrets.RTD_TOKEN }} + + vote: + if: ${{ always() }} + # yamllint enable rule:line-length + needs: [prepare, rtd-validation] + runs-on: ubuntu-latest + steps: + - name: Get conclusion + # yamllint disable-line rule:line-length + uses: technote-space/workflow-conclusion-action@45ce8e0eb155657ab8ccf346ade734257fd196a5 # v3.0.3 + - name: Set vote + # yamllint disable-line rule:line-length + uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4 + with: + host: ${{ vars.GERRIT_SERVER }} + username: ${{ vars.GERRIT_SSH_USER }} + key: ${{ secrets.GERRIT_SSH_PRIVKEY }} + known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }} + gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} + gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + vote-type: ${{ env.WORKFLOW_CONCLUSION }} + comment-only: true diff --git a/checkstyle/pom.xml b/checkstyle/pom.xml index 59dea69f9..ef52947ab 100644 --- a/checkstyle/pom.xml +++ b/checkstyle/pom.xml @@ -26,7 +26,7 @@ 4.0.0 org.onap.cps checkstyle - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT diff --git a/cps-application/pom.xml b/cps-application/pom.xml index c4b3fe63d..e8869707c 100755 --- a/cps-application/pom.xml +++ b/cps-application/pom.xml @@ -28,7 +28,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-bom/pom.xml b/cps-bom/pom.xml index bc350b235..f3c8f7851 100644 --- a/cps-bom/pom.xml +++ b/cps-bom/pom.xml @@ -25,7 +25,7 @@ 4.0.0 org.onap.cps cps-bom - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT pom This artifact contains dependencyManagement declarations of all published CPS components. diff --git a/cps-dependencies/pom.xml b/cps-dependencies/pom.xml index dafc92340..822d7cc82 100755 --- a/cps-dependencies/pom.xml +++ b/cps-dependencies/pom.xml @@ -27,7 +27,7 @@ 4.0.0 org.onap.cps cps-dependencies - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT pom ${project.groupId}:${project.artifactId} diff --git a/cps-events/pom.xml b/cps-events/pom.xml index 97c5c47e1..b305a310b 100644 --- a/cps-events/pom.xml +++ b/cps-events/pom.xml @@ -24,7 +24,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-ncmp-events/pom.xml b/cps-ncmp-events/pom.xml index 975b92808..47b10c959 100644 --- a/cps-ncmp-events/pom.xml +++ b/cps-ncmp-events/pom.xml @@ -23,7 +23,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml index 982a288a2..6683a2353 100644 --- a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-app/pom.xml @@ -22,7 +22,7 @@ org.onap.cps cps-ncmp-rest-stub - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT cps-ncmp-rest-stub-app diff --git a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml index 44c23d62c..d7a5da03f 100644 --- a/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml +++ b/cps-ncmp-rest-stub/cps-ncmp-rest-stub-service/pom.xml @@ -21,7 +21,7 @@ org.onap.cps cps-ncmp-rest-stub - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT cps-ncmp-rest-stub-service diff --git a/cps-ncmp-rest-stub/pom.xml b/cps-ncmp-rest-stub/pom.xml index ff8582deb..5e9d3de11 100644 --- a/cps-ncmp-rest-stub/pom.xml +++ b/cps-ncmp-rest-stub/pom.xml @@ -22,7 +22,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-ncmp-rest/pom.xml b/cps-ncmp-rest/pom.xml index e60e17418..1ac1bd7e6 100644 --- a/cps-ncmp-rest/pom.xml +++ b/cps-ncmp-rest/pom.xml @@ -27,16 +27,12 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml cps-ncmp-rest - - 1.00 - - ${project.groupId} diff --git a/cps-ncmp-service/pom.xml b/cps-ncmp-service/pom.xml index 2aa141024..fa3a369ca 100644 --- a/cps-ncmp-service/pom.xml +++ b/cps-ncmp-service/pom.xml @@ -27,7 +27,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/async/DataOperationEventConsumer.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/async/DataOperationEventConsumer.java index 9649b0109..0bc18076c 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/async/DataOperationEventConsumer.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/async/DataOperationEventConsumer.java @@ -56,8 +56,8 @@ public class DataOperationEventConsumer { log.info("Consuming event payload {} ...", dataOperationEventConsumerRecord.value()); final String eventTarget = KafkaHeaders.getParsedKafkaHeader( dataOperationEventConsumerRecord.headers(), "ce_destination"); - final String eventId = KafkaHeaders.getParsedKafkaHeader( - dataOperationEventConsumerRecord.headers(), "ce_id"); - eventsPublisher.publishCloudEvent(eventTarget, eventId, dataOperationEventConsumerRecord.value()); + final String correlationId = KafkaHeaders.getParsedKafkaHeader( + dataOperationEventConsumerRecord.headers(), "ce_correlationid"); + eventsPublisher.publishCloudEvent(eventTarget, correlationId, dataOperationEventConsumerRecord.value()); } } diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/async/SerializationIntegrationSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/async/SerializationIntegrationSpec.groovy index 14ecd9282..f24ff6253 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/async/SerializationIntegrationSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/async/SerializationIntegrationSpec.groovy @@ -68,7 +68,7 @@ class SerializationIntegrationSpec extends ConsumerBaseSpec { and: 'wait a little for async processing of message' TimeUnit.MILLISECONDS.sleep(300) then: 'the event has been forwarded' - 1 * mockEventsPublisher.publishCloudEvent('some client topic', 'my-event-id', _) >> { args -> { capturedForwardedEvent = args[2] } } + 1 * mockEventsPublisher.publishCloudEvent('some client topic', 'some-correlation-id', _) >> { args -> { capturedForwardedEvent = args[2] } } and: 'the forwarded event is identical to the event that was sent' assert capturedForwardedEvent == cloudEvent } @@ -94,6 +94,7 @@ class SerializationIntegrationSpec extends ConsumerBaseSpec { .withType('DataOperationEvent') .withSource(URI.create('some-source')) .withExtension('destination','some client topic') + .withExtension('correlationid','some-correlation-id') .withData(objectMapper.writeValueAsBytes(dataOperationEvent)) .build() } diff --git a/cps-parent/pom.xml b/cps-parent/pom.xml index 470c3a03a..a8de0ae0e 100755 --- a/cps-parent/pom.xml +++ b/cps-parent/pom.xml @@ -32,7 +32,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT pom diff --git a/cps-path-parser/pom.xml b/cps-path-parser/pom.xml index fa15ee1a3..325c30343 100644 --- a/cps-path-parser/pom.xml +++ b/cps-path-parser/pom.xml @@ -23,7 +23,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml index 60ad20069..8d92d972c 100755 --- a/cps-rest/pom.xml +++ b/cps-rest/pom.xml @@ -28,7 +28,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/cps-ri/pom.xml b/cps-ri/pom.xml index 941d44734..1a1c4a048 100644 --- a/cps-ri/pom.xml +++ b/cps-ri/pom.xml @@ -26,14 +26,14 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml cps-ri - 0.28 + 0.29 diff --git a/cps-service/pom.xml b/cps-service/pom.xml index 8bc39b1d4..d4fe2e31a 100644 --- a/cps-service/pom.xml +++ b/cps-service/pom.xml @@ -29,7 +29,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json b/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json new file mode 100644 index 000000000..be749adac --- /dev/null +++ b/csit/data/subscription-notification/cmSubscriptionNcmpInEventForCsit.json @@ -0,0 +1,20 @@ +{ + "data": { + "subscription": { + "clientID": "SCO-9989752", + "name": "cm-subscription-001" + }, + "dataType": { + "dataspace": "ALL", + "dataCategory": "CM", + "dataProvider": "CM-SERVICE" + }, + "predicates": { + "targets": [ + "CMHandle1" + ], + "datastore": "ncmp-datastore:passthrough-running", + "datastore-xpath-filter": "//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/_3gpp-nr-nrm-nrcelldu:NRCellDU/ | //_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction// | //_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU// | //_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier//" + } + } +} \ No newline at end of file diff --git a/csit/data/subscription-notification/cmSubscriptionNcmpOutEventForCsit.json b/csit/data/subscription-notification/cmSubscriptionNcmpOutEventForCsit.json new file mode 100644 index 000000000..71fee37b2 --- /dev/null +++ b/csit/data/subscription-notification/cmSubscriptionNcmpOutEventForCsit.json @@ -0,0 +1,10 @@ +{ + "data":{ + "statusCode":1, + "statusMessage":"successfully applied subscription", + "additionalInfo":{ + "rejected":[], + "pending":[] + } + } +} \ No newline at end of file diff --git a/csit/data/subscription-notification/createCmHandleRequestBody.json b/csit/data/subscription-notification/createCmHandleRequestBody.json new file mode 100644 index 000000000..642ea6269 --- /dev/null +++ b/csit/data/subscription-notification/createCmHandleRequestBody.json @@ -0,0 +1,17 @@ +{ + "dmiDataPlugin":"dminame1", + "dmiModelPlugin":"x", + "createdCmHandles": [ + { + "cmHandle": "CMHandle1", + "cmHandleProperties": { + "Books": "Social Media" + }, + "publicCmHandleProperties": { + "Color": "yellow", + "Size": "small", + "Shape": "cube" + } + } + ] +} \ No newline at end of file diff --git a/csit/plans/cps/setup.sh b/csit/plans/cps/setup.sh index bdea01985..f997d28ac 100755 --- a/csit/plans/cps/setup.sh +++ b/csit/plans/cps/setup.sh @@ -129,4 +129,4 @@ check_health $DMI_HOST:$DMI_MANAGEMENT_PORT 'dmi-plugin' ###################### ROBOT Configurations ########################## # Pass variables required for Robot test suites in ROBOT_VARIABLES -ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v DMI_AUTH_ENABLED:$DMI_AUTH_ENABLED -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data --exitonfailure" +ROBOT_VARIABLES="-v CPS_CORE_HOST:$CPS_CORE_HOST -v CPS_CORE_PORT:$CPS_CORE_PORT -v DMI_HOST:$LOCAL_IP -v DMI_PORT:$DMI_PORT -v DMI_CSIT_STUB_HOST:$LOCAL_IP -v DMI_CSIT_STUB_PORT:$DMI_DEMO_STUB_PORT -v DMI_AUTH_ENABLED:$DMI_AUTH_ENABLED -v CPS_CORE_MANAGEMENT_PORT:$CPS_CORE_MANAGEMENT_PORT -v DATADIR:$WORKSPACE/data -v DATADIR_SUBS_NOTIFICATION:$WORKSPACE/data/subscription-notification --exitonfailure" \ No newline at end of file diff --git a/csit/plans/cps/testplan.txt b/csit/plans/cps/testplan.txt index cca11fb93..1775ad353 100644 --- a/csit/plans/cps/testplan.txt +++ b/csit/plans/cps/testplan.txt @@ -1,5 +1,5 @@ # ============LICENSE_START======================================================= -# Copyright (C) 2021-2022 Nordix Foundation +# Copyright (C) 2021-2023 Nordix Foundation # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ cps-admin cps-data cps-model-sync cps-data-sync +cps-subscriptions ncmp-passthrough cm-handle-query cps-data-operations \ No newline at end of file diff --git a/csit/pylibs.txt b/csit/pylibs.txt index 9fee63415..32bfa6fac 100644 --- a/csit/pylibs.txt +++ b/csit/pylibs.txt @@ -9,6 +9,7 @@ robotframework-requests==0.9.3 robotframework-selenium2library==3.0.0 robotframework-extendedselenium2library robotframework-sshlibrary +robotframework-confluentkafkalibrary scapy # Module jsonpath is needed by current AAA idmlite suite. jsonpath-rw diff --git a/csit/tests/cps-data-operations/cps-data-operations.robot b/csit/tests/cps-data-operations/cps-data-operations.robot index 451fb0a42..b2912eed0 100644 --- a/csit/tests/cps-data-operations/cps-data-operations.robot +++ b/csit/tests/cps-data-operations/cps-data-operations.robot @@ -53,7 +53,7 @@ NCMP Data Operation, forwarded to DMI, response on Client Topic Sleep 5 wait some time to get published a message to the client topic Consume cloud event from client topic - ${group_id}= Create Consumer port=19092 auto_offset_reset=earliest + ${group_id}= Create Consumer auto_offset_reset=earliest Subscribe Topic topics=${topic} group_id=${group_id} ${messages}= Poll group_id=${group_id} only_value=false ${event} Set Variable ${messages}[0] diff --git a/csit/tests/cps-subscriptions/cps-subscription-notification.robot b/csit/tests/cps-subscriptions/cps-subscription-notification.robot new file mode 100644 index 000000000..b0e866579 --- /dev/null +++ b/csit/tests/cps-subscriptions/cps-subscription-notification.robot @@ -0,0 +1,86 @@ +# ============LICENSE_START======================================================= +# Copyright (C) 2023 Nordix Foundation. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + + +*** Settings *** +Library ConfluentKafkaLibrary +Library Collections +Library OperatingSystem +Library RequestsLibrary + +Suite Setup Starting Test + +*** Variables *** + +${auth} Basic Y3BzdXNlcjpjcHNyMGNrcyE= +${basePath} /ncmpInventory/v1/ch + + +*** Test Cases *** +Create CM Handle + Create Session CPS_URL http://${CPS_CORE_HOST}:${CPS_CORE_PORT} + ${headers} Create Dictionary Content-Type=application/json Authorization=${auth} + ${jsonData}= Get Binary File ${DATADIR_SUBS_NOTIFICATION}${/}createCmHandleRequestBody.json + ${response}= POST On Session CPS_URL ${basePath} headers=${headers} data=${jsonData} + Should Be Equal As Strings ${response.status_code} 200 + Sleep 5 wait some time to get updated in the db + +Verify Kafka flow for Subscription Creation Notification + ${group_id}= Create Consumer + Subscribe Topic group_id=${group_id} topics=${RESPONSE_TOPIC} + Wait Until Keyword Succeeds 10x 3s All Messages Are Produced and Consumed ${group_id} + [Teardown] Basic Teardown ${group_id} + +*** Keywords *** +Starting Test + Set Suite Variable ${REQUEST_TOPIC} subscription + Set Suite Variable ${RESPONSE_TOPIC} subscription-response + ${ncmpOutEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpOutEventForCsit.json + ${ncmpOutEventJson}= Evaluate json.loads("""${ncmpOutEventJson}""") json + Set Suite Variable ${ncmpOutEventJsonGlobal} ${ncmpOutEventJson} + ${thread}= Start Consumer Threaded topics=test + Set Suite Variable ${MAIN_THREAD} ${thread} + ${producer_group_id}= Create Producer + Set Suite Variable ${PRODUCER_ID} ${producer_group_id} + ${ncmpInEventJson}= Get File ${DATADIR_SUBS_NOTIFICATION}${/}cmSubscriptionNcmpInEventForCsit.json encoding=UTF-8 + Set Suite Variable ${ncmpInEventJsonGlobal} ${ncmpInEventJson} + ${headers}= Create Dictionary ce_specversion=1.0 ce_id=some-event-id ce_source=some-resource ce_type=subscriptionCreated ce_correlationid=test-cmhandle1 + Set Suite Variable ${headersGlobal} ${headers} + +All Messages Are Produced and Consumed + [Arguments] ${GROUP_ID} + Produce group_id=${PRODUCER_ID} topic=${REQUEST_TOPIC} value=${ncmpInEventJsonGlobal} headers=${headersGlobal} + Sleep 10sec + ${result}= Poll group_id=${GROUP_ID} only_value=False + ${headers} Set Variable ${result[0].headers()} + ${value} Set Variable ${result[0].value()} + ${valueAsDict}= Evaluate json.loads("""${value}""") json + ${specVersionHeaderValue} Set Variable ${headers[1][1]} + ${sourceHeaderValue} Set Variable ${headers[3][1]} + ${typeHeaderValue} Set Variable ${headers[4][1]} + ${correlationIdHeaderValue} Set Variable ${headers[6][1]} + Dictionaries Should Be Equal ${valueAsDict} ${ncmpOutEventJsonGlobal} + Should Be Equal As Strings ${specVersionHeaderValue} 1.0 + Should Be Equal As Strings ${sourceHeaderValue} NCMP + Should Be Equal As Strings ${typeHeaderValue} subscriptionCreatedStatus + Should Be Equal As Strings ${correlationIdHeaderValue} SCO-9989752cm-subscription-001 + +Basic Teardown + [Arguments] ${group_id} + Unsubscribe ${group_id} + Close Consumer ${group_id} \ No newline at end of file diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-app/pom.xml b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-app/pom.xml index 1833cf48e..2d3a9be7e 100644 --- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-app/pom.xml +++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-app/pom.xml @@ -22,7 +22,7 @@ org.onap.cps dmi-plugin-demo-and-csit-stub - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT dmi-plugin-demo-and-csit-stub-app diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/pom.xml b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/pom.xml index a148c3dc4..53f1985a6 100644 --- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/pom.xml +++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/pom.xml @@ -21,7 +21,7 @@ org.onap.cps dmi-plugin-demo-and-csit-stub - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT dmi-plugin-demo-and-csit-stub-service diff --git a/dmi-plugin-demo-and-csit-stub/pom.xml b/dmi-plugin-demo-and-csit-stub/pom.xml index f6a657887..f9f4197d2 100644 --- a/dmi-plugin-demo-and-csit-stub/pom.xml +++ b/dmi-plugin-demo-and-csit-stub/pom.xml @@ -22,7 +22,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 23f34b463..bb286fde2 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -46,7 +46,7 @@ services: DB_PASSWORD: ${DB_PASSWORD:-cps} DMI_USERNAME: ${DMI_USERNAME:-cpsuser} DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!} - KAFKA_BOOTSTRAP_SERVER: kafka:9092 + KAFKA_BOOTSTRAP_SERVER: kafka:29092 notification.enabled: 'true' notification.async.executor.time-out-value-in-ms: 2000 NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*' @@ -69,14 +69,14 @@ services: image: confluentinc/cp-kafka:6.2.1 container_name: kafka ports: - - "19092:19092" + - '9092:9092' depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,CONNECTIONS_FROM_HOST://localhost:19092 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONNECTIONS_FROM_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,CONNECTIONS_FROM_HOST://localhost:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 ncmp-dmi-plugin: @@ -97,9 +97,10 @@ services: SDNC_USERNAME: ${SDNC_USERNAME:-admin} SDNC_PASSWORD: ${SDNC_PASSWORD:-Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U} DMI_SERVICE_URL: ${DMI_SERVICE_URL:-http://ncmp-dmi-plugin:8783} + DMI_SERVICE_NAME: ${DMI_SERVICE_NAME:-dminame1} DMI_USERNAME: ${DMI_USERNAME:-cpsuser} DMI_PASSWORD: ${DMI_PASSWORD:-cpsr0cks!} - KAFKA_BOOTSTRAP_SERVER: kafka:9092 + KAFKA_BOOTSTRAP_SERVER: kafka:29092 notification.data-updated.enabled: 'true' NOTIFICATION_DATASPACE_FILTER_PATTERNS: '.*' restart: unless-stopped @@ -112,7 +113,7 @@ services: ports: - ${DMI_DEMO_STUB_PORT:-8784}:8092 environment: - KAFKA_BOOTSTRAP_SERVER: kafka:9092 + KAFKA_BOOTSTRAP_SERVER: kafka:29092 NCMP_CONSUMER_GROUP_ID: ncmp-group NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m restart: unless-stopped diff --git a/docs/api/swagger/cps/openapi.yaml b/docs/api/swagger/cps/openapi.yaml index 0e2191b67..453494ec4 100644 --- a/docs/api/swagger/cps/openapi.yaml +++ b/docs/api/swagger/cps/openapi.yaml @@ -15,14 +15,14 @@ info: x-logo: url: cps_logo.png servers: - - url: /cps/api +- url: /cps/api security: - - basicAuth: [] +- basicAuth: [] tags: - - description: cps Admin - name: cps-admin - - description: cps Data - name: cps-data +- description: cps Admin + name: cps-admin +- description: cps Data + name: cps-data paths: /v1/dataspaces: post: @@ -30,13 +30,13 @@ paths: description: Create a new dataspace operationId: createDataspace parameters: - - description: dataspace-name - in: query - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: dataspace-name + in: query + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "201": content: @@ -97,29 +97,29 @@ paths: description: Internal Server Error summary: Create a dataspace tags: - - cps-admin + - cps-admin /{apiVersion}/dataspaces: delete: description: Delete a dataspace operationId: deleteDataspace parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: query - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: query + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "204": content: {} @@ -176,19 +176,19 @@ paths: description: Internal Server Error summary: Delete a dataspace tags: - - cps-admin + - cps-admin /v2/dataspaces: post: description: Create a new dataspace operationId: createDataspaceV2 parameters: - - description: dataspace-name - in: query - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: dataspace-name + in: query + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "201": description: Created without response body @@ -244,22 +244,22 @@ paths: description: Internal Server Error summary: Create a dataspace tags: - - cps-admin + - cps-admin /{apiVersion}/admin/dataspaces: get: description: Read all dataspaces operationId: getAllDataspaces parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string responses: "200": content: @@ -311,29 +311,29 @@ paths: description: Internal Server Error summary: Get all dataspaces tags: - - cps-admin + - cps-admin /{apiVersion}/admin/dataspaces/{dataspace-name}: get: description: Read a dataspace given a dataspace name operationId: getDataspace parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "200": content: @@ -383,34 +383,34 @@ paths: description: Internal Server Error summary: Get a dataspace tags: - - cps-admin + - cps-admin /v1/dataspaces/{dataspace-name}/anchors: post: deprecated: true description: Create a new anchor in the given dataspace operationId: createAnchor parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: query - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string - - description: anchor-name - in: query - name: anchor-name - required: true - schema: - example: my-anchor - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: query + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string + - description: anchor-name + in: query + name: anchor-name + required: true + schema: + example: my-anchor + type: string responses: "201": content: @@ -471,33 +471,33 @@ paths: description: Internal Server Error summary: Create an anchor tags: - - cps-admin + - cps-admin /v2/dataspaces/{dataspace-name}/anchors: post: description: Create a new anchor in the given dataspace operationId: createAnchorV2 parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: query - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string - - description: anchor-name - in: query - name: anchor-name - required: true - schema: - example: my-anchor - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: query + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string + - description: anchor-name + in: query + name: anchor-name + required: true + schema: + example: my-anchor + type: string responses: "201": description: Created without response body @@ -553,29 +553,29 @@ paths: description: Internal Server Error summary: Create an anchor tags: - - cps-admin + - cps-admin /{apiVersion}/dataspaces/{dataspace-name}/anchors: get: description: "Read all anchors, given a dataspace" operationId: getAnchors parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "200": content: @@ -627,36 +627,36 @@ paths: description: Internal Server Error summary: Get anchors tags: - - cps-admin + - cps-admin /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}: delete: description: Delete an anchor given an anchor name and a dataspace operationId: deleteAnchor parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string responses: "204": content: {} @@ -703,35 +703,35 @@ paths: description: Internal Server Error summary: Delete an anchor tags: - - cps-admin + - cps-admin get: description: Read an anchor given an anchor name and a dataspace operationId: getAnchor parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string responses: "200": content: @@ -781,27 +781,27 @@ paths: description: Internal Server Error summary: Get an anchor tags: - - cps-admin + - cps-admin /v1/dataspaces/{dataspace-name}/schema-sets: post: deprecated: true description: Create a new schema set in the given dataspace operationId: createSchemaSet parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: query - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: query + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string requestBody: content: multipart/form-data: @@ -868,26 +868,26 @@ paths: description: Internal Server Error summary: Create a schema set tags: - - cps-admin + - cps-admin /v2/dataspaces/{dataspace-name}/schema-sets: post: description: Create a new schema set in the given dataspace operationId: createSchemaSetV2 parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: query - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: query + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string requestBody: content: multipart/form-data: @@ -949,29 +949,29 @@ paths: description: Internal Server Error summary: Create a schema set tags: - - cps-admin + - cps-admin /{apiVersion}/dataspaces/{dataspace-name}/schema-sets: get: description: "Read all schema sets, given a dataspace" operationId: getSchemaSets parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string responses: "200": content: @@ -1023,36 +1023,36 @@ paths: description: Internal Server Error summary: Get schema sets tags: - - cps-admin + - cps-admin /{apiVersion}/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}: delete: description: Delete a schema set given a schema set name and a dataspace operationId: deleteSchemaSet parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: path - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: path + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string responses: "204": content: {} @@ -1109,35 +1109,35 @@ paths: description: Internal Server Error summary: Delete a schema set tags: - - cps-admin + - cps-admin get: description: Read a schema set given a schema set name and a dataspace operationId: getSchemaSet parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: schema-set-name - in: path - name: schema-set-name - required: true - schema: - example: my-schema-set - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: schema-set-name + in: path + name: schema-set-name + required: true + schema: + example: my-schema-set + type: string responses: "200": content: @@ -1187,7 +1187,7 @@ paths: description: Internal Server Error summary: Get a schema set tags: - - cps-admin + - cps-admin /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node: get: deprecated: true @@ -1195,40 +1195,40 @@ paths: anchor and dataspace operationId: getNodeByDataspaceAndAnchor parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: include-descendants - in: query - name: include-descendants - required: false - schema: - default: false - example: false - type: boolean + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: include-descendants + in: query + name: include-descendants + required: false + schema: + default: false + example: false + type: boolean responses: "200": content: @@ -1282,7 +1282,7 @@ paths: description: Internal Server Error summary: Get a node tags: - - cps-data + - cps-data x-codegen-request-body-name: xpath /v2/dataspaces/{dataspace-name}/anchors/{anchor-name}/node: get: @@ -1290,41 +1290,42 @@ paths: anchor and dataspace operationId: getNodeByDataspaceAndAnchorV2 parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: "Number of descendants to query. Allowed values are 'none', 'all', 'direct',\ - \ 1 (for direct), -1 (for all), 0 (for none) and any positive number." - in: query - name: descendants - required: false - schema: - default: none - example: "3" - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: "Number of descendants to query. Allowed values are 'none', 'all',\ + \ 'direct', 1 (for direct), -1 (for all), 0 (for none) and any positive\ + \ number." + in: query + name: descendants + required: false + schema: + default: none + example: "3" + type: string responses: "200": content: @@ -1378,7 +1379,7 @@ paths: description: Internal Server Error summary: Get a node tags: - - cps-data + - cps-data x-codegen-request-body-name: xpath /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes: delete: @@ -1386,49 +1387,49 @@ paths: xpath. operationId: deleteDataNode parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string responses: "204": content: {} @@ -1475,56 +1476,56 @@ paths: description: Internal Server Error summary: Delete a data node tags: - - cps-data + - cps-data patch: description: Update a data node leaves for a given dataspace and anchor and a parent node xpath. This operation is currently supported for one top level data node only. operationId: updateNodeLeaves parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string requestBody: content: application/json: @@ -1587,61 +1588,61 @@ paths: description: Internal Server Error summary: Update node leaves tags: - - cps-data + - cps-data post: description: Create a node for a given anchor and dataspace operationId: createNode parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string - - description: Content type header - in: header - name: Content-Type - required: true - schema: - example: application/json - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string + - description: Content type header + in: header + name: Content-Type + required: true + schema: + example: application/json + type: string requestBody: content: application/json: @@ -1721,55 +1722,55 @@ paths: description: Internal Server Error summary: Create a node tags: - - cps-data + - cps-data put: description: "Replace a node with descendants for a given dataspace, anchor\ \ and a parent node xpath" operationId: replaceNode parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: false - schema: - default: / - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: false + schema: + default: / + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string requestBody: content: application/json: @@ -1832,45 +1833,45 @@ paths: description: Internal Server Error summary: Replace a node with descendants tags: - - cps-data + - cps-data /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes: delete: deprecated: true description: Delete one or all list element(s) for a given anchor and dataspace operationId: deleteListOrListElement parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: true - schema: - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: true + schema: + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string responses: "204": content: {} @@ -1917,54 +1918,54 @@ paths: description: Internal Server Error summary: Delete one or all list element(s) tags: - - cps-data + - cps-data /{apiVersion}/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes: post: description: Add list element(s) to a list for a given anchor and dataspace operationId: addListElements parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: true - schema: - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: true + schema: + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string requestBody: content: application/json: @@ -2025,53 +2026,53 @@ paths: description: Internal Server Error summary: Add list element(s) tags: - - cps-data + - cps-data put: description: "Replace list content under a given parent, anchor and dataspace" operationId: replaceListContent parameters: - - description: apiVersion - in: path - name: apiVersion - required: true - schema: - default: v2 - enum: - - v1 - - v2 - type: string - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" - examples: - container xpath: - value: /shops/bookstore - list attributes xpath: - value: "/shops/bookstore/categories[@code=1]" - in: query - name: xpath - required: true - schema: - type: string - - description: observed-timestamp - in: query - name: observed-timestamp - required: false - schema: - example: 2021-03-21T00:10:34.030-0100 - type: string + - description: apiVersion + in: path + name: apiVersion + required: true + schema: + default: v2 + enum: + - v1 + - v2 + type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on xpath, please refer https://docs.onap.org/projects/onap-cps/en/latest/xpath.html" + examples: + container xpath: + value: /shops/bookstore + list attributes xpath: + value: "/shops/bookstore/categories[@code=1]" + in: query + name: xpath + required: true + schema: + type: string + - description: observed-timestamp + in: query + name: observed-timestamp + required: false + schema: + example: 2021-03-21T00:10:34.030-0100 + type: string requestBody: content: application/json: @@ -2134,47 +2135,47 @@ paths: description: Internal Server Error summary: Replace list content tags: - - cps-data + - cps-data /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query: get: deprecated: true description: Query data nodes for the given dataspace and anchor using CPS path operationId: getNodesByDataspaceAndAnchorAndCpsPath parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" - examples: - container cps path: - value: //bookstore - list attributes cps path: - value: "//categories[@code=1]" - in: query - name: cps-path - required: false - schema: - default: / - type: string - - description: include-descendants - in: query - name: include-descendants - required: false - schema: - default: false - example: false - type: boolean + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" + examples: + container cps path: + value: //bookstore + list attributes cps path: + value: "//categories[@code=1]" + in: query + name: cps-path + required: false + schema: + default: / + type: string + - description: include-descendants + in: query + name: include-descendants + required: false + schema: + default: false + example: false + type: boolean responses: "200": content: @@ -2228,48 +2229,49 @@ paths: description: Internal Server Error summary: Query data nodes tags: - - cps-query + - cps-query x-codegen-request-body-name: xpath /v2/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query: get: description: Query data nodes for the given dataspace and anchor using CPS path operationId: getNodesByDataspaceAndAnchorAndCpsPathV2 parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: anchor-name - in: path - name: anchor-name - required: true - schema: - example: my-anchor - type: string - - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" - examples: - container cps path: - value: //bookstore - list attributes cps path: - value: "//categories[@code=1]" - in: query - name: cps-path - required: false - schema: - default: / - type: string - - description: "Number of descendants to query. Allowed values are 'none', 'all', 'direct',\ - \ 1 (for direct), -1 (for all), 0 (for none) and any positive number." - in: query - name: descendants - required: false - schema: - default: none - example: "3" - type: string + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: anchor-name + in: path + name: anchor-name + required: true + schema: + example: my-anchor + type: string + - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" + examples: + container cps path: + value: //bookstore + list attributes cps path: + value: "//categories[@code=1]" + in: query + name: cps-path + required: false + schema: + default: / + type: string + - description: "Number of descendants to query. Allowed values are 'none', 'all',\ + \ 'direct', 1 (for direct), -1 (for all), 0 (for none) and any positive\ + \ number." + in: query + name: descendants + required: false + schema: + default: none + example: "3" + type: string responses: "200": content: @@ -2323,7 +2325,7 @@ paths: description: Internal Server Error summary: Query data nodes tags: - - cps-query + - cps-query x-codegen-request-body-name: xpath /v2/dataspaces/{dataspace-name}/nodes/query: get: @@ -2331,48 +2333,51 @@ paths: path operationId: getNodesByDataspaceAndCpsPath parameters: - - description: dataspace-name - in: path - name: dataspace-name - required: true - schema: - example: my-dataspace - type: string - - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" - examples: - container cps path: - value: //bookstore - list attributes cps path: - value: "//categories[@code=1]" - in: query - name: cps-path - required: false - schema: - default: / - type: string - - description: "Number of descendants to query. Allowed values are 'none', 'all', 'direct',\ - \ 1 (for direct), -1 (for all), 0 (for none) and any positive number." - in: query - name: descendants - required: false - schema: - default: none - example: "3" - type: string - - description: "page index for pagination over anchors" - name: pageIndex - in: query - required: false - schema: - type: integer - minimum: 1 - - description: "number of records (anchors) to query per page" - name: pageSize - in: query - required: false - schema: - type: integer - minimum: 1 + - description: dataspace-name + in: path + name: dataspace-name + required: true + schema: + example: my-dataspace + type: string + - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" + examples: + container cps path: + value: //bookstore + list attributes cps path: + value: "//categories[@code=1]" + in: query + name: cps-path + required: false + schema: + default: / + type: string + - description: "Number of descendants to query. Allowed values are 'none', 'all',\ + \ 'direct', 1 (for direct), -1 (for all), 0 (for none) and any positive\ + \ number." + in: query + name: descendants + required: false + schema: + default: none + example: "3" + type: string + - description: page index for pagination over anchors. It must be greater then + zero if provided. + in: query + name: pageIndex + required: false + schema: + example: 1 + type: integer + - description: number of records (anchors) per page. It must be greater then + zero if provided. + in: query + name: pageSize + required: false + schema: + example: 10 + type: integer responses: "200": content: @@ -2384,11 +2389,6 @@ paths: schema: type: object description: OK - headers: - total-pages: - schema: - type: integer - description: Total number of pages for given page size "400": content: application/json: @@ -2429,9 +2429,9 @@ paths: schema: $ref: '#/components/schemas/ErrorMessage' description: Internal Server Error - summary: Query data nodes + summary: Query data nodes across anchors tags: - - cps-query + - cps-query x-codegen-request-body-name: xpath components: examples: @@ -2440,34 +2440,34 @@ components: test:bookstore: bookstore-name: Chapters categories: - - code: 1 - name: SciFi - - code: 2 - name: kids + - code: 1 + name: SciFi + - code: 2 + name: kids dataSampleXml: value: Chapters 1 SciFi dataSampleAcrossAnchors: value: - - anchorName: bookstore1 - dataNode: - test:bookstore: - bookstore-name: Chapters - categories: - - code: 1 - name: SciFi - - code: 2 - name: kids - - anchorName: bookstore2 - dataNode: - test:bookstore: - bookstore-name: Chapters - categories: - - code: 1 - name: SciFi - - code: 2 - name: kids + - anchorName: bookstore1 + dataNode: + test:bookstore: + bookstore-name: Chapters + categories: + - code: 1 + name: SciFi + - code: 2 + name: kids + - anchorName: bookstore2 + dataNode: + test:bookstore: + bookstore-name: Chapters + categories: + - code: 1 + name: SciFi + - code: 2 + name: kids parameters: dataspaceNameInQuery: description: dataspace-name @@ -2485,8 +2485,8 @@ components: schema: default: v2 enum: - - v1 - - v2 + - v1 + - v2 type: string dataspaceNameInPath: description: dataspace-name @@ -2551,8 +2551,8 @@ components: example: false type: boolean descendantsInQuery: - description: "Number of descendants to query. Allowed values are 'none', 'all', 'direct',\ - \ 1 (for direct), -1 (for all), 0 (for none) and any positive number." + description: "Number of descendants to query. Allowed values are 'none', 'all',\ + \ 'direct', 1 (for direct), -1 (for all), 0 (for none) and any positive number." in: query name: descendants required: false @@ -2601,6 +2601,24 @@ components: schema: default: / type: string + pageIndexInQuery: + description: page index for pagination over anchors. It must be greater then + zero if provided. + in: query + name: pageIndex + required: false + schema: + example: 1 + type: integer + pageSizeInQuery: + description: number of records (anchors) per page. It must be greater then zero + if provided. + in: query + name: pageSize + required: false + schema: + example: 10 + type: integer responses: Created: content: @@ -2720,19 +2738,19 @@ components: format: binary type: string required: - - file + - file type: object SchemaSetDetails: example: dataspaceName: my-dataspace name: my-schema-set moduleReferences: - - name: my-module-reference-name - namespace: my-module-reference-namespace - revision: my-module-reference-revision - - name: my-module-reference-name - namespace: my-module-reference-namespace - revision: my-module-reference-revision + - name: my-module-reference-name + namespace: my-module-reference-namespace + revision: my-module-reference-revision + - name: my-module-reference-name + namespace: my-module-reference-namespace + revision: my-module-reference-revision properties: dataspaceName: example: my-dataspace @@ -2745,7 +2763,7 @@ components: example: my-schema-set type: string required: - - moduleReferences + - moduleReferences title: Schema set details by dataspace and schemasetName type: object ModuleReferences: @@ -2768,4 +2786,4 @@ components: securitySchemes: basicAuth: scheme: basic - type: http \ No newline at end of file + type: http diff --git a/docs/api/swagger/ncmp/openapi-inventory.yaml b/docs/api/swagger/ncmp/openapi-inventory.yaml index bb4cca0cb..6203c857a 100644 --- a/docs/api/swagger/ncmp/openapi-inventory.yaml +++ b/docs/api/swagger/ncmp/openapi-inventory.yaml @@ -4,9 +4,9 @@ info: title: NCMP Inventory API version: "1.0" servers: - - url: /ncmpInventory +- url: /ncmpInventory security: - - basicAuth: [] +- basicAuth: [] paths: /v1/ch: post: @@ -57,35 +57,35 @@ paths: application/json: example: failedCreatedCmHandles: - - cmHandle: my-cm-handle-01 - errorCode: "00" - errorText: Unknown error. - - cmHandle: my-cm-handle-02 - errorCode: "01" - errorText: cm-handle already exists - - cmHandle: my-cm-handle-03 - errorCode: "03" - errorText: cm-handle has an invalid character(s) in id + - cmHandle: my-cm-handle-01 + errorCode: "00" + errorText: Unknown error. + - cmHandle: my-cm-handle-02 + errorCode: "01" + errorText: cm-handle already exists + - cmHandle: my-cm-handle-03 + errorCode: "03" + errorText: cm-handle has an invalid character(s) in id failedUpdatedCmHandles: - - cmHandle: my-cm-handle-01 - errorCode: "00" - errorText: Unknown error. - - cmHandle: my-cm-handle-02 - errorCode: "02" - errorText: cm-handle does not exist - - cmHandle: my-cm-handle-03 - errorCode: "03" - errorText: cm-handle has an invalid character(s) in id + - cmHandle: my-cm-handle-01 + errorCode: "00" + errorText: Unknown error. + - cmHandle: my-cm-handle-02 + errorCode: "02" + errorText: cm-handle does not exist + - cmHandle: my-cm-handle-03 + errorCode: "03" + errorText: cm-handle has an invalid character(s) in id failedRemovedCmHandles: - - cmHandle: my-cm-handle-01 - errorCode: "00" - errorText: Unknown error. - - cmHandle: my-cm-handle-02 - errorCode: "02" - errorText: cm-handle does not exists - - cmHandle: my-cm-handle-03 - errorCode: "03" - errorText: cm-handle has an invalid character(s) in id + - cmHandle: my-cm-handle-01 + errorCode: "00" + errorText: Unknown error. + - cmHandle: my-cm-handle-02 + errorCode: "02" + errorText: cm-handle does not exists + - cmHandle: my-cm-handle-03 + errorCode: "03" + errorText: cm-handle has an invalid character(s) in id schema: $ref: '#/components/schemas/DmiPluginRegistrationErrorResponse' description: Partial or Complete failure. The error details are provided @@ -93,19 +93,19 @@ paths: example. summary: DMI notifies NCMP of new CM Handles tags: - - network-cm-proxy-inventory + - network-cm-proxy-inventory /v1/ch/cmHandles: get: description: Get all cm handle IDs for a registered DMI plugin operationId: getAllCmHandleIdsForRegisteredDmi parameters: - - description: dmi-plugin-identifier - in: query - name: dmi-plugin-identifier - required: true - schema: - example: my-dmi-plugin - type: string + - description: dmi-plugin-identifier + in: query + name: dmi-plugin-identifier + required: true + schema: + example: my-dmi-plugin + type: string responses: "200": content: @@ -148,7 +148,7 @@ paths: summary: "Get all cm handle IDs for a registered DMI plugin (DMI plugin, DMI\ \ data plugin, DMI model plugin)" tags: - - network-cm-proxy-inventory + - network-cm-proxy-inventory /v1/ch/searches: post: description: "Query and get CMHandleIds for additional properties, public properties\ @@ -201,7 +201,7 @@ paths: description: Internal Server Error summary: Query for CM Handle IDs tags: - - network-cm-proxy-inventory + - network-cm-proxy-inventory components: parameters: dmiPluginIdentifierInQuery: @@ -260,34 +260,34 @@ components: RestDmiPluginRegistration: example: updatedCmHandles: - - cmHandle: my-cm-handle - publicCmHandleProperties: - key: my-property - cmHandleProperties: - key: my-property - - cmHandle: my-cm-handle - publicCmHandleProperties: - key: my-property - cmHandleProperties: - key: my-property + - cmHandle: my-cm-handle + publicCmHandleProperties: + key: my-property + cmHandleProperties: + key: my-property + - cmHandle: my-cm-handle + publicCmHandleProperties: + key: my-property + cmHandleProperties: + key: my-property createdCmHandles: - - cmHandle: my-cm-handle - publicCmHandleProperties: - key: my-property - cmHandleProperties: - key: my-property - - cmHandle: my-cm-handle - publicCmHandleProperties: - key: my-property - cmHandleProperties: - key: my-property + - cmHandle: my-cm-handle + publicCmHandleProperties: + key: my-property + cmHandleProperties: + key: my-property + - cmHandle: my-cm-handle + publicCmHandleProperties: + key: my-property + cmHandleProperties: + key: my-property dmiPlugin: my-dmi-plugin dmiModelPlugin: my-dmi-model-plugin dmiDataPlugin: my-dmi-data-plugin removedCmHandles: - - my-cm-handle1 - - my-cm-handle2 - - my-cm-handle3 + - my-cm-handle1 + - my-cm-handle2 + - my-cm-handle3 properties: dmiPlugin: default: "" @@ -311,9 +311,9 @@ components: type: array removedCmHandles: example: - - my-cm-handle1 - - my-cm-handle2 - - my-cm-handle3 + - my-cm-handle1 + - my-cm-handle2 + - my-cm-handle3 items: type: string type: array @@ -340,7 +340,7 @@ components: type: string type: object required: - - cmHandle + - cmHandle type: object RestCmHandleProperties: additionalProperties: @@ -387,23 +387,23 @@ components: CmHandleQueryParameters: example: cmHandleQueryParameters: - - conditionParameters: - - key: conditionParameters - - key: conditionParameters - conditionName: conditionName - - conditionParameters: - - key: conditionParameters - - key: conditionParameters - conditionName: conditionName + - conditionParameters: + - key: conditionParameters + - key: conditionParameters + conditionName: conditionName + - conditionParameters: + - key: conditionParameters + - key: conditionParameters + conditionName: conditionName conditions: - - name: name - conditionParameters: - - moduleName: my-module - - moduleName: my-module - - name: name - conditionParameters: - - moduleName: my-module - - moduleName: my-module + - name: name + conditionParameters: + - moduleName: my-module + - moduleName: my-module + - name: name + conditionParameters: + - moduleName: my-module + - moduleName: my-module properties: cmHandleQueryParameters: items: @@ -420,8 +420,8 @@ components: ConditionProperties: example: conditionParameters: - - key: conditionParameters - - key: conditionParameters + - key: conditionParameters + - key: conditionParameters conditionName: conditionName properties: conditionName: @@ -437,8 +437,8 @@ components: example: name: name conditionParameters: - - moduleName: my-module - - moduleName: my-module + - moduleName: my-module + - moduleName: my-module properties: name: type: string diff --git a/docs/api/swagger/ncmp/openapi.yaml b/docs/api/swagger/ncmp/openapi.yaml index a0c5b1710..810210f58 100644 --- a/docs/api/swagger/ncmp/openapi.yaml +++ b/docs/api/swagger/ncmp/openapi.yaml @@ -4,58 +4,58 @@ info: title: NCMP to CPS Proxy API version: "1.0" servers: - - url: /ncmp +- url: /ncmp security: - - basicAuth: [] +- basicAuth: [] paths: /v1/ch/{cm-handle}/data/ds/{datastore-name}: delete: description: Delete resource data from pass-through running for a given cm handle operationId: deleteResourceDataRunningForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - allowReserved: true - description: The format of resource identifier depend on the associated DMI - Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but - it can really be anything. - examples: - sample 1: - value: - resourceIdentifier: \shops\bookstore - sample 2: - value: - resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" - sample 3: - value: - resourceIdentifier: "parent=shops,child=bookstore" - in: query - name: resourceIdentifier - required: true - schema: - type: string - - description: "Content parameter for request, if content parameter is null,\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - allowReserved: true + description: The format of resource identifier depend on the associated DMI + Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but + it can really be anything. + examples: + sample 1: + value: + resourceIdentifier: \shops\bookstore + sample 2: + value: + resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" + sample 3: + value: + resourceIdentifier: "parent=shops,child=bookstore" + in: query + name: resourceIdentifier + required: true + schema: + type: string + - description: "Content parameter for request, if content parameter is null,\ \ default value is application/json." - in: header - name: Content-Type - required: false - schema: - default: application/json - example: application/yang-data+json - type: string + in: header + name: Content-Type + required: false + schema: + default: application/json + example: application/yang-data+json + type: string responses: "204": content: {} @@ -123,82 +123,82 @@ paths: description: Bad Gateway summary: Delete resource data tags: - - network-cm-proxy + - network-cm-proxy get: description: Get resource data for given cm handle operationId: getResourceDataForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - allowReserved: true - description: The format of resource identifier depend on the associated DMI - Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but - it can really be anything. - examples: - sample 1: - value: - resourceIdentifier: \shops\bookstore - sample 2: - value: - resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" - sample 3: - value: - resourceIdentifier: "parent=shops,child=bookstore" - in: query - name: resourceIdentifier - required: true - schema: - type: string - - allowReserved: true - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - allowReserved: true + description: The format of resource identifier depend on the associated DMI + Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but + it can really be anything. + examples: + sample 1: + value: + resourceIdentifier: \shops\bookstore + sample 2: + value: + resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" + sample 3: + value: + resourceIdentifier: "parent=shops,child=bookstore" + in: query + name: resourceIdentifier + required: true + schema: + type: string + - allowReserved: true + description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ \ in parenthesis'()'. The format of options parameter depend on the associated\ \ DMI Plugin implementation." - examples: - sample 1: - value: - options: (depth=3) - sample 2: - value: - options: (fields=book) - sample 3: - value: - options: "(depth=2,fields=book/authors)" - in: query - name: options - required: false - schema: - type: string - - allowReserved: true - description: topic parameter in query. - examples: - sample 1: - value: - topic: my-topic-name - in: query - name: topic - required: false - schema: - type: string - - description: Determines if descendants are included in response - in: query - name: include-descendants - required: false - schema: - default: false - type: boolean + examples: + sample 1: + value: + options: (depth=3) + sample 2: + value: + options: (fields=book) + sample 3: + value: + options: "(depth=2,fields=book/authors)" + in: query + name: options + required: false + schema: + type: string + - allowReserved: true + description: topic parameter in query. + examples: + sample 1: + value: + topic: my-topic-name + in: query + name: topic + required: false + schema: + type: string + - description: Determines if descendants are included in response + in: query + name: include-descendants + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -263,55 +263,55 @@ paths: description: Bad Gateway summary: Get resource data for cm handle tags: - - network-cm-proxy + - network-cm-proxy patch: description: Patch resource data from pass-through running for the given cm handle operationId: patchResourceDataRunningForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - allowReserved: true - description: The format of resource identifier depend on the associated DMI - Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but - it can really be anything. - examples: - sample 1: - value: - resourceIdentifier: \shops\bookstore - sample 2: - value: - resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" - sample 3: - value: - resourceIdentifier: "parent=shops,child=bookstore" - in: query - name: resourceIdentifier - required: true - schema: - type: string - - description: "Content parameter for request, if content parameter is null,\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - allowReserved: true + description: The format of resource identifier depend on the associated DMI + Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but + it can really be anything. + examples: + sample 1: + value: + resourceIdentifier: \shops\bookstore + sample 2: + value: + resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" + sample 3: + value: + resourceIdentifier: "parent=shops,child=bookstore" + in: query + name: resourceIdentifier + required: true + schema: + type: string + - description: "Content parameter for request, if content parameter is null,\ \ default value is application/json." - in: header - name: Content-Type - required: false - schema: - default: application/json - example: application/yang-data+json - type: string + in: header + name: Content-Type + required: false + schema: + default: application/json + example: application/yang-data+json + type: string requestBody: content: '*/*': @@ -382,54 +382,54 @@ paths: description: Bad Gateway summary: Patch resource data from pass-through running tags: - - network-cm-proxy + - network-cm-proxy post: description: create resource data from pass-through running for given cm handle operationId: createResourceDataRunningForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - allowReserved: true - description: The format of resource identifier depend on the associated DMI - Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but - it can really be anything. - examples: - sample 1: - value: - resourceIdentifier: \shops\bookstore - sample 2: - value: - resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" - sample 3: - value: - resourceIdentifier: "parent=shops,child=bookstore" - in: query - name: resourceIdentifier - required: true - schema: - type: string - - description: "Content parameter for request, if content parameter is null,\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - allowReserved: true + description: The format of resource identifier depend on the associated DMI + Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but + it can really be anything. + examples: + sample 1: + value: + resourceIdentifier: \shops\bookstore + sample 2: + value: + resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" + sample 3: + value: + resourceIdentifier: "parent=shops,child=bookstore" + in: query + name: resourceIdentifier + required: true + schema: + type: string + - description: "Content parameter for request, if content parameter is null,\ \ default value is application/json." - in: header - name: Content-Type - required: false - schema: - default: application/json - example: application/yang-data+json - type: string + in: header + name: Content-Type + required: false + schema: + default: application/json + example: application/yang-data+json + type: string requestBody: content: application/json: @@ -504,55 +504,55 @@ paths: description: Bad Gateway summary: create resource data from pass-through running for cm handle tags: - - network-cm-proxy + - network-cm-proxy put: description: Update resource data from pass-through running for the given cm handle operationId: updateResourceDataRunningForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - allowReserved: true - description: The format of resource identifier depend on the associated DMI - Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but - it can really be anything. - examples: - sample 1: - value: - resourceIdentifier: \shops\bookstore - sample 2: - value: - resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" - sample 3: - value: - resourceIdentifier: "parent=shops,child=bookstore" - in: query - name: resourceIdentifier - required: true - schema: - type: string - - description: "Content parameter for request, if content parameter is null,\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - allowReserved: true + description: The format of resource identifier depend on the associated DMI + Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but + it can really be anything. + examples: + sample 1: + value: + resourceIdentifier: \shops\bookstore + sample 2: + value: + resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]" + sample 3: + value: + resourceIdentifier: "parent=shops,child=bookstore" + in: query + name: resourceIdentifier + required: true + schema: + type: string + - description: "Content parameter for request, if content parameter is null,\ \ default value is application/json." - in: header - name: Content-Type - required: false - schema: - default: application/json - example: application/yang-data+json - type: string + in: header + name: Content-Type + required: false + schema: + default: application/json + example: application/yang-data+json + type: string requestBody: content: application/json: @@ -630,7 +630,7 @@ paths: description: Bad Gateway summary: Update resource data from pass-through running for a cm handle tags: - - network-cm-proxy + - network-cm-proxy /v1/data: post: description: This request will be handled asynchronously using messaging to @@ -638,17 +638,17 @@ paths: to identify the relevant messages. operationId: executeDataOperationForCmHandles parameters: - - allowReserved: true - description: mandatory topic parameter in query. - examples: - sample 1: - value: - topic: my-topic-name - in: query - name: topic - required: true - schema: - type: string + - allowReserved: true + description: mandatory topic parameter in query. + examples: + sample 1: + value: + topic: my-topic-name + in: query + name: topic + required: true + schema: + type: string requestBody: content: application/json: @@ -715,76 +715,76 @@ paths: description: Bad Gateway summary: Execute a data operation for group of cm handle ids tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/data/ds/{datastore-name}/query: get: description: Query resource data for a given cm handle operationId: queryResourceDataForCmHandle parameters: - - description: The type of the requested data - in: path - name: datastore-name - required: true - schema: - example: ncmp-datastore:running - type: string - - description: "The identifier for a network function, network element, subnetwork\ + - description: The type of the requested data + in: path + name: datastore-name + required: true + schema: + example: ncmp-datastore:running + type: string + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" - examples: - container cps path: - value: //bookstore - list attributes cps path: - value: "//categories[@code=1]" - in: query - name: cps-path - required: false - schema: - default: / - type: string - - allowReserved: true - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html" + examples: + container cps path: + value: //bookstore + list attributes cps path: + value: "//categories[@code=1]" + in: query + name: cps-path + required: false + schema: + default: / + type: string + - allowReserved: true + description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\ \ in parenthesis'()'. The format of options parameter depend on the associated\ \ DMI Plugin implementation." - examples: - sample 1: - value: - options: (depth=3) - sample 2: - value: - options: (fields=book) - sample 3: - value: - options: "(depth=2,fields=book/authors)" - in: query - name: options - required: false - schema: - type: string - - allowReserved: true - description: topic parameter in query. - examples: - sample 1: - value: - topic: my-topic-name - in: query - name: topic - required: false - schema: - type: string - - description: Determines if descendants are included in response - in: query - name: include-descendants - required: false - schema: - default: false - type: boolean + examples: + sample 1: + value: + options: (depth=3) + sample 2: + value: + options: (fields=book) + sample 3: + value: + options: "(depth=2,fields=book/authors)" + in: query + name: options + required: false + schema: + type: string + - allowReserved: true + description: topic parameter in query. + examples: + sample 1: + value: + topic: my-topic-name + in: query + name: topic + required: false + schema: + type: string + - description: Determines if descendants are included in response + in: query + name: include-descendants + required: false + schema: + default: false + type: boolean responses: "200": content: @@ -849,21 +849,21 @@ paths: description: Bad Gateway summary: Query resource data for a given cm handle tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/modules: get: description: fetch all module references (name and revision) for a given cm handle operationId: getModuleReferencesByCmHandle parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string responses: "200": content: @@ -915,21 +915,21 @@ paths: description: Internal Server Error summary: Fetch all module references (name and revision) for a given cm handle tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/modules/definitions: get: description: "Fetch all module definitions (name, revision, yang resource) for\ \ a given cm handle" operationId: getModuleDefinitionsByCmHandleId parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string responses: "200": content: @@ -972,7 +972,7 @@ paths: summary: "Fetch all module definitions (name, revision, yang resource) for a\ \ given cm handle" tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/searches: post: description: Execute cm handle query search and return a list of cm handle details. @@ -1059,20 +1059,20 @@ paths: description: Internal Server Error summary: Execute cm handle search using the available conditions tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}: get: description: Retrieve CM handle details and properties by cm handle id operationId: retrieveCmHandleDetailsById parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string responses: "200": content: @@ -1122,20 +1122,20 @@ paths: description: Internal Server Error summary: Retrieve CM handle details tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/properties: get: description: Get CM handle properties by cm handle id operationId: getCmHandlePublicPropertiesByCmHandleId parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string responses: "200": content: @@ -1185,7 +1185,7 @@ paths: description: Internal Server Error summary: Get CM handle properties tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/id-searches: post: description: Execute cm handle query search and return a list of cm handle ids. @@ -1282,20 +1282,20 @@ paths: description: Internal Server Error summary: Execute cm handle query upon a given set of query parameters tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/state: get: description: Get CM handle state by cm handle id operationId: getCmHandleStateByCmHandleId parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string responses: "200": content: @@ -1345,7 +1345,7 @@ paths: description: Internal Server Error summary: Get CM handle state tags: - - network-cm-proxy + - network-cm-proxy /v1/ch/{cm-handle}/data-sync: put: description: Set the data sync enabled flag to true or false for a specified @@ -1353,21 +1353,21 @@ paths: NONE_REQUESTED respectfully. operationId: setDataSyncEnabledFlagForCmHandle parameters: - - description: "The identifier for a network function, network element, subnetwork\ + - description: "The identifier for a network function, network element, subnetwork\ \ or any other cm object by managed Network CM Proxy" - in: path - name: cm-handle - required: true - schema: - example: my-cm-handle - type: string - - description: Is used to enable or disable the data synchronization flag - in: query - name: dataSyncEnabled - required: true - schema: - example: true - type: boolean + in: path + name: cm-handle + required: true + schema: + example: my-cm-handle + type: string + - description: Is used to enable or disable the data synchronization flag + in: query + name: dataSyncEnabled + required: true + schema: + example: true + type: boolean responses: "200": content: @@ -1428,7 +1428,7 @@ paths: description: Bad Gateway summary: Set the Data Sync Enabled Flag tags: - - network-cm-proxy + - network-cm-proxy components: examples: dataSampleResponse: @@ -1437,17 +1437,17 @@ components: value: bookstore: categories: - - code: "01" - books: - - authors: - - Iain M. Banks - - Ursula K. Le Guin - name: SciFi - - code: "02" - books: - - authors: - - Philip Pullman - name: kids + - code: "01" + books: + - authors: + - Iain M. Banks + - Ursula K. Le Guin + name: SciFi + - code: "02" + books: + - authors: + - Philip Pullman + name: kids dataSampleRequest: description: Sample request body summary: Sample request @@ -1455,17 +1455,17 @@ components: test:bookstore: bookstore-name: Chapters categories: - - code: "01" - name: SciFi - books: - - authors: - - Iain M. Banks - - Ursula K. Le Guin - - code: "02" - name: kids - books: - - authors: - - Philip Pullman + - code: "01" + name: SciFi + books: + - authors: + - Iain M. Banks + - Ursula K. Le Guin + - code: "02" + name: kids + books: + - authors: + - Philip Pullman dataSamplePatchRequest: description: Sample patch request body summary: Sample patch request @@ -1473,86 +1473,86 @@ components: ietf-restconf:yang-patch: patch-id: patch-1 edit: - - edit-id: edit1 - operation: merge - target: / - value: - test:bookstore: - bookstore-name: Chapters - categories: - - code: "01" - name: Science - books: - - authors: - - Author1 - - Author2 - - code: "02" - name: Arts - books: - - authors: - - Author3 - - edit-id: edit2 - operation: merge - target: / - value: - test:bookstore: - bookstore-name: Novels - categories: - - code: "03" - name: History - books: - - authors: - - Iain M. Banks - - Ursula K. Le Guin - - code: "04" - name: Fiction - books: - - authors: - - Philip Pullman + - edit-id: edit1 + operation: merge + target: / + value: + test:bookstore: + bookstore-name: Chapters + categories: + - code: "01" + name: Science + books: + - authors: + - Author1 + - Author2 + - code: "02" + name: Arts + books: + - authors: + - Author3 + - edit-id: edit2 + operation: merge + target: / + value: + test:bookstore: + bookstore-name: Novels + categories: + - code: "03" + name: History + books: + - authors: + - Iain M. Banks + - Ursula K. Le Guin + - code: "04" + name: Fiction + books: + - authors: + - Philip Pullman pubPropCmHandleQueryParameters: value: cmHandleQueryParameters: - - conditionName: hasAllProperties - conditionParameters: - - Color: yellow - - Shape: circle - - Size: small + - conditionName: hasAllProperties + conditionParameters: + - Color: yellow + - Shape: circle + - Size: small modulesCmHandleQueryParameters: value: cmHandleQueryParameters: - - conditionName: hasAllModules - conditionParameters: - - moduleName: my-module-1 - - moduleName: my-module-2 - - moduleName: my-module-3 + - conditionName: hasAllModules + conditionParameters: + - moduleName: my-module-1 + - moduleName: my-module-2 + - moduleName: my-module-3 allCmHandleQueryParameters: value: cmHandleQueryParameters: - - conditionName: hasAllModules - conditionParameters: - - moduleName: my-module-1 - - moduleName: my-module-2 - - moduleName: my-module-3 - - conditionName: hasAllProperties - conditionParameters: - - Color: yellow - - Shape: circle - - Size: small - - conditionName: cmHandleWithCpsPath - conditionParameters: - - cpsPath: "//state[@cm-handle-state='ADVISED']" + - conditionName: hasAllModules + conditionParameters: + - moduleName: my-module-1 + - moduleName: my-module-2 + - moduleName: my-module-3 + - conditionName: hasAllProperties + conditionParameters: + - Color: yellow + - Shape: circle + - Size: small + - conditionName: cmHandleWithCpsPath + conditionParameters: + - cpsPath: "//state[@cm-handle-state='ADVISED']" cpsPathCmHandleStateQueryParameters: value: cmHandleQueryParameters: - - conditionName: cmHandleWithCpsPath - conditionParameters: - - cpsPath: "//state[@cm-handle-state='LOCKED']" + - conditionName: cmHandleWithCpsPath + conditionParameters: + - cpsPath: "//state[@cm-handle-state='LOCKED']" cpsPathCmHandleDataSyncQueryParameters: value: cmHandleQueryParameters: - - conditionName: cmHandleWithCpsPath - conditionParameters: - - cpsPath: "//state[@data-sync-enabled='true']" + - conditionName: cmHandleWithCpsPath + conditionParameters: + - cpsPath: "//state[@data-sync-enabled='true']" parameters: datastoreName: description: The type of the requested data @@ -1771,26 +1771,26 @@ components: DataOperationRequest: example: operations: - - resourceIdentifier: parent/child - targetIds: - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + - resourceIdentifier: parent/child + targetIds: + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" - datastore: ncmp-datastore:passthrough-operational - options: (fields=schemas/schema) - operationId: "12" - operation: read - - resourceIdentifier: parent/child - targetIds: - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + datastore: ncmp-datastore:passthrough-operational + options: (fields=schemas/schema) + operationId: "12" + operation: read + - resourceIdentifier: parent/child + targetIds: + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" - datastore: ncmp-datastore:passthrough-operational - options: (fields=schemas/schema) - operationId: "12" - operation: read + datastore: ncmp-datastore:passthrough-operational + options: (fields=schemas/schema) + operationId: "12" + operation: read properties: operations: description: contains group of data operation requests @@ -1803,9 +1803,9 @@ components: example: resourceIdentifier: parent/child targetIds: - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" - - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ + - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\ ]" datastore: ncmp-datastore:passthrough-operational options: (fields=schemas/schema) @@ -1834,9 +1834,9 @@ components: type: string type: array required: - - datastore - - operation - - operationId + - datastore + - operation + - operationId RestModuleReference: example: moduleName: my-module-name @@ -1888,23 +1888,23 @@ components: CmHandleQueryParameters: example: cmHandleQueryParameters: - - conditionParameters: - - key: conditionParameters - - key: conditionParameters - conditionName: conditionName - - conditionParameters: - - key: conditionParameters - - key: conditionParameters - conditionName: conditionName + - conditionParameters: + - key: conditionParameters + - key: conditionParameters + conditionName: conditionName + - conditionParameters: + - key: conditionParameters + - key: conditionParameters + conditionName: conditionName conditions: - - name: name - conditionParameters: - - moduleName: my-module - - moduleName: my-module - - name: name - conditionParameters: - - moduleName: my-module - - moduleName: my-module + - name: name + conditionParameters: + - moduleName: my-module + - moduleName: my-module + - name: name + conditionParameters: + - moduleName: my-module + - moduleName: my-module properties: cmHandleQueryParameters: items: @@ -1921,8 +1921,8 @@ components: ConditionProperties: example: conditionParameters: - - key: conditionParameters - - key: conditionParameters + - key: conditionParameters + - key: conditionParameters conditionName: conditionName properties: conditionName: @@ -1938,8 +1938,8 @@ components: example: name: name conditionParameters: - - moduleName: my-module - - moduleName: my-module + - moduleName: my-module + - moduleName: my-module properties: name: type: string @@ -1958,8 +1958,8 @@ components: example: cmHandle: my-cm-handle1 publicCmHandleProperties: - - key: Book Type - - key: Book Type + - key: Book Type + - key: Book Type state: dataSyncEnabled: false dataSyncState: @@ -2067,8 +2067,8 @@ components: RestOutputCmHandlePublicProperties: example: publicCmHandleProperties: - - key: Book Type - - key: Book Type + - key: Book Type + - key: Book Type properties: publicCmHandleProperties: items: diff --git a/docs/cps-ncmp-message-status-codes.rst b/docs/cps-ncmp-message-status-codes.rst index 99d802f76..1b74153d7 100644 --- a/docs/cps-ncmp-message-status-codes.rst +++ b/docs/cps-ncmp-message-status-codes.rst @@ -30,6 +30,8 @@ CPS-NCMP Message Status Codes +-----------------+------------------------------------------------------+-----------------------------------+ | 106 | subscription pending for all cm handles | CM Data Notification Subscription | +-----------------+------------------------------------------------------+-----------------------------------+ + | 107 | southbound system is busy | Data Operation | + +-----------------+------------------------------------------------------+-----------------------------------+ .. note:: diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 3f672ad62..013617a81 100755 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -16,6 +16,33 @@ CPS Release Notes .. * * * MONTREAL * * * .. ======================== +Version: 3.3.7 +============== + +Release Data +------------ + ++--------------------------------------+--------------------------------------------------------+ +| **CPS Project** | | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Docker images** | onap/cps-and-ncmp:3.3.7 | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release designation** | 3.3.7 Montreal | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release date** | Not yet released | +| | | ++--------------------------------------+--------------------------------------------------------+ + +Bug Fixes +--------- +3.3.7 + +Features +-------- + Version: 3.3.6 ============== @@ -32,7 +59,7 @@ Release Data | **Release designation** | 3.3.6 Montreal | | | | +--------------------------------------+--------------------------------------------------------+ -| **Release date** | Not yet released | +| **Release date** | 2023 August 23 | | | | +--------------------------------------+--------------------------------------------------------+ @@ -40,6 +67,7 @@ Bug Fixes --------- 3.3.6 - `CPS-1841 `_ Update of top-level data node fails with exception + - `CPS-1842 `_ Replace event-id with correlation-id for data read operation cloud event Features -------- diff --git a/integration-test/pom.xml b/integration-test/pom.xml index 16c16649a..9ae7d0cfc 100644 --- a/integration-test/pom.xml +++ b/integration-test/pom.xml @@ -23,7 +23,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy index 82a415ece..2fe275383 100644 --- a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy +++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy @@ -102,6 +102,20 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { cpsPath << [ 'invalid path', '/non-existing-path' ] } + def 'Get data nodes error scenario #scenario'() { + when: 'attempt to retrieve data nodes' + objectUnderTest.getDataNodes(dataspaceName, anchorName, xpath, OMIT_DESCENDANTS) + then: 'expected exception is thrown' + thrown(expectedException) + where: 'following data is used' + scenario | dataspaceName | anchorName | xpath || expectedException + 'non existent dataspace' | 'non-existent' | 'not-relevant' | '/not-relevant' || DataspaceNotFoundException + 'non existent anchor' | FUNCTIONAL_TEST_DATASPACE_1 | 'non-existent' | '/not-relevant' || AnchorNotFoundException + 'non-existent xpath' | FUNCTIONAL_TEST_DATASPACE_1 | BOOKSTORE_ANCHOR_1| '/non-existing' || DataNodeNotFoundException + 'invalid-dataspace' | 'Invalid dataspace' | 'not-relevant' | '/not-relevant' || DataValidationException + 'invalid-dataspace' | FUNCTIONAL_TEST_DATASPACE_1 | 'Invalid Anchor' | '/not-relevant' || DataValidationException + } + def 'Delete root data node.'() { when: 'the "root" is deleted' objectUnderTest.deleteDataNodes(FUNCTIONAL_TEST_DATASPACE_1, BOOKSTORE_ANCHOR_1, [ '/' ], now) diff --git a/jacoco-report/pom.xml b/jacoco-report/pom.xml index 9dbd89694..c8a3be8d3 100644 --- a/jacoco-report/pom.xml +++ b/jacoco-report/pom.xml @@ -5,7 +5,7 @@ org.onap.cps cps-parent - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT ../cps-parent/pom.xml 4.0.0 diff --git a/pom.xml b/pom.xml index 6e8f4acb2..083476767 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ org.onap.cps cps-aggregator - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT pom cps diff --git a/releases/3.3.6-container.yaml b/releases/3.3.6-container.yaml new file mode 100644 index 000000000..47110169f --- /dev/null +++ b/releases/3.3.6-container.yaml @@ -0,0 +1,8 @@ +distribution_type: container +container_release_tag: 3.3.6 +project: cps +log_dir: cps-maven-docker-stage-master/927/ +ref: 41c7d00a68c0dd6a0fc49f6b22cc5a19753edea9 +containers: + - name: 'cps-and-ncmp' + version: '3.3.6-20230823T110851Z' \ No newline at end of file diff --git a/releases/3.3.6.yaml b/releases/3.3.6.yaml new file mode 100644 index 000000000..35957fe37 --- /dev/null +++ b/releases/3.3.6.yaml @@ -0,0 +1,4 @@ +distribution_type: maven +log_dir: cps-maven-stage-master/935/ +project: cps +version: 3.3.6 \ No newline at end of file diff --git a/spotbugs/pom.xml b/spotbugs/pom.xml index 546076f44..daa47565f 100644 --- a/spotbugs/pom.xml +++ b/spotbugs/pom.xml @@ -25,7 +25,7 @@ 4.0.0 org.onap.cps spotbugs - 3.3.6-SNAPSHOT + 3.3.7-SNAPSHOT https://nexus.onap.org diff --git a/version.properties b/version.properties index d567eec26..b583c9ead 100755 --- a/version.properties +++ b/version.properties @@ -22,7 +22,7 @@ major=3 minor=3 -patch=6 +patch=7 base_version=${major}.${minor}.${patch}