From 3f545b68e74042452e9d16e80847914166bf0087 Mon Sep 17 00:00:00 2001 From: Zhenguo Niu Date: Tue, 21 Jan 2020 09:52:59 +0000 Subject: [PATCH] Bump interval of sdrs waiting job process --- .../sdrs/v1/protectedinstances/results_job.go | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/openstack/sdrs/v1/protectedinstances/results_job.go b/openstack/sdrs/v1/protectedinstances/results_job.go index 77e5a7301..7279bd6be 100644 --- a/openstack/sdrs/v1/protectedinstances/results_job.go +++ b/openstack/sdrs/v1/protectedinstances/results_job.go @@ -2,6 +2,7 @@ package protectedinstances import ( "fmt" + "time" "github.com/huaweicloud/golangsdk" ) @@ -11,14 +12,18 @@ type JobResponse struct { } type JobStatus struct { - Status string `json:"status"` - Entities map[string]string `json:"entities"` - JobID string `json:"job_id"` - JobType string `json:"job_type"` - BeginTime string `json:"begin_time"` - EndTime string `json:"end_time"` - ErrorCode string `json:"error_code"` - FailReason string `json:"fail_reason"` + Status string `json:"status"` + Entities JobEntity `json:"entities"` + JobID string `json:"job_id"` + JobType string `json:"job_type"` + BeginTime string `json:"begin_time"` + EndTime string `json:"end_time"` + ErrorCode string `json:"error_code"` + FailReason string `json:"fail_reason"` +} + +type JobEntity struct { + InstanceID string `json:"protected_instance_id"` } type JobResult struct { @@ -47,6 +52,7 @@ func WaitForJobSuccess(client *golangsdk.ServiceClient, secs int, jobID string) if err != nil { return false, err } + time.Sleep(5 * time.Second) if job.Status == "SUCCESS" { return true, nil @@ -62,6 +68,10 @@ func WaitForJobSuccess(client *golangsdk.ServiceClient, secs int, jobID string) func GetJobEntity(client *golangsdk.ServiceClient, jobId string, label string) (interface{}, error) { + if label != "protected_instance_id" { + return nil, fmt.Errorf("Unsupported label %s in GetJobEntity.", label) + } + jobClient := *client jobClient.ResourceBase = jobClient.Endpoint job := new(JobStatus) @@ -71,7 +81,7 @@ func GetJobEntity(client *golangsdk.ServiceClient, jobId string, label string) ( } if job.Status == "SUCCESS" { - if e := job.Entities[label]; e != "" { + if e := job.Entities.InstanceID; e != "" { return e, nil } }