-
Notifications
You must be signed in to change notification settings - Fork 4
/
results.go
139 lines (108 loc) · 3.08 KB
/
results.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package cloudservers
import (
"github.com/gophercloud/gophercloud"
)
//执行创建image异步接口时返回的jobid结构
type Job struct {
// job id of create image
Id string `json:"job_id"`
}
//Order struct is an orderId structure returned when you create a server
type Order struct {
Id string `json:"order_id"`
}
//Server struct is a serverIds structure returned when you create a server
type Server struct {
IDs []string `json:"serverIds"`
}
//CreateCloudServerResponse is a structure for creating server return values
type CreateCloudServerResponse struct {
Job Job
Server Server
Order Order
}
//根据jobId查询job的结构
type JobResult struct {
//任务ID
Id string `json:"job_id"`
//任务类型
Type string `json:"job_type"`
/*任务状态,目前取值如下:
SUCCESS:表示该任务执行已经结束,任务执行成功。
FAIL:表示该任务执行已经结束,任务执行失败。
RUNNING:表示该任务正在执行。
INIT:表示给任务还未执行,正在初始化。*/
Status string `json:"status"`
//任务开始时间
BeginTime string `json:"begin_time"`
//任务结束时间
EndTime string `json:"end_time"`
//错误码
ErrorCode string `json:"error_code"`
//失败原因
FailReason string `json:"fail_reason"`
//任务自定义属性。任务正常时,会返回镜像的ID。
Entities JobEntity `json:"entities"`
}
type JobEntity struct {
//子任务数量。没有子任务时为0。
SubJobsTotal int `json:"sub_jobs_total"`
//每个子任务的执行信息。没有子任务时为空列表。
SubJobs []SubJob `json:"sub_jobs"`
}
type SubJob struct {
//任务ID
Id string `json:"job_id"`
//任务类型
Type string `json:"job_type"`
/*任务状态,目前取值如下:
SUCCESS:表示该任务执行已经结束,任务执行成功。
FAIL:表示该任务执行已经结束,任务执行失败。
RUNNING:表示该任务正在执行。
INIT:表示给任务还未执行,正在初始化。*/
Status string `json:"status"`
//任务开始时间
BeginTime string `json:"begin_time"`
//任务结束时间
EndTime string `json:"end_time"`
//错误码
ErrorCode string `json:"error_code"`
//失败原因
FailReason string `json:"fail_reason"`
//任务自定义属性。任务正常时,会返回镜像的ID。
Entities *SubJobEntity `json:"entities"`
}
type SubJobEntity struct {
ServerId string `json:"server_id"`
NicId string `json:"nic_id"`
}
type commonResult struct {
gophercloud.Result
}
type CreateResult struct {
commonResult
}
type JobExecResult struct {
commonResult
}
func (r commonResult) ExtractJob() (Job, error) {
var j Job
err := r.ExtractInto(&j)
return j, err
}
func (r commonResult) ExtractOrder() (Order, error) {
var o Order
err := r.ExtractInto(&o)
return o, err
}
//ExtractServer is used to extract server struct in response
func (r commonResult) ExtractServer() (Server, error) {
var s Server
err := r.ExtractInto(&s)
return s, err
}
func (r commonResult) ExtractJobResult() (JobResult, error) {
var jr JobResult
err := r.ExtractInto(&jr)
return jr, err
}