in spi/src/main/java/org/opensearch/jobscheduler/spi/utils/LockService.java [197:222]
private void createLock(final LockModel tempLock, ActionListener<LockModel> listener) {
try {
final IndexRequest request = new IndexRequest(LOCK_INDEX_NAME)
.id(tempLock.getLockId())
.source(tempLock.toXContent(XContentFactory.jsonBuilder(), ToXContent.EMPTY_PARAMS))
.setIfSeqNo(SequenceNumbers.UNASSIGNED_SEQ_NO)
.setIfPrimaryTerm(SequenceNumbers.UNASSIGNED_PRIMARY_TERM)
.create(true);
client.index(request, ActionListener.wrap(
response -> listener.onResponse(new LockModel(tempLock, response.getSeqNo(),
response.getPrimaryTerm())),
exception -> {
if (exception instanceof VersionConflictEngineException) {
logger.debug("Lock is already created. {}", exception.getMessage());
}
if (exception instanceof IOException) {
logger.error("IOException occurred creating lock", exception);
}
listener.onResponse(null);
}
));
} catch (IOException e) {
logger.error("IOException occurred creating lock", e);
listener.onResponse(null);
}
}