Skip to content

Commit 4f01bd9

Browse files
authored
Merge pull request #89 from suecodelabs/feature_add_more_apis
add +30 more apis
2 parents 2b21240 + 9994d40 commit 4f01bd9

File tree

67 files changed

+16436
-14
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+16436
-14
lines changed

cloudstack/CertificateService.go

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ import (
2828
type CertificateServiceIface interface {
2929
UploadCustomCertificate(p *UploadCustomCertificateParams) (*UploadCustomCertificateResponse, error)
3030
NewUploadCustomCertificateParams(certificate string, domainsuffix string) *UploadCustomCertificateParams
31+
ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error)
32+
NewListCAProvidersParams() *ListCAProvidersParams
33+
ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error)
34+
NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams
3135
}
3236

3337
type UploadCustomCertificateParams struct {
@@ -213,3 +217,205 @@ type UploadCustomCertificateResponse struct {
213217
Jobstatus int `json:"jobstatus"`
214218
Message string `json:"message"`
215219
}
220+
221+
type ListCAProvidersParams struct {
222+
p map[string]interface{}
223+
}
224+
225+
func (p *ListCAProvidersParams) toURLValues() url.Values {
226+
u := url.Values{}
227+
if p.p == nil {
228+
return u
229+
}
230+
if v, found := p.p["name"]; found {
231+
u.Set("name", v.(string))
232+
}
233+
return u
234+
}
235+
236+
func (p *ListCAProvidersParams) SetName(v string) {
237+
if p.p == nil {
238+
p.p = make(map[string]interface{})
239+
}
240+
p.p["name"] = v
241+
}
242+
243+
func (p *ListCAProvidersParams) ResetName() {
244+
if p.p != nil && p.p["name"] != nil {
245+
delete(p.p, "name")
246+
}
247+
}
248+
249+
func (p *ListCAProvidersParams) GetName() (string, bool) {
250+
if p.p == nil {
251+
p.p = make(map[string]interface{})
252+
}
253+
value, ok := p.p["name"].(string)
254+
return value, ok
255+
}
256+
257+
// You should always use this function to get a new ListCAProvidersParams instance,
258+
// as then you are sure you have configured all required params
259+
func (s *CertificateService) NewListCAProvidersParams() *ListCAProvidersParams {
260+
p := &ListCAProvidersParams{}
261+
p.p = make(map[string]interface{})
262+
return p
263+
}
264+
265+
// Lists available certificate authority providers in CloudStack
266+
func (s *CertificateService) ListCAProviders(p *ListCAProvidersParams) (*ListCAProvidersResponse, error) {
267+
resp, err := s.cs.newRequest("listCAProviders", p.toURLValues())
268+
if err != nil {
269+
return nil, err
270+
}
271+
272+
var r ListCAProvidersResponse
273+
if err := json.Unmarshal(resp, &r); err != nil {
274+
return nil, err
275+
}
276+
277+
return &r, nil
278+
}
279+
280+
type ListCAProvidersResponse struct {
281+
Count int `json:"count"`
282+
CAProviders []*CAProvider `json:"caprovider"`
283+
}
284+
285+
type CAProvider struct {
286+
Description string `json:"description"`
287+
JobID string `json:"jobid"`
288+
Jobstatus int `json:"jobstatus"`
289+
Name string `json:"name"`
290+
}
291+
292+
type ProvisionCertificateParams struct {
293+
p map[string]interface{}
294+
}
295+
296+
func (p *ProvisionCertificateParams) toURLValues() url.Values {
297+
u := url.Values{}
298+
if p.p == nil {
299+
return u
300+
}
301+
if v, found := p.p["hostid"]; found {
302+
u.Set("hostid", v.(string))
303+
}
304+
if v, found := p.p["provider"]; found {
305+
u.Set("provider", v.(string))
306+
}
307+
if v, found := p.p["reconnect"]; found {
308+
vv := strconv.FormatBool(v.(bool))
309+
u.Set("reconnect", vv)
310+
}
311+
return u
312+
}
313+
314+
func (p *ProvisionCertificateParams) SetHostid(v string) {
315+
if p.p == nil {
316+
p.p = make(map[string]interface{})
317+
}
318+
p.p["hostid"] = v
319+
}
320+
321+
func (p *ProvisionCertificateParams) ResetHostid() {
322+
if p.p != nil && p.p["hostid"] != nil {
323+
delete(p.p, "hostid")
324+
}
325+
}
326+
327+
func (p *ProvisionCertificateParams) GetHostid() (string, bool) {
328+
if p.p == nil {
329+
p.p = make(map[string]interface{})
330+
}
331+
value, ok := p.p["hostid"].(string)
332+
return value, ok
333+
}
334+
335+
func (p *ProvisionCertificateParams) SetProvider(v string) {
336+
if p.p == nil {
337+
p.p = make(map[string]interface{})
338+
}
339+
p.p["provider"] = v
340+
}
341+
342+
func (p *ProvisionCertificateParams) ResetProvider() {
343+
if p.p != nil && p.p["provider"] != nil {
344+
delete(p.p, "provider")
345+
}
346+
}
347+
348+
func (p *ProvisionCertificateParams) GetProvider() (string, bool) {
349+
if p.p == nil {
350+
p.p = make(map[string]interface{})
351+
}
352+
value, ok := p.p["provider"].(string)
353+
return value, ok
354+
}
355+
356+
func (p *ProvisionCertificateParams) SetReconnect(v bool) {
357+
if p.p == nil {
358+
p.p = make(map[string]interface{})
359+
}
360+
p.p["reconnect"] = v
361+
}
362+
363+
func (p *ProvisionCertificateParams) ResetReconnect() {
364+
if p.p != nil && p.p["reconnect"] != nil {
365+
delete(p.p, "reconnect")
366+
}
367+
}
368+
369+
func (p *ProvisionCertificateParams) GetReconnect() (bool, bool) {
370+
if p.p == nil {
371+
p.p = make(map[string]interface{})
372+
}
373+
value, ok := p.p["reconnect"].(bool)
374+
return value, ok
375+
}
376+
377+
// You should always use this function to get a new ProvisionCertificateParams instance,
378+
// as then you are sure you have configured all required params
379+
func (s *CertificateService) NewProvisionCertificateParams(hostid string) *ProvisionCertificateParams {
380+
p := &ProvisionCertificateParams{}
381+
p.p = make(map[string]interface{})
382+
p.p["hostid"] = hostid
383+
return p
384+
}
385+
386+
// Issues and propagates client certificate on a connected host/agent using configured CA plugin
387+
func (s *CertificateService) ProvisionCertificate(p *ProvisionCertificateParams) (*ProvisionCertificateResponse, error) {
388+
resp, err := s.cs.newRequest("provisionCertificate", p.toURLValues())
389+
if err != nil {
390+
return nil, err
391+
}
392+
393+
var r ProvisionCertificateResponse
394+
if err := json.Unmarshal(resp, &r); err != nil {
395+
return nil, err
396+
}
397+
398+
// If we have a async client, we need to wait for the async result
399+
if s.cs.async {
400+
b, err := s.cs.GetAsyncJobResult(r.JobID, s.cs.timeout)
401+
if err != nil {
402+
if err == AsyncTimeoutErr {
403+
return &r, err
404+
}
405+
return nil, err
406+
}
407+
408+
if err := json.Unmarshal(b, &r); err != nil {
409+
return nil, err
410+
}
411+
}
412+
413+
return &r, nil
414+
}
415+
416+
type ProvisionCertificateResponse struct {
417+
Displaytext string `json:"displaytext"`
418+
JobID string `json:"jobid"`
419+
Jobstatus int `json:"jobstatus"`
420+
Success bool `json:"success"`
421+
}

cloudstack/CertificateService_mock.go

Lines changed: 58 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cloudstack/ConfigurationService.go

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ type ConfigurationServiceIface interface {
3636
NewUpdateConfigurationParams(name string) *UpdateConfigurationParams
3737
ResetConfiguration(p *ResetConfigurationParams) (*ResetConfigurationResponse, error)
3838
NewResetConfigurationParams(name string) *ResetConfigurationParams
39+
UpdateStorageCapabilities(p *UpdateStorageCapabilitiesParams) (*UpdateStorageCapabilitiesResponse, error)
40+
NewUpdateStorageCapabilitiesParams(id string) *UpdateStorageCapabilitiesParams
3941
}
4042

4143
type ListCapabilitiesParams struct {
@@ -1100,3 +1102,95 @@ type ResetConfigurationResponse struct {
11001102
Type string `json:"type"`
11011103
Value string `json:"value"`
11021104
}
1105+
1106+
type UpdateStorageCapabilitiesParams struct {
1107+
p map[string]interface{}
1108+
}
1109+
1110+
func (p *UpdateStorageCapabilitiesParams) toURLValues() url.Values {
1111+
u := url.Values{}
1112+
if p.p == nil {
1113+
return u
1114+
}
1115+
if v, found := p.p["id"]; found {
1116+
u.Set("id", v.(string))
1117+
}
1118+
return u
1119+
}
1120+
1121+
func (p *UpdateStorageCapabilitiesParams) SetId(v string) {
1122+
if p.p == nil {
1123+
p.p = make(map[string]interface{})
1124+
}
1125+
p.p["id"] = v
1126+
}
1127+
1128+
func (p *UpdateStorageCapabilitiesParams) ResetId() {
1129+
if p.p != nil && p.p["id"] != nil {
1130+
delete(p.p, "id")
1131+
}
1132+
}
1133+
1134+
func (p *UpdateStorageCapabilitiesParams) GetId() (string, bool) {
1135+
if p.p == nil {
1136+
p.p = make(map[string]interface{})
1137+
}
1138+
value, ok := p.p["id"].(string)
1139+
return value, ok
1140+
}
1141+
1142+
// You should always use this function to get a new UpdateStorageCapabilitiesParams instance,
1143+
// as then you are sure you have configured all required params
1144+
func (s *ConfigurationService) NewUpdateStorageCapabilitiesParams(id string) *UpdateStorageCapabilitiesParams {
1145+
p := &UpdateStorageCapabilitiesParams{}
1146+
p.p = make(map[string]interface{})
1147+
p.p["id"] = id
1148+
return p
1149+
}
1150+
1151+
// Syncs capabilities of storage pools
1152+
func (s *ConfigurationService) UpdateStorageCapabilities(p *UpdateStorageCapabilitiesParams) (*UpdateStorageCapabilitiesResponse, error) {
1153+
resp, err := s.cs.newRequest("updateStorageCapabilities", p.toURLValues())
1154+
if err != nil {
1155+
return nil, err
1156+
}
1157+
1158+
var r UpdateStorageCapabilitiesResponse
1159+
if err := json.Unmarshal(resp, &r); err != nil {
1160+
return nil, err
1161+
}
1162+
1163+
return &r, nil
1164+
}
1165+
1166+
type UpdateStorageCapabilitiesResponse struct {
1167+
Allocatediops int64 `json:"allocatediops"`
1168+
Capacityiops int64 `json:"capacityiops"`
1169+
Clusterid string `json:"clusterid"`
1170+
Clustername string `json:"clustername"`
1171+
Created string `json:"created"`
1172+
Disksizeallocated int64 `json:"disksizeallocated"`
1173+
Disksizetotal int64 `json:"disksizetotal"`
1174+
Disksizeused int64 `json:"disksizeused"`
1175+
Hasannotations bool `json:"hasannotations"`
1176+
Hypervisor string `json:"hypervisor"`
1177+
Id string `json:"id"`
1178+
Ipaddress string `json:"ipaddress"`
1179+
Istagarule bool `json:"istagarule"`
1180+
JobID string `json:"jobid"`
1181+
Jobstatus int `json:"jobstatus"`
1182+
Name string `json:"name"`
1183+
Overprovisionfactor string `json:"overprovisionfactor"`
1184+
Path string `json:"path"`
1185+
Podid string `json:"podid"`
1186+
Podname string `json:"podname"`
1187+
Provider string `json:"provider"`
1188+
Scope string `json:"scope"`
1189+
State string `json:"state"`
1190+
Storagecapabilities map[string]string `json:"storagecapabilities"`
1191+
Suitableformigration bool `json:"suitableformigration"`
1192+
Tags string `json:"tags"`
1193+
Type string `json:"type"`
1194+
Zoneid string `json:"zoneid"`
1195+
Zonename string `json:"zonename"`
1196+
}

0 commit comments

Comments
 (0)