Skip to content

Commit

Permalink
Modified wait logic of agent deploy with latest agent status code
Browse files Browse the repository at this point in the history
  • Loading branch information
VaishnaviGopal committed Jan 18, 2024
1 parent a8d5592 commit c88586e
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions ibm/service/schematics/resource_ibm_schematics_agent_deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,17 +129,21 @@ func resourceIbmSchematicsAgentDeployCreate(context context.Context, d *schema.R
}

const (
agentProvisioningTriggered = "Triggered deployment"
agentProvisioningDone = "success"
agentProvisioningPending = "PENDING"
agentProvisioninFailed = "Job Failed"
agentProvisioningStatusCodeJobCancelled = "job_cancelled"
agentProvisioningStatusCodeJobFailed = "job_failed"
agentProvisioningStatusCodeJobFinished = "job_finished"
agentProvisioningStatusCodeJobInProgress = "job_in_progress"
agentProvisioningStatusCodeJobPending = "job_pending"
agentProvisioningStatusCodeJobReadyToExecute = "job_ready_to_execute"
agentProvisioningStatusCodeJobStopInProgress = "job_stop_in_progress"
agentProvisioningStatusCodeJobStopped = "job_stopped"
)

func isWaitForAgentAvailable(context context.Context, schematicsClient *schematicsv1.SchematicsV1, id string, timeout time.Duration) (interface{}, error) {
log.Printf("Waiting for agent (%s) to be available.", id)
stateConf := &resource.StateChangeConf{
Pending: []string{"retry", agentProvisioningPending, agentProvisioningTriggered},
Target: []string{agentProvisioningDone, agentProvisioninFailed, ""},
Pending: []string{"retry", agentProvisioningStatusCodeJobInProgress, agentProvisioningStatusCodeJobPending, agentProvisioningStatusCodeJobReadyToExecute, agentProvisioningStatusCodeJobStopInProgress},
Target: []string{agentProvisioningStatusCodeJobFinished, agentProvisioningStatusCodeJobFailed, agentProvisioningStatusCodeJobCancelled, agentProvisioningStatusCodeJobStopped, ""},
Refresh: agentRefreshFunc(schematicsClient, id),
Timeout: timeout,
Delay: 10 * time.Second,
Expand All @@ -158,10 +162,10 @@ func agentRefreshFunc(schematicsClient *schematicsv1.SchematicsV1, id string) re
if err != nil {
return nil, "", fmt.Errorf("[ERROR] Error Getting Agent: %s\n%s", err, response)
}
if *agent.RecentDeployJob.StatusMessage == agentProvisioninFailed || *agent.RecentDeployJob.StatusMessage == agentProvisioningDone {
return agent, agentProvisioningDone, nil
if agent.RecentDeployJob.StatusCode != nil {
return agent, *agent.RecentDeployJob.StatusCode, nil
}
return agent, agentProvisioningPending, nil
return agent, agentProvisioningStatusCodeJobPending, nil
}
}

Expand Down

0 comments on commit c88586e

Please sign in to comment.