in opensearch-notebooks/src/main/kotlin/org/opensearch/notebooks/action/NotebookActions.kt [65:90]
fun update(request: UpdateNotebookRequest, user: User?): UpdateNotebookResponse {
log.info("$LOG_PREFIX:Notebook-update ${request.notebookId}")
UserAccessManager.validateUser(user)
val currentNotebookDetails = NotebooksIndex.getNotebook(request.notebookId)
currentNotebookDetails
?: throw OpenSearchStatusException("Notebook ${request.notebookId} not found", RestStatus.NOT_FOUND)
if (!UserAccessManager.doesUserHasAccess(user, currentNotebookDetails.tenant, currentNotebookDetails.access)) {
throw OpenSearchStatusException(
"Permission denied for Notebook ${request.notebookId}",
RestStatus.FORBIDDEN
)
}
val currentTime = Instant.now()
val notebookDetails = NotebookDetails(
request.notebookId,
currentTime,
currentNotebookDetails.createdTime,
UserAccessManager.getUserTenant(user),
currentNotebookDetails.access,
request.notebook
)
if (!NotebooksIndex.updateNotebook(request.notebookId, notebookDetails)) {
throw OpenSearchStatusException("Notebook Update failed", RestStatus.INTERNAL_SERVER_ERROR)
}
return UpdateNotebookResponse(request.notebookId)
}