Age | Commit message (Collapse) | Author | Files | Lines |
|
RFC 9144 recommends naming convention for operations that can be performed on any datastore.
The recommended names are:
- create
- remove
- replace
Whereas in CPS Delta feature these operaitions were named:
- add
- remove
- update
So, "add" and "update" operations have been changed to "create" and "replace" respectively.
Issue-ID: CPS-2393
Change-Id: Ie39f5f8ccc91e96cf484ca7fbc833a6be8758054
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
|
|
and dataProducerIdentifier
- Created a new repo. service for fragment table that executes a native
sql query to find first ready cm handle id based on moduleset tag and
then returns list of module references.
- Exposed a new interface into module service that is used by
module sync service to get list of midule refs by module set tag.
Issue-ID: CPS-2353
Change-Id: I438dbd1ed37c1ff4e15f792e93a095aa604120bc
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
Issue-ID: CPS-2287
Change-Id: Ibb7ffb66ccbb03703266132c6d5c2eade0e7cb4a
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
|
|
- Make the response message more informative and cleaner in case of data
validation failure.
- Updated message body will not contain the entire jsonData as part of
response sent back to the user
Issue-ID: CPS-2306
Change-Id: I28aab1450779af98ccdd11701e78bdfcdbc18cf0
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
|
|
Issue-ID: CPS-2282
Change-Id: Ibb7ffb65ccbb03703266712c6d5c2eade0e7ab4b
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
|
|
There is an issue in a method deleteDataNodes(dataspace, anchors)
where it doesn't send data update events. This is because it fetches
anchors using a method getAnchors(dataspace, schemaSetNames), when it
needs to fetch anchors by name: getAnchors(dataspace, anchorNames)
Changes:
- Rename getAnchors method using schemasets to getAnchorsBySchemaSetNames
- Add a method getAnchors(dataspace, anchorNames)
- Update test of deleteDataNodes method using getAnchors so it checks
that data update events are sent
Issue-ID: CPS-2254
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I55fe853f0a9278a66a5724bf4cf2723b0e2fbc8b
|
|
- Defined a constant instead of duplicating literal "No data nodes 4 times.
Issue-ID: CPS-478
Change-Id: I2b980a228217e85424342d4c2b9e97c5cfa618d1
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
- Second API to get Delta between an anchor and JSON payload
- added new API getDeltaByDataspaceAnchorAndPayload
- added controller and service layer methods
getDeltaByDataspaceAnchorAndPayload
- Core Delta algorithm remains same as the first API.
getDeltaByDataspaceAnchorAndPayload will call getDeltaBetweenDataNodes
Issue-ID: CPS-1836
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
Change-Id: Id74cd930ce48e5cb414aa62c5381b79675788a37
|
|
Issue-ID: CPS-2071
Change-Id: Ibe7f59fbfcbb03703626132c6d5c2afde0e7ab4b
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
|
|
- introduced a parameter to control the cps core change event
notifications. we should be able to disable these notifications
without affecting other notification flows.
- fixed the LayeredArchitectureTest as we are accessing the Anchor model
in the events package now.
Issue-ID: CPS-2213
Change-Id: Id875925bc14de1cc6e8fa3193c0df470e09fe43f
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
- Using the DateTimeUtility to parse the passed OffsetDateTime and using
it for conversion to string
- Moving to actual src/main/java from test side as it is to be used in
the prod code as well and only keeping the methods in use.
- Added test to fix the coverage issue
Issue-ID: CPS-2211
Change-Id: I2b4325bb77a6da7fd470986b1da293f455650375
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
Add notification support using cloud events
Issue-ID:CPS-2068
Change-Id: I56c34400dc73c71b936a51260efd240223babacd
Signed-off-by: rajesh.kumar <rk00747546@techmahindra.com>
|
|
This greatly improves performance of module searches by eliminating
unneeded SQL queries via Hibernate lazy fetching.
Issue-ID: CPS-2190
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Ie9e65017d0027366456f1741cc37b10679317b25
|
|
Currently Hazelcast is configured to have 3 synchronous backups
and 3 asynchronous backups. These are separate, meaning there will
be 7 copies in the cluster (1 original + 3 sync + 3 async backups).
Even if only 1 instance of CPS/NCMP is running, it will have 7 copies
in memory.
Given that CPS/NCMP is typically only deployed using 1 or 2 instances,
the settings are changed to 1 synchronous backup (same as Hazelcast's
default configuration). This change has been tested and shown to reduce
heap usage by around 100MB during 20K CM-handle registration.
Issue-ID: CPS-2146
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I4a5f6d83bc35e2c13cfb32002e38dc365da34c8e
|
|
YANG specifies two ways that leaf-lists can be ordered:
- ordered-by user: original order in JSON is preserved
- ordered-by system (default): it is up to the system how to order
For leaf-lists to preserve same order as the JSON, the Yang module
must specify 'ordered-by user'. To ensure consistent behaviour even
when system ordering is used, the leaf-list is sorted during parsing.
- Add 'ordered-by user' to authors field in bookstore.yang
- Sort leaf-list during parsing when using 'ordered-by system'
- Add new tests to verify ordering
Issue-ID: CPS-2057
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I6ab688ec2fa4a22182e853d1a8b26642f278c40a
|
|
- changed sequence of delete schema set by cascade to remove unused yang
resource modules at last.
Issue-ID: CPS-2031
Change-Id: Icefc075165231cc4b9b170e04a2d12af645529e9
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
- Add new module: bookstore-types
- Import the new module from stores module
- Change integration testwares to comply with
the new module
- Add new integration test for retrieving module
definition
Issue-ID: CPS-1135
Change-Id: Ib51c998ceeab50d3fcea212ed55c8ab50ca09257
Signed-off-by: halil.cakal <halil.cakal@est.tech>
|
|
- add query parameters: module-name and revision to OpenAPI
- extend the controller method to hande the new parameters
- add the new method stack to the service layer
- extend the SQL query to support the new parameters
- add unit and integration testwares
Issue-ID: CPS-1135
Change-Id: I089ad2ad71effb58ac0ba809e9f441d6cdb59c4f
Signed-off-by: halil.cakal <halil.cakal@est.tech>
|
|
- Moving cloud events dependencies to the cps-service module instead of
cps-ncmp-service
- Testware has moved and new tests also introduced
- EventsPublisher also moved
Issue-ID: CPS-2040
Change-Id: Ibafb15e7e9efbdbe1e00e2b4f0da820bbcead004
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
Updated release notes for Delta Feature
Issue-ID: CPS-1824
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
Change-Id: I1c2403391e85aec6a9e34f0ff616c17b100bf6a9
|
|
|
|
- retry yang parser exceptions one time by clearing cache
- split yangUtils into YangParserHelper (instance based) and YangUtils for non-parsering static methods
- removed public methods only used from test. Refactored to use variation with (empty) parent path
- removed use of optional for parentPath, easier to handle with just an empty string!
- make methods no longer used in production code in YangUtils are private
- udpate testware to use proper public methods instead of private methods of yang utils / parser (helper)
Issue-ID:CPS-2000
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
Change-Id: I0c7590a5e1495d047006e7136f1bd873be37f7b0
|
|
- Added code for Update action in Delta service
- added method to get updated Leaf data: getUpdatedLeavesBetweenSourceAndTargetDataNode
- added method to compare Leaf data common in source and target data
node
- added method to process leaves unique to target data node
- added method to compare leaves: compareLeaves
- added method to store updated data to a DeltaReport: addUpdatedLeavesToDeltaReport
- Added corresponding testware
Issue-ID: CPS-1824
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
Change-Id: I3de07ea3227988784a0892f6a92c238ecf00a7fa
|
|
CpsDataService::saveListElementsBatch method is not needed as
saveListElements supports saving multiple list elements in a single
operation. This both simplifies implementation and greatly improves
performance when saving list elements, as the Yang parser need only
run once for the whole batch.
- Change InventoryPersistence to save CM-handles in batches of 100
using existing CpsDataService::saveListElements method.
- Remove not needed CpsDataService::saveListElementBatch.
Issue-ID: CPS-2019
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I8b74dda2917e094d064b42f2c0e4d57029b90395
|
|
- Splitting admin service into AnchorService and DataspaceService
(this resolves the cyclic dependency)
- Improved Delete dataspace integration error tests
(were depending on execution order, now independent)
Issue-ID: CPS-871
Change-Id: I47efedb6eb4bd2900f72d689616b7b7b62df2938
Signed-off-by: halil.cakal <halil.cakal@est.tech>
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
|
|
- removed existing code for sending notifications to topic
cps.dataupdated events formerly used by cps-temporal
- corresponding testware removed or updated
- unnecessary to fetch anchor details for delete and replace operation
removed which might gain minor performance boost
- yaml configurations , documentation removal and update
- Added missing test for AsyncConfig to comply with coverage check
Issue-ID: CPS-2005
Change-Id: I1848f7f229cb713fe8c0302ea50328e7451652ee
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
- Incl. integration test
- Prod code is changed to use new method that update yand module.
- updated module resource to return multiple modules.
Issue-ID: CPS-1806
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Change-Id: I751d9393ce78a3be9daeaff6d0252738c02115e0
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
- exposing hazelcast cluster and health related rest endpoints to be
used in the testware
- added test to support it
- also added RTD docs
Issue-ID: CPS-1980
Change-Id: I926013bee05603a43050b861f677885a2511fffc
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
- CPS Delta Feature Part 1: To find delta between two anchors
- created new endpoint deltaByDataspaceAndAnchors
- endpoint to take dataspaceName, source anchor, target anchor,
xpath, descendants as input
- added new service CpsDeltaService
- added method to find delta between DataNodes:
getDeltaReport
- added method to find removed data nodes: getRemovedDeltaReports
- added method to get Added DataNodes: getAddedDeltaReports
- added method to get Map of xpath to DataNode: convertToXPathToDataNodesMap
- added a POJO for delta report
- Added new JSON data for delta feature testing
- Added groovy test files CpsDeltaServiceImplSpec and DeltaReportBuilderSpec
- code related to update operation, will be added in
separate commit
Issue-ID: CPS-1824
Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
Change-Id: I313f0f71d04b03878be7643f709d8af1aa6df6ba
|
|
ClassNotFoundException is being thrown during CM-handle registration
when running the cps-application JAR. This fixes the issue by using
the class loader for the CPS classes.
Issue-ID: CPS-1933
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I02e2d19d9f668f0c4af36e9061e68f9b9ddb9434
|
|
- modified ModuleSyncService
- created ModuleSetTagCacheConfig and tests
- ensure both Create and Upgrade cm Handle use cases work
- Moved inventory pkg to its right patha as production code.
Issue-ID: CPS-1859
Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
Change-Id: I173dcd81fe2e74d86d85365b2ead461302cad974
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
- Added new schema to upgrade model into component.
- Modified Ncmp rest input mapper to add upgradedCmHandles attributes.
- Modified cm handle state mapper to add new lock reason.
- Added new method to parse and upgrade Cm handles in DmiRegistration.
- YANG data converter is modified to add "module-set-tag" atribute.
- Cm handle new query method is added for cps path without appending
ancestor.
- Modified setCompositeStateForRetry to add lock reason.
- New lock reason category is added.
- Existing module sync service is modified to upgrade the model
"syncAndCreateOrUpgradeSchemaSetAndAnchor".
- Sync util method "getModuleSyncFailedCmHandles" to modified to add
another lock reason "LOCKED_MISBEHAVING".
- Added new attribute "UpgradedCmHandles" into DmiPluginRegistration and DmiPluginRegistrationResponse.
- New attribute "moduleSetTag" is added into NcmpServiceCmHandle.
- New model "UpgradedCmHandles" is added.
- New method "updateSchemaSetWithExistingModules" is added into cps
module service to update cm handle with exsting model.
- Code coverage is reducced to 96 percentage that would be addressed and
pushed into new patch.
Issue-ID: CPS-1798
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Change-Id: I540acb404e38fc434de87a0d959bfde710a18b03
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
updateDataNodesAndDescendants if supplied with a JSON list such as
{"branch": [{"name":"Name1"}, {"name":"Name2"}]}
would only replace the first node /test-tree/branch[@name='Name1'],
and ignore any remaining list items. This is caused by the use of a
legacy buildDataNode, which returns only a single DataNode from JSON,
even if the JSON contained a list.
Issue-ID: CPS-1889
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I257491b6bc3f047a64eb241eaac70fd457b24347
|
|
Issue-ID: CPS-1789
Signed-off-by: egernug <gerard.nugent@est.tech>
Change-Id: Iee5c514ccdba36a387f83948d8a3ba26e6b1de5b
|
|
This reverts commit 9693ec51cf6526082f0ad0c3ad208d144cbbb163.
Reason for revert: Bug fix delivery
Change-Id: I73bdc1528192c662983b0bbef73b10b6d612a719
Signed-off-by: egernug <gerard.nugent@est.tech>
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
|
|
|
|
This is presented as a fix for ClassDefNotFoundErrors
from opendaylight yang parser
Issue-ID: CPS-1866
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: If2d1a8f0319cad0a9517ea3652446e2e43f51fd4
|
|
Issue-ID: CPS-1789
Signed-off-by: egernug <gerard.nugent@est.tech>
Change-Id: I932fca8a50cedf2ae0604401c5e2b27896e4d449
|
|
|
|
- Infrastructure code to have the kafka listener and distributed set in
place
- performance tested locally
- testware added
Issue-ID: CPS-1642
Change-Id: I775dbe6e6b520b8777faa08610db439877757572
Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
|
|
- Exposed an interface to update anchor by schema set name.
- New interface is implemented into RI model.
- New native query is exposed to update id with given schema set name.
- A new integration test is written to test new interface into cps core.
Issue-ID: CPS-1800
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
Change-Id: Ibf44712e11b53cb6673b04b9e3fd864321c90839
Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
|
|
|
|
Add pagination query parameters in query across all anchors API
pagination parameters (pageIndex and pageSize) are optional
default is to query all fragments
each pageSize represents number of records(number of anchors)
TotalRecords is returned in response header to find number of pages.
- If pagination option is provided in request then query number of
anchors equal to pageSize. pageIndex is used for setting offset.
- return number of records(one anchor per record) as per pagesize
and pageSize
Issue-ID: CPS-1605
Change-ID: I73f97f986a817d423f93a8d922dcd9647b2504bc
Signed-off-by: rajesh.kumar <rk00747546@techmahindra.com>
|
|
-added 'direct' keyword also to Fetch Descendants Option along with 'all' and 'none' to Query direct child.
-added unit tests to test direct keyword
Issue-ID: CPS-1784
Change-Id: Icb7f59fbeebb03703626132d6d5d2cfde0e5ab4d
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
|
|
- After last rebase I had to remove 3 unused recent cloud eventd specific exceptions/constructors
- Moved the only used new exception from SPI to the relevant util package
(please NOTE not all exceptions belong in SPI and always question need for new exception
when there is no specific handling, try to use standard or existign CPS exception instead!)
- Increased cps-service module (line) coverage from 95 to 100%
- Added tests for missing exceptions (handling i.e. thrown up)
- Removed incorrect SPI defined OperationNotYetSupportedException
(replaced with standard java exception instead)
- Fixed some legacy issues with existign test classes I modified
(unnecessary setup, conventions etc)
- Increased coverage for DataNodeBuilder
- Added or modified test to include more spi models
- Added tests for Hazelcast Configs
- Added more tests for json object mapper
- Added test and fixed error handling in YangUtils/XmlFileUtils
(it was incorrectly converting a config exception to a data validation exception)
Issue-ID: CPS-475
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
Change-Id: I5852ba01bc5b33ae361b8f29daae9868f05baa35
|
|
-added 'direct' keyword also to Fetch Descendants Option along with 'all' and 'none' to Query direct child.
-added unit tests to test direct keyword
Issue-ID:CPS-1784
Change-Id: Iab7f59fbeebb03703626132c6d5c2afde0e5ab4d
Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
|
|
|
|
- Delete legacy avc subscription event and event outcome schemas
- Change subscription response and outcome sample json file contents
- Change ncmp event response code to support avc subscriptions
- Add mapper that maps cloud event to subscription event response
- Add mapper that maps subscription event outcome to cloud event
- Change subscription event response consumer to consume CloudEvents
- Change time out task to support response event instead client id and
name
- Change subscription event response mapper to support Cloud Event
- Change subscription outcome mapper to group subscription responses as
per details and status
- Change subscription status to have fromString functionality
- Change all unit tests to support new functionalities
- Add cps exceptions for cloud event and outcome type
- Add details field in yang model
- Change data node helper to supoort details field
- Consolidate final subscription response codes
- Fix code smells reported by SonarLint
Issue-ID: CPS-1739
Change-Id: I5eadeb8ef40d3d7befb762b5a8d2139fe3c85d7e
Signed-off-by: halil.cakal <halil.cakal@est.tech>
|
|
|
|
Apostrophe is not currently handled correctly, and having apostrophe in
the xpath will lead to various errors.
For example, normalizing this xpath works:
/path[@name="I'm quoted"] -> /path[@name='I\'m quoted']
However the resulting xpath will throw a PathParsingException if parsed!
(Thus path normalization is not idempotent.)
- Use '' for escaping apostrophe in single quoted leaf value,
to comply with XPath standard (and use "" for escaping in ").
- Use Liquibase to make existing data comply with new rules.
- Leaf values in data leaves are now unescaped, e.g. "I'm quoted"
- Quoting is now consistent for leaf/text/contains conditions.
Issue-ID: CPS-1769
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Iafc287f738254d7f99706c6bc548091c0ecd5aa0
|