Skip to content

Commit 448bae5

Browse files
authored
fix(region): support query public cloud vm modification types (#24653)
1 parent 31e935a commit 448bae5

13 files changed

Lines changed: 174 additions & 4 deletions

File tree

cmd/climc/shell/compute/servers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ func init() {
138138
cmd.Perform("kickstart-complete", &options.ServerKickstartCompleteOptions{})
139139
cmd.Get("kickstart", new(options.ServerIdOptions))
140140
cmd.Get("vnc", new(options.ServerVncOptions))
141+
cmd.Get("modification-types", new(options.ServerIdOptions))
141142
cmd.Get("desc", new(options.ServerIdOptions))
142143
cmd.Get("status", new(options.ServerIdOptions))
143144
cmd.Get("iso", new(options.ServerIdOptions))

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ require (
108108
k8s.io/cri-api v0.28.15
109109
k8s.io/klog/v2 v2.90.1
110110
moul.io/http2curl/v2 v2.3.0
111-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409072734-6e765c0846d6
111+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409123844-2f5e06efeade
112112
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005
113113
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1
114114
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,8 +1785,8 @@ sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
17851785
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
17861786
sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
17871787
sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
1788-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409072734-6e765c0846d6 h1:1+DtEfMWn4AYP/GJMN3aatH2gyOzry0nb//ASMVS7WQ=
1789-
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409072734-6e765c0846d6/go.mod h1:TbMuTWxcTdyL2Usn+WQdIw0jdlBYO66SzPRY8LZ3Wj0=
1788+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409123844-2f5e06efeade h1:8DBeLhYpDrOW7oP5s/mGlc458zAN0mZq8ZMbH5b+JTA=
1789+
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409123844-2f5e06efeade/go.mod h1:TbMuTWxcTdyL2Usn+WQdIw0jdlBYO66SzPRY8LZ3Wj0=
17901790
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005 h1:3sWwcjGXGjG9mLBWa7AyLq+QSi0udTAx21pfVQRFMBE=
17911791
yunion.io/x/executor v0.0.0-20260312022053-f538abd2b005/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
17921792
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=

pkg/apis/compute/guests.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1572,3 +1572,11 @@ type ServerPerformStatusInput struct {
15721572
apis.PerformStatusInput
15731573
Containers map[string]*ContainerPerformStatusInput `json:"containers"`
15741574
}
1575+
1576+
type ServerModificationType struct {
1577+
Name string `json:"name"`
1578+
}
1579+
1580+
type ServerModificationTypesOutput struct {
1581+
ModificationTypes []ServerModificationType `json:"modification_types"`
1582+
}

pkg/compute/models/guest_actions.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,29 @@ func (self *SGuest) GetDetailsVnc(ctx context.Context, userCred mcclient.TokenCr
9898
return ret, nil
9999
}
100100

101+
// 获取公有云可变更配置
102+
// 目前支持: 阿里云,腾讯云,华为云
103+
func (guest *SGuest) GetDetailsModificationTypes(ctx context.Context, userCred mcclient.TokenCredential, input jsonutils.JSONObject) (*api.ServerModificationTypesOutput, error) {
104+
if len(guest.ExternalId) == 0 {
105+
return nil, httperrors.NewNotFoundError("guest external id is empty")
106+
}
107+
vm, err := guest.GetIVM(ctx)
108+
if err != nil {
109+
return nil, errors.Wrapf(err, "GetIVM")
110+
}
111+
112+
ret := &api.ServerModificationTypesOutput{}
113+
ret.ModificationTypes = make([]api.ServerModificationType, 0)
114+
modificationTypes, err := vm.GetModificationTypes()
115+
if err != nil {
116+
return nil, errors.Wrapf(err, "GetModificationTypes")
117+
}
118+
for _, modificationType := range modificationTypes {
119+
ret.ModificationTypes = append(ret.ModificationTypes, api.ServerModificationType{Name: modificationType.InstanceType})
120+
}
121+
return ret, nil
122+
}
123+
101124
func (self *SGuest) PreCheckPerformAction(
102125
ctx context.Context, userCred mcclient.TokenCredential,
103126
action string, query jsonutils.JSONObject, data jsonutils.JSONObject,

vendor/modules.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2603,7 +2603,7 @@ sigs.k8s.io/structured-merge-diff/v4/value
26032603
# sigs.k8s.io/yaml v1.3.0
26042604
## explicit; go 1.12
26052605
sigs.k8s.io/yaml
2606-
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409072734-6e765c0846d6
2606+
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20260409123844-2f5e06efeade
26072607
## explicit; go 1.24
26082608
yunion.io/x/cloudmux/pkg/apis
26092609
yunion.io/x/cloudmux/pkg/apis/billing

vendor/yunion.io/x/cloudmux/pkg/cloudprovider/instance.go

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

vendor/yunion.io/x/cloudmux/pkg/cloudprovider/resources.go

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

vendor/yunion.io/x/cloudmux/pkg/multicloud/aliyun/instance.go

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

vendor/yunion.io/x/cloudmux/pkg/multicloud/huawei/instance.go

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

0 commit comments

Comments
 (0)