Skip to content

Commit 733fd4e

Browse files
authored
Don't attempt to parse workflow if it doesn't exist (opensearch-project#1346)
Signed-off-by: Chase Engelbrecht <[email protected]>
1 parent 526433a commit 733fd4e

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

alerting/src/main/kotlin/org/opensearch/alerting/transport/TransportDeleteWorkflowAction.kt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ class TransportDeleteWorkflowAction @Inject constructor(
119119
) {
120120
suspend fun resolveUserAndStart() {
121121
try {
122-
val workflow = getWorkflow()
122+
val workflow: Workflow = getWorkflow() ?: return
123123

124124
val canDelete = user == null ||
125125
!doFilterForUser(user) ||
@@ -296,17 +296,27 @@ class TransportDeleteWorkflowAction @Inject constructor(
296296
return deletableMonitors
297297
}
298298

299-
private suspend fun getWorkflow(): Workflow {
299+
private suspend fun getWorkflow(): Workflow? {
300300
val getRequest = GetRequest(ScheduledJob.SCHEDULED_JOBS_INDEX, workflowId)
301301

302302
val getResponse: GetResponse = client.suspendUntil { get(getRequest, it) }
303-
if (getResponse.isExists == false) {
304-
actionListener.onFailure(
305-
AlertingException.wrap(
306-
OpenSearchStatusException("Workflow not found.", RestStatus.NOT_FOUND)
307-
)
308-
)
303+
if (!getResponse.isExists) {
304+
handleWorkflowMissing()
305+
return null
309306
}
307+
308+
return parseWorkflow(getResponse)
309+
}
310+
311+
private fun handleWorkflowMissing() {
312+
actionListener.onFailure(
313+
AlertingException.wrap(
314+
OpenSearchStatusException("Workflow not found.", RestStatus.NOT_FOUND)
315+
)
316+
)
317+
}
318+
319+
private fun parseWorkflow(getResponse: GetResponse): Workflow {
310320
val xcp = XContentHelper.createParser(
311321
xContentRegistry, LoggingDeprecationHandler.INSTANCE,
312322
getResponse.sourceAsBytesRef, XContentType.JSON

0 commit comments

Comments
 (0)