diff --git a/cloudstack/ConfigurationService.go b/cloudstack/ConfigurationService.go index 914322d..7e9cfd6 100644 --- a/cloudstack/ConfigurationService.go +++ b/cloudstack/ConfigurationService.go @@ -47,8 +47,8 @@ type ConfigurationServiceIface interface { ListCniConfiguration(p *ListCniConfigurationParams) (*ListCniConfigurationResponse, error) NewListCniConfigurationParams() *ListCniConfigurationParams GetCniConfigurationID(name string, opts ...OptionFunc) (string, int, error) - GetCniConfigurationByName(name string, opts ...OptionFunc) (*CniConfiguration, int, error) - GetCniConfigurationByID(id string, opts ...OptionFunc) (*CniConfiguration, int, error) + GetCniConfigurationByName(name string, opts ...OptionFunc) (*UserData, int, error) + GetCniConfigurationByID(id string, opts ...OptionFunc) (*UserData, int, error) DeleteCniConfiguration(p *DeleteCniConfigurationParams) (*DeleteCniConfigurationResponse, error) NewDeleteCniConfigurationParams(id string) *DeleteCniConfigurationParams } @@ -1553,13 +1553,17 @@ func (s *ConfigurationService) RegisterCniConfiguration(p *RegisterCniConfigurat } type RegisterCniConfigurationResponse struct { + CniConfiguration *UserData `json:"cniconfig"` +} + +type RegisterCniConfiguration struct { Displaytext string `json:"displaytext"` JobID string `json:"jobid"` Jobstatus int `json:"jobstatus"` Success bool `json:"success"` } -func (r *RegisterCniConfigurationResponse) UnmarshalJSON(b []byte) error { +func (r *RegisterCniConfiguration) UnmarshalJSON(b []byte) error { var m map[string]interface{} err := json.Unmarshal(b, &m) if err != nil { @@ -1582,7 +1586,7 @@ func (r *RegisterCniConfigurationResponse) UnmarshalJSON(b []byte) error { } } - type alias RegisterCniConfigurationResponse + type alias RegisterCniConfiguration return json.Unmarshal(b, (*alias)(r)) } @@ -1887,7 +1891,7 @@ func (s *ConfigurationService) GetCniConfigurationID(name string, opts ...Option } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *ConfigurationService) GetCniConfigurationByName(name string, opts ...OptionFunc) (*CniConfiguration, int, error) { +func (s *ConfigurationService) GetCniConfigurationByName(name string, opts ...OptionFunc) (*UserData, int, error) { id, count, err := s.GetCniConfigurationID(name, opts...) if err != nil { return nil, count, err @@ -1901,7 +1905,7 @@ func (s *ConfigurationService) GetCniConfigurationByName(name string, opts ...Op } // This is a courtesy helper function, which in some cases may not work as expected! -func (s *ConfigurationService) GetCniConfigurationByID(id string, opts ...OptionFunc) (*CniConfiguration, int, error) { +func (s *ConfigurationService) GetCniConfigurationByID(id string, opts ...OptionFunc) (*UserData, int, error) { p := &ListCniConfigurationParams{} p.p = make(map[string]interface{}) @@ -1949,25 +1953,8 @@ func (s *ConfigurationService) ListCniConfiguration(p *ListCniConfigurationParam } type ListCniConfigurationResponse struct { - Count int `json:"count"` - CniConfiguration []*CniConfiguration `json:"cniconfiguration"` -} - -type CniConfiguration struct { - Account string `json:"account"` - Accountid string `json:"accountid"` - Domain string `json:"domain"` - Domainid string `json:"domainid"` - Domainpath string `json:"domainpath"` - Hasannotations bool `json:"hasannotations"` - Id string `json:"id"` - JobID string `json:"jobid"` - Jobstatus int `json:"jobstatus"` - Name string `json:"name"` - Params string `json:"params"` - Project string `json:"project"` - Projectid string `json:"projectid"` - Userdata string `json:"userdata"` + Count int `json:"count"` + CniConfiguration []*UserData `json:"cniconfig"` } type DeleteCniConfigurationParams struct { diff --git a/cloudstack/ConfigurationService_mock.go b/cloudstack/ConfigurationService_mock.go index 668403a..4b1b037 100644 --- a/cloudstack/ConfigurationService_mock.go +++ b/cloudstack/ConfigurationService_mock.go @@ -74,14 +74,14 @@ func (mr *MockConfigurationServiceIfaceMockRecorder) DeleteCniConfiguration(p an } // GetCniConfigurationByID mocks base method. -func (m *MockConfigurationServiceIface) GetCniConfigurationByID(id string, opts ...OptionFunc) (*CniConfiguration, int, error) { +func (m *MockConfigurationServiceIface) GetCniConfigurationByID(id string, opts ...OptionFunc) (*UserData, int, error) { m.ctrl.T.Helper() varargs := []any{id} for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "GetCniConfigurationByID", varargs...) - ret0, _ := ret[0].(*CniConfiguration) + ret0, _ := ret[0].(*UserData) ret1, _ := ret[1].(int) ret2, _ := ret[2].(error) return ret0, ret1, ret2 @@ -95,14 +95,14 @@ func (mr *MockConfigurationServiceIfaceMockRecorder) GetCniConfigurationByID(id } // GetCniConfigurationByName mocks base method. -func (m *MockConfigurationServiceIface) GetCniConfigurationByName(name string, opts ...OptionFunc) (*CniConfiguration, int, error) { +func (m *MockConfigurationServiceIface) GetCniConfigurationByName(name string, opts ...OptionFunc) (*UserData, int, error) { m.ctrl.T.Helper() varargs := []any{name} for _, a := range opts { varargs = append(varargs, a) } ret := m.ctrl.Call(m, "GetCniConfigurationByName", varargs...) - ret0, _ := ret[0].(*CniConfiguration) + ret0, _ := ret[0].(*UserData) ret1, _ := ret[1].(int) ret2, _ := ret[2].(error) return ret0, ret1, ret2 diff --git a/generate/generate.go b/generate/generate.go index 0a5d5ec..f011368 100644 --- a/generate/generate.go +++ b/generate/generate.go @@ -1302,7 +1302,11 @@ func (s *service) generateInterfaceType() { if parseSingular(ln) == "Template" || parseSingular(ln) == "Iso" { p("zoneid string, ") } - pn("opts ...OptionFunc) (*%s, int, error)", parseSingular(ln)) + if parseSingular(ln) == "CniConfiguration" { + pn("opts ...OptionFunc) (*UserData, int, error)") + } else { + pn("opts ...OptionFunc) (*%s, int, error)", parseSingular(ln)) + } } } @@ -1318,6 +1322,8 @@ func (s *service) generateInterfaceType() { } if ln == "LoadBalancerRuleInstances" { pn("opts ...OptionFunc) (*VirtualMachine, int, error)") + } else if ln == "CniConfiguration" { + pn("opts ...OptionFunc) (*UserData, int, error)") } else { pn("opts ...OptionFunc) (*%s, int, error)", parseSingular(ln)) } @@ -1630,7 +1636,11 @@ func (s *service) generateHelperFuncs(a *API) { if parseSingular(ln) == "Template" || parseSingular(ln) == "Iso" { p("zoneid string, ") } - pn("opts ...OptionFunc) (*%s, int, error) {", parseSingular(ln)) + if parseSingular(ln) == "CniConfiguration" { + pn("opts ...OptionFunc) (*UserData, int, error) {") + } else { + pn("opts ...OptionFunc) (*%s, int, error) {", parseSingular(ln)) + } // Generate the function body p(" id, count, err := s.Get%sID(name, ", parseSingular(ln)) @@ -1679,6 +1689,8 @@ func (s *service) generateHelperFuncs(a *API) { } if ln == "LoadBalancerRuleInstances" { pn("opts ...OptionFunc) (*VirtualMachine, int, error) {") + } else if ln == "CniConfiguration" { + pn("opts ...OptionFunc) (*UserData, int, error) {") } else { pn("opts ...OptionFunc) (*%s, int, error) {", parseSingular(ln)) } @@ -1978,6 +1990,14 @@ func (s *service) generateResponseType(a *API) { pn("") return } + if a.Name == "listCniConfiguration" { + pn("type ListCniConfigurationResponse struct {") + pn(" Count int `json:\"count\"`") + pn(" CniConfiguration []*UserData `json:\"cniconfig\"`") + pn("}") + pn("") + return + } ln := capitalize(strings.TrimPrefix(a.Name, "list")) @@ -1985,7 +2005,7 @@ func (s *service) generateResponseType(a *API) { // types of responses that also need a separate list struct, so checking on exact matches // for those once. if strings.HasPrefix(a.Name, "list") || a.Name == "registerTemplate" || a.Name == "findHostsForMigration" || a.Name == "registerUserData" || - a.Name == "quotaBalance" || a.Name == "quotaSummary" || a.Name == "quotaTariffList" { + a.Name == "registerCniConfiguration" || a.Name == "quotaBalance" || a.Name == "quotaSummary" || a.Name == "quotaTariffList" { pn("type %s struct {", tn) // This nasty check is for some specific response that do not behave consistent @@ -2034,6 +2054,8 @@ func (s *service) generateResponseType(a *API) { pn(" Name string `json:\"name\"`") pn(" Params string `json:\"params\"`") pn(" Userdata string `json:\"userdata\"`") + case "registerCniConfiguration": + pn(" CniConfiguration *UserData `json:\"cniconfig\"`") case "listObjectStoragePools": pn(" Count int `json:\"count\"`") pn(" %s []*%s `json:\"%s\"`", ln, parseSingular(ln), "objectstore")