-
Notifications
You must be signed in to change notification settings - Fork 3
/
HostApi.go
435 lines (390 loc) · 11.6 KB
/
HostApi.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
package cloudstack
// ReconnectHost represents the paramter of ReconnectHost
type ReconnectHostParameter struct {
// the host ID
Id ID
}
func NewReconnectHostParameter(id string) (p *ReconnectHostParameter) {
p = new(ReconnectHostParameter)
p.Id.Set(id)
return p
}
// Reconnects a host.
func (c *Client) ReconnectHost(p *ReconnectHostParameter) (*Host, error) {
obj, err := c.Request("reconnectHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// CancelHostMaintenance represents the paramter of CancelHostMaintenance
type CancelHostMaintenanceParameter struct {
// the host ID
Id ID
}
func NewCancelHostMaintenanceParameter(id string) (p *CancelHostMaintenanceParameter) {
p = new(CancelHostMaintenanceParameter)
p.Id.Set(id)
return p
}
// Cancels host maintenance.
func (c *Client) CancelHostMaintenance(p *CancelHostMaintenanceParameter) (*Host, error) {
obj, err := c.Request("cancelHostMaintenance", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// ReleaseDedicatedHost represents the paramter of ReleaseDedicatedHost
type ReleaseDedicatedHostParameter struct {
// the ID of the host
HostId ID
}
func NewReleaseDedicatedHostParameter(hostid string) (p *ReleaseDedicatedHostParameter) {
p = new(ReleaseDedicatedHostParameter)
p.HostId.Set(hostid)
return p
}
// Release the dedication for host
func (c *Client) ReleaseDedicatedHost(p *ReleaseDedicatedHostParameter) (*Result, error) {
obj, err := c.Request("releaseDedicatedHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Result), err
}
// AddBaremetalHost represents the paramter of AddBaremetalHost
type AddBaremetalHostParameter struct {
// Allocation state of this Host for allocation of new resources
AllocationState NullString
// the cluster ID for the host
ClusterId ID
// the cluster name for the host
ClusterName NullString
// list of tags to be added to the host
HostTags []string
// hypervisor type of the host
Hypervisor NullString
// ip address intentionally allocated to this host after provisioning
IpAddress NullString
// the password for the host
Password NullString
// the Pod ID for the host
PodId ID
// the host URL
Url NullString
// the username for the host
UserName NullString
// the Zone ID for the host
ZoneId ID
}
func NewAddBaremetalHostParameter(hypervisor string, password string, podid string, url string, username string, zoneid string) (p *AddBaremetalHostParameter) {
p = new(AddBaremetalHostParameter)
p.Hypervisor.Set(hypervisor)
p.Password.Set(password)
p.PodId.Set(podid)
p.Url.Set(url)
p.UserName.Set(username)
p.ZoneId.Set(zoneid)
return p
}
// add a baremetal host
func (c *Client) AddBaremetalHost(p *AddBaremetalHostParameter) (*Host, error) {
obj, err := c.Request("addBaremetalHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// UpdateHostPassword represents the paramter of UpdateHostPassword
type UpdateHostPasswordParameter struct {
// the cluster ID
ClusterId ID
// the host ID
HostId ID
// the new password for the host/cluster
Password NullString
// the username for the host/cluster
UserName NullString
}
func NewUpdateHostPasswordParameter(password string, username string) (p *UpdateHostPasswordParameter) {
p = new(UpdateHostPasswordParameter)
p.Password.Set(password)
p.UserName.Set(username)
return p
}
// Update password of a host/pool on management server.
func (c *Client) UpdateHostPassword(p *UpdateHostPasswordParameter) (*Result, error) {
obj, err := c.Request("updateHostPassword", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Result), err
}
// ListDedicatedHosts represents the paramter of ListDedicatedHosts
type ListDedicatedHostsParameter struct {
// the name of the account associated with the host. Must be used with domainId.
Account NullString
// list dedicated hosts by affinity group
AffinityGroupId ID
// the ID of the domain associated with the host
DomainId ID
// the ID of the host
HostId ID
// List by keyword
Keyword NullString
Page NullNumber
PageSize NullNumber
}
func NewListDedicatedHostsParameter() (p *ListDedicatedHostsParameter) {
p = new(ListDedicatedHostsParameter)
return p
}
// Lists dedicated hosts.
func (c *Client) ListDedicatedHosts(p *ListDedicatedHostsParameter) ([]*DedicatedHost, error) {
obj, err := c.Request("listDedicatedHosts", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.([]*DedicatedHost), err
}
// ReleaseHostReservation represents the paramter of ReleaseHostReservation
type ReleaseHostReservationParameter struct {
// the host ID
Id ID
}
func NewReleaseHostReservationParameter(id string) (p *ReleaseHostReservationParameter) {
p = new(ReleaseHostReservationParameter)
p.Id.Set(id)
return p
}
// Releases host reservation.
func (c *Client) ReleaseHostReservation(p *ReleaseHostReservationParameter) (*Result, error) {
obj, err := c.Request("releaseHostReservation", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Result), err
}
// AddHost represents the paramter of AddHost
type AddHostParameter struct {
// Allocation state of this Host for allocation of new resources
AllocationState NullString
// the cluster ID for the host
ClusterId ID
// the cluster name for the host
ClusterName NullString
// list of tags to be added to the host
HostTags []string
// hypervisor type of the host
Hypervisor NullString
// the password for the host
Password NullString
// the Pod ID for the host
PodId ID
// the host URL
Url NullString
// the username for the host
UserName NullString
// the Zone ID for the host
ZoneId ID
}
func NewAddHostParameter(hypervisor string, password string, podid string, url string, username string, zoneid string) (p *AddHostParameter) {
p = new(AddHostParameter)
p.Hypervisor.Set(hypervisor)
p.Password.Set(password)
p.PodId.Set(podid)
p.Url.Set(url)
p.UserName.Set(username)
p.ZoneId.Set(zoneid)
return p
}
// Adds a new host.
func (c *Client) AddHost(p *AddHostParameter) (*Host, error) {
obj, err := c.Request("addHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// UpdateHost represents the paramter of UpdateHost
type UpdateHostParameter struct {
// Change resource state of host, valid values are [Enable, Disable]. Operation
// may failed if host in states not allowing Enable/Disable
AllocationState NullString
// list of tags to be added to the host
HostTags []string
// the ID of the host to update
Id ID
// the id of Os category to update the host with
OsCategoryId ID
// the new uri for the secondary storage: nfs://host/path
Url NullString
}
func NewUpdateHostParameter(id string) (p *UpdateHostParameter) {
p = new(UpdateHostParameter)
p.Id.Set(id)
return p
}
// Updates a host.
func (c *Client) UpdateHost(p *UpdateHostParameter) (*Host, error) {
obj, err := c.Request("updateHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// FindHostsForMigration represents the paramter of FindHostsForMigration
type FindHostsForMigrationParameter struct {
// List by keyword
Keyword NullString
Page NullNumber
PageSize NullNumber
// find hosts to which this VM can be migrated and flag the hosts with enough
// CPU/RAM to host the VM
VirtualMachineId ID
}
func NewFindHostsForMigrationParameter(virtualmachineid string) (p *FindHostsForMigrationParameter) {
p = new(FindHostsForMigrationParameter)
p.VirtualMachineId.Set(virtualmachineid)
return p
}
// Find hosts suitable for migrating a virtual machine.
func (c *Client) FindHostsForMigration(p *FindHostsForMigrationParameter) (*Host, error) {
obj, err := c.Request("findHostsForMigration", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// PrepareHostForMaintenance represents the paramter of PrepareHostForMaintenance
type PrepareHostForMaintenanceParameter struct {
// the host ID
Id ID
}
func NewPrepareHostForMaintenanceParameter(id string) (p *PrepareHostForMaintenanceParameter) {
p = new(PrepareHostForMaintenanceParameter)
p.Id.Set(id)
return p
}
// Prepares a host for maintenance.
func (c *Client) PrepareHostForMaintenance(p *PrepareHostForMaintenanceParameter) (*Host, error) {
obj, err := c.Request("prepareHostForMaintenance", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Host), err
}
// DedicateHost represents the paramter of DedicateHost
type DedicateHostParameter struct {
// the name of the account which needs dedication. Must be used with domainId.
Account NullString
// the ID of the containing domain
DomainId ID
// the ID of the host to update
HostId ID
}
func NewDedicateHostParameter(domainid string, hostid string) (p *DedicateHostParameter) {
p = new(DedicateHostParameter)
p.DomainId.Set(domainid)
p.HostId.Set(hostid)
return p
}
// Dedicates a host.
func (c *Client) DedicateHost(p *DedicateHostParameter) (*DedicatedHost, error) {
obj, err := c.Request("dedicateHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*DedicatedHost), err
}
// ListHostTags represents the paramter of ListHostTags
type ListHostTagsParameter struct {
// List by keyword
Keyword NullString
Page NullNumber
PageSize NullNumber
}
func NewListHostTagsParameter() (p *ListHostTagsParameter) {
p = new(ListHostTagsParameter)
return p
}
// Lists host tags
func (c *Client) ListHostTags(p *ListHostTagsParameter) ([]*HostTag, error) {
obj, err := c.Request("listHostTags", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.([]*HostTag), err
}
// ListHosts represents the paramter of ListHosts
type ListHostsParameter struct {
// lists hosts existing in particular cluster
ClusterId ID
// comma separated list of host details requested, value can be a list of [ min,
// all, capacity, events, stats]
Details []string
// if true, list only hosts dedicated to HA
HaHost NullBool
// hypervisor type of host: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator
Hypervisor NullString
// the id of the host
Id ID
// List by keyword
Keyword NullString
// the name of the host
Name NullString
Page NullNumber
PageSize NullNumber
// the Pod ID for the host
PodId ID
// list hosts by resource state. Resource state represents current state
// determined by admin of host, valule can be one of [Enabled, Disabled,
// Unmanaged, PrepareForMaintenance, ErrorInMaintenance, Maintenance, Error]
ResourceState NullString
// the state of the host
State NullString
// the host type
Type NullString
// lists hosts in the same cluster as this VM and flag hosts with enough CPU/RAm
// to host this VM
VirtualMachineId ID
// the Zone ID for the host
ZoneId ID
}
func NewListHostsParameter() (p *ListHostsParameter) {
p = new(ListHostsParameter)
return p
}
// Lists hosts.
func (c *Client) ListHosts(p *ListHostsParameter) ([]*Host, error) {
obj, err := c.Request("listHosts", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.([]*Host), err
}
// DeleteHost represents the paramter of DeleteHost
type DeleteHostParameter struct {
// Force delete the host. All HA enabled vms running on the host will be put to
// HA; HA disabled ones will be stopped
Forced NullBool
// Force destroy local storage on this host. All VMs created on this local
// storage will be destroyed
ForceDestroyLocalStorage NullBool
// the host ID
Id ID
}
func NewDeleteHostParameter(id string) (p *DeleteHostParameter) {
p = new(DeleteHostParameter)
p.Id.Set(id)
return p
}
// Deletes a host.
func (c *Client) DeleteHost(p *DeleteHostParameter) (*Result, error) {
obj, err := c.Request("deleteHost", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Result), err
}