This is an automated email from the ASF dual-hosted git repository.

Pearl1594 pushed a commit to branch 4.22.1-uploadK8sISO
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git

commit abdf1f5165af613dd7d6ecbbf367765afeae97f5
Author: Pearl Dsilva <[email protected]>
AuthorDate: Tue May 19 11:31:14 2026 -0400

    Adds support to upload k8s ISO from local
---
 cloudstack/KubernetesService.go      | 310 +++++++++++++++++++++++++++++++++++
 cloudstack/KubernetesService_mock.go |  29 ++++
 generate/layout.go                   |   1 +
 test/KubernetesService_test.go       |  15 ++
 4 files changed, 355 insertions(+)

diff --git a/cloudstack/KubernetesService.go b/cloudstack/KubernetesService.go
index 040e6ae..9d0a292 100644
--- a/cloudstack/KubernetesService.go
+++ b/cloudstack/KubernetesService.go
@@ -66,6 +66,8 @@ type KubernetesServiceIface interface {
        NewAddNodesToKubernetesClusterParams(id string, nodeids []string) 
*AddNodesToKubernetesClusterParams
        RemoveNodesFromKubernetesCluster(p 
*RemoveNodesFromKubernetesClusterParams) 
(*RemoveNodesFromKubernetesClusterResponse, error)
        NewRemoveNodesFromKubernetesClusterParams(id string, nodeids []string) 
*RemoveNodesFromKubernetesClusterParams
+       GetUploadParamsForKubernetesSupportedVersion(p 
*GetUploadParamsForKubernetesSupportedVersionParams) 
(*GetUploadParamsForKubernetesSupportedVersionResponse, error)
+       NewGetUploadParamsForKubernetesSupportedVersionParams(format string, 
mincpunumber int, minmemory int, name string, semanticversion string, zoneid 
string) *GetUploadParamsForKubernetesSupportedVersionParams
 }
 
 type AddKubernetesSupportedVersionParams struct {
@@ -3719,3 +3721,311 @@ type RemoveNodesFromKubernetesClusterResponse struct {
        Zoneid                string            `json:"zoneid"`
        Zonename              string            `json:"zonename"`
 }
+
+type GetUploadParamsForKubernetesSupportedVersionParams struct {
+       p map[string]interface{}
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) toURLValues() 
url.Values {
+       u := url.Values{}
+       if p.p == nil {
+               return u
+       }
+       if v, found := p.p["account"]; found {
+               u.Set("account", v.(string))
+       }
+       if v, found := p.p["checksum"]; found {
+               u.Set("checksum", v.(string))
+       }
+       if v, found := p.p["checksum"]; found {
+               u.Set("checksum", v.(string))
+       }
+       if v, found := p.p["domainid"]; found {
+               u.Set("domainid", v.(string))
+       }
+       if v, found := p.p["format"]; found {
+               u.Set("format", v.(string))
+       }
+       if v, found := p.p["mincpunumber"]; found {
+               vv := strconv.Itoa(v.(int))
+               u.Set("mincpunumber", vv)
+       }
+       if v, found := p.p["minmemory"]; found {
+               vv := strconv.Itoa(v.(int))
+               u.Set("minmemory", vv)
+       }
+       if v, found := p.p["name"]; found {
+               u.Set("name", v.(string))
+       }
+       if v, found := p.p["projectid"]; found {
+               u.Set("projectid", v.(string))
+       }
+       if v, found := p.p["semanticversion"]; found {
+               u.Set("semanticversion", v.(string))
+       }
+       if v, found := p.p["zoneid"]; found {
+               u.Set("zoneid", v.(string))
+       }
+       return u
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetAccount(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["account"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetAccount() {
+       if p.p != nil && p.p["account"] != nil {
+               delete(p.p, "account")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetAccount() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["account"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetChecksum(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["checksum"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetChecksum() {
+       if p.p != nil && p.p["checksum"] != nil {
+               delete(p.p, "checksum")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetChecksum() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["checksum"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetDomainid(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["domainid"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetDomainid() {
+       if p.p != nil && p.p["domainid"] != nil {
+               delete(p.p, "domainid")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetDomainid() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["domainid"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetFormat(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["format"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetFormat() {
+       if p.p != nil && p.p["format"] != nil {
+               delete(p.p, "format")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetFormat() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["format"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetMincpunumber(v 
int) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["mincpunumber"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) 
ResetMincpunumber() {
+       if p.p != nil && p.p["mincpunumber"] != nil {
+               delete(p.p, "mincpunumber")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetMincpunumber() 
(int, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["mincpunumber"].(int)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetMinmemory(v 
int) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["minmemory"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetMinmemory() {
+       if p.p != nil && p.p["minmemory"] != nil {
+               delete(p.p, "minmemory")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetMinmemory() 
(int, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["minmemory"].(int)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetName(v string) 
{
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["name"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetName() {
+       if p.p != nil && p.p["name"] != nil {
+               delete(p.p, "name")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetName() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["name"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetProjectid(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["projectid"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetProjectid() {
+       if p.p != nil && p.p["projectid"] != nil {
+               delete(p.p, "projectid")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetProjectid() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["projectid"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) 
SetSemanticversion(v string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["semanticversion"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) 
ResetSemanticversion() {
+       if p.p != nil && p.p["semanticversion"] != nil {
+               delete(p.p, "semanticversion")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) 
GetSemanticversion() (string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["semanticversion"].(string)
+       return value, ok
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) SetZoneid(v 
string) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       p.p["zoneid"] = v
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) ResetZoneid() {
+       if p.p != nil && p.p["zoneid"] != nil {
+               delete(p.p, "zoneid")
+       }
+}
+
+func (p *GetUploadParamsForKubernetesSupportedVersionParams) GetZoneid() 
(string, bool) {
+       if p.p == nil {
+               p.p = make(map[string]interface{})
+       }
+       value, ok := p.p["zoneid"].(string)
+       return value, ok
+}
+
+// You should always use this function to get a new 
GetUploadParamsForKubernetesSupportedVersionParams instance,
+// as then you are sure you have configured all required params
+func (s *KubernetesService) 
NewGetUploadParamsForKubernetesSupportedVersionParams(format string, 
mincpunumber int, minmemory int, name string, semanticversion string, zoneid 
string) *GetUploadParamsForKubernetesSupportedVersionParams {
+       p := &GetUploadParamsForKubernetesSupportedVersionParams{}
+       p.p = make(map[string]interface{})
+       p.p["format"] = format
+       p.p["mincpunumber"] = mincpunumber
+       p.p["minmemory"] = minmemory
+       p.p["name"] = name
+       p.p["semanticversion"] = semanticversion
+       p.p["zoneid"] = zoneid
+       return p
+}
+
+// Upload a supported Kubernetes version
+func (s *KubernetesService) GetUploadParamsForKubernetesSupportedVersion(p 
*GetUploadParamsForKubernetesSupportedVersionParams) 
(*GetUploadParamsForKubernetesSupportedVersionResponse, error) {
+       resp, err := 
s.cs.newRequest("getUploadParamsForKubernetesSupportedVersion", p.toURLValues())
+       if err != nil {
+               return nil, err
+       }
+
+       var r GetUploadParamsForKubernetesSupportedVersionResponse
+       if err := json.Unmarshal(resp, &r); err != nil {
+               return nil, err
+       }
+
+       return &r, nil
+}
+
+type GetUploadParamsForKubernetesSupportedVersionResponse struct {
+       Arch                string `json:"arch"`
+       Created             string `json:"created"`
+       Directdownload      bool   `json:"directdownload"`
+       Id                  string `json:"id"`
+       Isoid               string `json:"isoid"`
+       Isoname             string `json:"isoname"`
+       Isostate            string `json:"isostate"`
+       Isourl              string `json:"isourl"`
+       JobID               string `json:"jobid"`
+       Jobstatus           int    `json:"jobstatus"`
+       Mincpunumber        int    `json:"mincpunumber"`
+       Minmemory           int    `json:"minmemory"`
+       Name                string `json:"name"`
+       Semanticversion     string `json:"semanticversion"`
+       State               string `json:"state"`
+       Supportsautoscaling bool   `json:"supportsautoscaling"`
+       Supportsha          bool   `json:"supportsha"`
+       Zoneid              string `json:"zoneid"`
+       Zonename            string `json:"zonename"`
+}
diff --git a/cloudstack/KubernetesService_mock.go 
b/cloudstack/KubernetesService_mock.go
index 65dea25..6ed11bd 100644
--- a/cloudstack/KubernetesService_mock.go
+++ b/cloudstack/KubernetesService_mock.go
@@ -289,6 +289,21 @@ func (mr *MockKubernetesServiceIfaceMockRecorder) 
GetKubernetesSupportedVersionI
        return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, 
"GetKubernetesSupportedVersionID", 
reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetKubernetesSupportedVersionID),
 varargs...)
 }
 
+// GetUploadParamsForKubernetesSupportedVersion mocks base method.
+func (m *MockKubernetesServiceIface) 
GetUploadParamsForKubernetesSupportedVersion(p 
*GetUploadParamsForKubernetesSupportedVersionParams) 
(*GetUploadParamsForKubernetesSupportedVersionResponse, error) {
+       m.ctrl.T.Helper()
+       ret := m.ctrl.Call(m, "GetUploadParamsForKubernetesSupportedVersion", p)
+       ret0, _ := 
ret[0].(*GetUploadParamsForKubernetesSupportedVersionResponse)
+       ret1, _ := ret[1].(error)
+       return ret0, ret1
+}
+
+// GetUploadParamsForKubernetesSupportedVersion indicates an expected call of 
GetUploadParamsForKubernetesSupportedVersion.
+func (mr *MockKubernetesServiceIfaceMockRecorder) 
GetUploadParamsForKubernetesSupportedVersion(p any) *gomock.Call {
+       mr.mock.ctrl.T.Helper()
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, 
"GetUploadParamsForKubernetesSupportedVersion", 
reflect.TypeOf((*MockKubernetesServiceIface)(nil).GetUploadParamsForKubernetesSupportedVersion),
 p)
+}
+
 // ListKubernetesClusters mocks base method.
 func (m *MockKubernetesServiceIface) ListKubernetesClusters(p 
*ListKubernetesClustersParams) (*ListKubernetesClustersResponse, error) {
        m.ctrl.T.Helper()
@@ -417,6 +432,20 @@ func (mr *MockKubernetesServiceIfaceMockRecorder) 
NewGetKubernetesClusterConfigP
        return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, 
"NewGetKubernetesClusterConfigParams", 
reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewGetKubernetesClusterConfigParams))
 }
 
+// NewGetUploadParamsForKubernetesSupportedVersionParams mocks base method.
+func (m *MockKubernetesServiceIface) 
NewGetUploadParamsForKubernetesSupportedVersionParams(format string, 
mincpunumber, minmemory int, name, semanticversion, zoneid string) 
*GetUploadParamsForKubernetesSupportedVersionParams {
+       m.ctrl.T.Helper()
+       ret := m.ctrl.Call(m, 
"NewGetUploadParamsForKubernetesSupportedVersionParams", format, mincpunumber, 
minmemory, name, semanticversion, zoneid)
+       ret0, _ := ret[0].(*GetUploadParamsForKubernetesSupportedVersionParams)
+       return ret0
+}
+
+// NewGetUploadParamsForKubernetesSupportedVersionParams indicates an expected 
call of NewGetUploadParamsForKubernetesSupportedVersionParams.
+func (mr *MockKubernetesServiceIfaceMockRecorder) 
NewGetUploadParamsForKubernetesSupportedVersionParams(format, mincpunumber, 
minmemory, name, semanticversion, zoneid any) *gomock.Call {
+       mr.mock.ctrl.T.Helper()
+       return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, 
"NewGetUploadParamsForKubernetesSupportedVersionParams", 
reflect.TypeOf((*MockKubernetesServiceIface)(nil).NewGetUploadParamsForKubernetesSupportedVersionParams),
 format, mincpunumber, minmemory, name, semanticversion, zoneid)
+}
+
 // NewListKubernetesClustersParams mocks base method.
 func (m *MockKubernetesServiceIface) NewListKubernetesClustersParams() 
*ListKubernetesClustersParams {
        m.ctrl.T.Helper()
diff --git a/generate/layout.go b/generate/layout.go
index 0a20b96..b5d6a47 100644
--- a/generate/layout.go
+++ b/generate/layout.go
@@ -912,6 +912,7 @@ var layout = apiInfo{
                "removeVirtualMachinesFromKubernetesCluster",
                "addNodesToKubernetesCluster",
                "removeNodesFromKubernetesCluster",
+               "getUploadParamsForKubernetesSupportedVersion",
        },
        "InfrastructureUsageService": {
                "listDbMetrics",
diff --git a/test/KubernetesService_test.go b/test/KubernetesService_test.go
index e7c0276..026d9bb 100644
--- a/test/KubernetesService_test.go
+++ b/test/KubernetesService_test.go
@@ -257,4 +257,19 @@ func TestKubernetesService(t *testing.T) {
        }
        t.Run("RemoveNodesFromKubernetesCluster", 
testremoveNodesFromKubernetesCluster)
 
+       testgetUploadParamsForKubernetesSupportedVersion := func(t *testing.T) {
+               if _, ok := 
response["getUploadParamsForKubernetesSupportedVersion"]; !ok {
+                       t.Skipf("Skipping as no json response is provided in 
testdata")
+               }
+               p := 
client.Kubernetes.NewGetUploadParamsForKubernetesSupportedVersionParams("format",
 0, 0, "name", "semanticversion", "zoneid")
+               r, err := 
client.Kubernetes.GetUploadParamsForKubernetesSupportedVersion(p)
+               if err != nil {
+                       t.Errorf(err.Error())
+               }
+               if r.Id == "" {
+                       t.Errorf("Failed to parse response. ID not found")
+               }
+       }
+       t.Run("GetUploadParamsForKubernetesSupportedVersion", 
testgetUploadParamsForKubernetesSupportedVersion)
+
 }

Reply via email to