in opensearch-notebooks/src/main/kotlin/org/opensearch/notebooks/action/NotebookActions.kt [117:144]
fun delete(request: DeleteNotebookRequest, user: User?): DeleteNotebookResponse {
log.info("$LOG_PREFIX:Notebook-delete ${request.notebookId}")
UserAccessManager.validateUser(user)
val notebookDetails = NotebooksIndex.getNotebook(request.notebookId)
notebookDetails
?: throw OpenSearchStatusException(
"Notebook ${request.notebookId} not found",
RestStatus.NOT_FOUND
)
if (!UserAccessManager.doesUserHasAccess(
user,
notebookDetails.tenant,
notebookDetails.access
)
) {
throw OpenSearchStatusException(
"Permission denied for Notebook ${request.notebookId}",
RestStatus.FORBIDDEN
)
}
if (!NotebooksIndex.deleteNotebook(request.notebookId)) {
throw OpenSearchStatusException(
"Notebook ${request.notebookId} delete failed",
RestStatus.REQUEST_TIMEOUT
)
}
return DeleteNotebookResponse(request.notebookId)
}