- CpsValidator.validateNameCharacters(cmHandleId);
- final YangModelCmHandle yangModelCmHandle = inventoryPersistence.getYangModelCmHandle(cmHandleId);
- lcmEventsCmHandleStateHandler.updateCmHandleState(yangModelCmHandle,
- CmHandleState.DELETING);
- deleteCmHandleFromDbAndModuleSyncMap(cmHandleId);
- cmHandleRegistrationResponses.add(CmHandleRegistrationResponse.createSuccessResponse(cmHandleId));
- lcmEventsCmHandleStateHandler.updateCmHandleState(yangModelCmHandle,
- CmHandleState.DELETED);
- } catch (final DataNodeNotFoundException dataNodeNotFoundException) {
- log.error("Unable to find dataNode for cmHandleId : {} , caused by : {}",
- cmHandleId, dataNodeNotFoundException.getMessage());
- cmHandleRegistrationResponses.add(CmHandleRegistrationResponse
- .createFailureResponse(cmHandleId, RegistrationError.CM_HANDLE_DOES_NOT_EXIST));
- } catch (final DataValidationException dataValidationException) {
- log.error("Unable to de-register cm-handle id: {}, caused by: {}",
- cmHandleId, dataValidationException.getMessage());
- cmHandleRegistrationResponses.add(CmHandleRegistrationResponse
- .createFailureResponse(cmHandleId, RegistrationError.CM_HANDLE_INVALID_ID));
- } catch (final Exception exception) {
- log.error("Unable to de-register cm-handle id : {} , caused by : {}",
- cmHandleId, exception.getMessage());
- cmHandleRegistrationResponses.add(
- CmHandleRegistrationResponse.createFailureResponse(cmHandleId, exception));
+ batchDeleteCmHandlesFromDbAndModuleSyncMap(tobeRemovedCmHandleBatch);
+ tobeRemovedCmHandleBatch.forEach(cmHandleId ->
+ cmHandleRegistrationResponses.add(CmHandleRegistrationResponse.createSuccessResponse(cmHandleId)));
+
+ } catch (final RuntimeException batchException) {
+ log.error("Unable to de-register cm-handle batch, retrying on each cm handle");
+ for (final String cmHandleId : tobeRemovedCmHandleBatch) {
+ final CmHandleRegistrationResponse cmHandleRegistrationResponse =
+ deleteCmHandleAndGetCmHandleRegistrationResponse(cmHandleId);
+ cmHandleRegistrationResponses.add(cmHandleRegistrationResponse);
+ if (cmHandleRegistrationResponse.getStatus() != CmHandleRegistrationResponse.Status.SUCCESS) {
+ notDeletedCmHandles.add(cmHandleId);
+ }
+ }