- final PersistenceCmHandlesList persistenceCmHandlesList = new PersistenceCmHandlesList();
-
- for (final CmHandle cmHandle : dmiPluginRegistration.getUpdatedCmHandles()) {
- final PersistenceCmHandle persistenceCmHandle =
- toPersistenceCmHandle(dmiPluginRegistration.getDmiPlugin(), cmHandle);
- persistenceCmHandlesList.add(persistenceCmHandle);
- }
- final String cmHandlesJsonData = objectMapper.writeValueAsString(persistenceCmHandlesList);
- cpsDataService.updateNodeLeavesAndExistingDescendantLeaves(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR,
- "/dmi-registry", cmHandlesJsonData, NO_TIMESTAMP);
- } catch (final JsonProcessingException e) {
- handleJsonProcessingException(dmiPluginRegistration, e);
- }
- }
-
- private void parseAndCreateCmHandlesInDmiRegistrationAndSyncModule(
- final DmiPluginRegistration dmiPluginRegistration) {
- try {
- final var persistenceCmHandlesList = new PersistenceCmHandlesList();
- for (final CmHandle cmHandle : dmiPluginRegistration.getCreatedCmHandles()) {
- final PersistenceCmHandle persistenceCmHandle =
- toPersistenceCmHandle(dmiPluginRegistration.getDmiPlugin(), cmHandle);
- persistenceCmHandlesList.add(persistenceCmHandle);
- }
- final String cmHandleJsonData = objectMapper.writeValueAsString(persistenceCmHandlesList);
-
- registerAndSyncNode(persistenceCmHandlesList, cmHandleJsonData);
- } catch (final JsonProcessingException e) {
- handleJsonProcessingException(dmiPluginRegistration, e);
+ CpsValidator.validateNameCharacters(yangModelCmHandle.getId());
+ final String cmHandleJsonData = String.format("{\"cm-handles\":[%s]}",
+ jsonObjectMapper.asJsonString(yangModelCmHandle));
+ cpsDataService.saveListElements(NCMP_DATASPACE_NAME, NCMP_DMI_REGISTRY_ANCHOR, NCMP_DMI_REGISTRY_PARENT,
+ cmHandleJsonData, NO_TIMESTAMP);
+ syncModulesAndCreateAnchor(yangModelCmHandle);
+ return CmHandleRegistrationResponse.createSuccessResponse(yangModelCmHandle.getId());
+ } catch (final AlreadyDefinedException alreadyDefinedException) {
+ return CmHandleRegistrationResponse.createFailureResponse(
+ yangModelCmHandle.getId(), RegistrationError.CM_HANDLE_ALREADY_EXIST);
+ } catch (final DataValidationException dataValidationException) {
+ return CmHandleRegistrationResponse.createFailureResponse(yangModelCmHandle.getId(),
+ RegistrationError.CM_HANDLE_INVALID_ID);
+ } catch (final Exception exception) {
+ return CmHandleRegistrationResponse.createFailureResponse(yangModelCmHandle.getId(), exception);