diff options
author | Bruno Sakoto <bruno.sakoto@bell.ca> | 2021-03-23 14:42:00 -0400 |
---|---|---|
committer | Rishi Chail <rishi.chail@est.tech> | 2021-03-31 11:18:34 +0000 |
commit | ff4832e4ed2a5b6aaf9093f7d229c27c5d5b9aa5 (patch) | |
tree | 4c2ad23a1d83412141ff4f4ef3775f0aaddf0459 | |
parent | efc0d686653858cf0d47c5a4ebb78e6838a52b57 (diff) |
Fix to store data for 2 anchors using same model
This change deletes the database index on fragment table for dataspace
and xpath.
Issue-ID: CPS-300
Signed-off-by: Bruno Sakoto <bruno.sakoto@bell.ca>
Change-Id: I586cc38f7ed00a16f751ed4dbe3b514226c62657
4 files changed, 73 insertions, 1 deletions
diff --git a/cps-ri/src/main/resources/changelog/changelog-master.yaml b/cps-ri/src/main/resources/changelog/changelog-master.yaml index 657701227d..921eeec173 100644 --- a/cps-ri/src/main/resources/changelog/changelog-master.yaml +++ b/cps-ri/src/main/resources/changelog/changelog-master.yaml @@ -1,3 +1,19 @@ +# ============LICENSE_START======================================================= +# Copyright (c) 2021 Bell Canada. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + databaseChangeLog: - include: file: changelog/db/changes/01-createCPSTables.yaml @@ -8,4 +24,6 @@ databaseChangeLog: - include: file: changelog/db/changes/04-loadData-anchor.yaml - include: - file: changelog/db/changes/05-loadData-fragment.yaml
\ No newline at end of file + file: changelog/db/changes/05-loadData-fragment.yaml + - include: + file: changelog/db/changes/06-delete-not-required-fragment-index.yaml diff --git a/cps-ri/src/main/resources/changelog/db/changes/06-delete-not-required-fragment-index.yaml b/cps-ri/src/main/resources/changelog/db/changes/06-delete-not-required-fragment-index.yaml new file mode 100644 index 0000000000..bfb0cf411c --- /dev/null +++ b/cps-ri/src/main/resources/changelog/db/changes/06-delete-not-required-fragment-index.yaml @@ -0,0 +1,35 @@ +# ============LICENSE_START======================================================= +# Copyright (c) 2021 Bell Canada. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + +databaseChangeLog: + - changeSet: + id: 6 + author: cps + comment: Drop unique index for dataspace and xpath on fragment table + changes: + - dropIndex: + indexName: UQ_FRAGMENT_XPATH + tableName: fragment + rollback: + - createIndex: + columns: + - column: + name: xpath + - column: + name: dataspace_id + indexName: UQ_FRAGMENT_XPATH + tableName: fragment + unique: true diff --git a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy index 51f7809403..231a57283c 100644 --- a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy +++ b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech + * Modifications Copyright (C) 2021 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,6 +92,22 @@ class CpsDataPersistenceServiceSpec extends CpsPersistenceSpecBase { grandchildFragment.xpath == grandChildXpath } + @Sql([CLEAR_DATA, SET_DATA]) + def 'Store data node for multiple anchors using the same schema.'() { + def xpath = "/parent-new" + given: 'a fragment is stored for an anchor' + objectUnderTest.storeDataNode(DATASPACE_NAME, ANCHOR_NAME1, createDataNodeTree(xpath)) + when: 'another fragment is stored for an other anchor, using the same schema set' + objectUnderTest.storeDataNode(DATASPACE_NAME, ANCHOR_NAME3, createDataNodeTree(xpath)) + then: 'both fragments can be retrieved by their xpath' + def fragment1 = getFragmentByXpath(DATASPACE_NAME, ANCHOR_NAME1, xpath) + fragment1.anchor.name == ANCHOR_NAME1 + fragment1.xpath == xpath + def fragment2 = getFragmentByXpath(DATASPACE_NAME, ANCHOR_NAME3, xpath) + fragment2.anchor.name == ANCHOR_NAME3 + fragment2.xpath == xpath + } + @Unroll @Sql([CLEAR_DATA, SET_DATA]) def 'Store datanode error scenario: #scenario.'() { diff --git a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy index c8a8b9bf1e..4ef068a25d 100644 --- a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy +++ b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech + * Modifications Copyright (C) 2021 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. @@ -57,6 +58,7 @@ class CpsPersistenceSpecBase extends Specification { static final String SCHEMA_SET_NAME2 = 'SCHEMA-SET-002' static final String ANCHOR_NAME1 = 'ANCHOR-001' static final String ANCHOR_NAME2 = 'ANCHOR-002' + static final String ANCHOR_NAME3 = 'ANCHOR-003' static final String ANCHOR_FOR_DATA_NODES_WITH_LEAVES = 'ANCHOR-003' } |