add job status constants, and CheckJobStatus func

This commit is contained in:
jolestar 2017-07-12 18:51:33 +08:00
parent 4ed980d86a
commit 0547cc3c3e
2 changed files with 30 additions and 1 deletions

View File

@ -36,8 +36,19 @@ const (
//LoadBalancerStatusCeased ceased
LoadBalancerStatusCeased = "ceased"
//JobStatusUnknown unknown
JobStatusUnknown = "unknown"
//JobStatusSuccessful successful
JobStatusSuccessful = "successful"
//JobStatusFailed failed
JobStatusFailed = "failed"
//JobStatusPending pending
JobStatusPending = "pending"
//JobStatusWorking working
JobStatusWorking = "working"
defaultOpTimeout = 180 * time.Second
defaultWaitInterval = 5 * time.Second
defaultWaitInterval = 10 * time.Second
)
// QingCloudClient QingCloud IaaS Advanced Client

View File

@ -40,6 +40,24 @@ func WaitJob(jobService *service.JobService, jobID string, timeout time.Duration
}, timeout, waitInterval)
}
// CheckJob wait the job with this jobID finish
func CheckJobStatus(jobService *service.JobService, jobID string) (string,error) {
input := &service.DescribeJobsInput{Jobs: []*string{&jobID}}
output, err := jobService.DescribeJobs(input)
if err != nil {
return JobStatusUnknown, nil
}
if len(output.JobSet) == 0 {
return "", fmt.Errorf("Can not find job [%s]", jobID)
}
j := output.JobSet[0]
if j.Status == nil {
logger.Error("Job [%s] status is nil ", jobID)
return JobStatusUnknown, nil
}
return *j.Status, nil
}
func describeInstance(instanceService *service.InstanceService, instanceID string) (*service.Instance, error) {
input := &service.DescribeInstancesInput{Instances: []*string{&instanceID}}
output, err := instanceService.DescribeInstances(input)