You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by we...@apache.org on 2026/08/05 08:46:13 UTC
(cloudstack-go) 01/01: Fix listing virtual machines with vnfnics
This is an automated email from the ASF dual-hosted git repository.
weizhouapache pushed a commit to branch fix-vnfnics
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git
commit e466ae8a6a00097f33aaa0eae7cbe9e47604258a
Author: Wei Zhou <we...@apache.org>
AuthorDate: Wed Aug 5 10:45:19 2026 +0200
Fix listing virtual machines with vnfnics
---
cloudstack/AffinityGroupService.go | 2 +-
cloudstack/BackupService.go | 2 +-
cloudstack/ISOService.go | 4 +--
cloudstack/NicService.go | 2 +-
cloudstack/SSHService.go | 2 +-
cloudstack/SnapshotService.go | 2 +-
cloudstack/VirtualMachineService.go | 42 ++++++++++++++--------------
cloudstack/VirtualNetworkFunctionsService.go | 14 ++++++++--
generate/generate.go | 17 +++++++++++
9 files changed, 57 insertions(+), 30 deletions(-)
diff --git a/cloudstack/AffinityGroupService.go b/cloudstack/AffinityGroupService.go
index afd1767..c635a39 100644
--- a/cloudstack/AffinityGroupService.go
+++ b/cloudstack/AffinityGroupService.go
@@ -1232,7 +1232,7 @@ type UpdateVMAffinityGroupResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/BackupService.go b/cloudstack/BackupService.go
index 92033d8..9891473 100644
--- a/cloudstack/BackupService.go
+++ b/cloudstack/BackupService.go
@@ -2301,7 +2301,7 @@ type CreateVMFromBackupResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/ISOService.go b/cloudstack/ISOService.go
index d98f004..eb8f483 100644
--- a/cloudstack/ISOService.go
+++ b/cloudstack/ISOService.go
@@ -290,7 +290,7 @@ type AttachIsoResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -924,7 +924,7 @@ type DetachIsoResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/NicService.go b/cloudstack/NicService.go
index 3fe8f33..d4f316f 100644
--- a/cloudstack/NicService.go
+++ b/cloudstack/NicService.go
@@ -695,7 +695,7 @@ type UpdateVmNicIpResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/SSHService.go b/cloudstack/SSHService.go
index 30038d4..a250859 100644
--- a/cloudstack/SSHService.go
+++ b/cloudstack/SSHService.go
@@ -1245,7 +1245,7 @@ type ResetSSHKeyForVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/SnapshotService.go b/cloudstack/SnapshotService.go
index ab11f36..902a927 100644
--- a/cloudstack/SnapshotService.go
+++ b/cloudstack/SnapshotService.go
@@ -3849,7 +3849,7 @@ type RevertToVMSnapshotResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/VirtualMachineService.go b/cloudstack/VirtualMachineService.go
index 675b5c8..f10e928 100644
--- a/cloudstack/VirtualMachineService.go
+++ b/cloudstack/VirtualMachineService.go
@@ -397,7 +397,7 @@ type AddNicToVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -760,7 +760,7 @@ type AssignVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -1153,7 +1153,7 @@ type ChangeServiceForVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -2937,7 +2937,7 @@ type DeployVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -3248,7 +3248,7 @@ type DestroyVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -4800,7 +4800,7 @@ type VirtualMachine struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -6211,7 +6211,7 @@ type VirtualMachinesMetric struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -6817,7 +6817,7 @@ type MigrateVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -7170,7 +7170,7 @@ type MigrateVirtualMachineWithVolumeResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -7481,7 +7481,7 @@ type RebootVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -7722,7 +7722,7 @@ type RecoverVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -8008,7 +8008,7 @@ type RemoveNicFromVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -8293,7 +8293,7 @@ type ResetPasswordForVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -8681,7 +8681,7 @@ type ResetUserDataForVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -9067,7 +9067,7 @@ type RestoreVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -9708,7 +9708,7 @@ type StartVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -9994,7 +9994,7 @@ type StopVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -10280,7 +10280,7 @@ type UpdateDefaultNicForVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -11058,7 +11058,7 @@ type UpdateVirtualMachineResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -12581,7 +12581,7 @@ type ImportVmResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -13532,7 +13532,7 @@ type ImportUnmanagedInstanceResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/cloudstack/VirtualNetworkFunctionsService.go b/cloudstack/VirtualNetworkFunctionsService.go
index 90f7dee..6890a48 100644
--- a/cloudstack/VirtualNetworkFunctionsService.go
+++ b/cloudstack/VirtualNetworkFunctionsService.go
@@ -1810,7 +1810,7 @@ type DeployVnfApplianceResponse struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
@@ -3009,6 +3009,16 @@ func (s *VirtualNetworkFunctionsService) ListVnfAppliances(p *ListVnfAppliancesP
return &r, nil
}
+type VnfNic struct {
+ Deviceid int64 `json:"deviceid"`
+ Description string `json:"description"`
+ Management bool `json:"management"`
+ Name string `json:"name"`
+ Networkid string `json:"networkid"`
+ Networkname string `json:"networkname"`
+ Required bool `json:"required"`
+}
+
type ListVnfAppliancesResponse struct {
Count int `json:"count"`
VnfAppliances []*VnfAppliance `json:"vnfappliance"`
@@ -3118,7 +3128,7 @@ type VnfAppliance struct {
Videoram int64 `json:"videoram"`
Vmtype string `json:"vmtype"`
Vnfdetails map[string]string `json:"vnfdetails"`
- Vnfnics []string `json:"vnfnics"`
+ Vnfnics []*VnfNic `json:"vnfnics"`
Zoneid string `json:"zoneid"`
Zonename string `json:"zonename"`
}
diff --git a/generate/generate.go b/generate/generate.go
index c967967..23647fb 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -2009,6 +2009,20 @@ func (s *service) generateResponseType(a *API) {
pn("")
return
}
+ if a.Name == "listVnfAppliances" {
+ // The API docs do not describe the shape of the "vnfnics" field, so this
+ // type is hand maintained to mirror org.apache.cloudstack.api.response.VnfNicResponse.
+ pn("type VnfNic struct {")
+ pn(" Deviceid int64 `json:\"deviceid\"`")
+ pn(" Description string `json:\"description\"`")
+ pn(" Management bool `json:\"management\"`")
+ pn(" Name string `json:\"name\"`")
+ pn(" Networkid string `json:\"networkid\"`")
+ pn(" Networkname string `json:\"networkname\"`")
+ pn(" Required bool `json:\"required\"`")
+ pn("}")
+ pn("")
+ }
ln := capitalize(strings.TrimPrefix(a.Name, "list"))
@@ -2403,6 +2417,9 @@ func mapType(aName string, pName string, pType string) string {
if pName == "scaledownpolicies" || pName == "scaleuppolicies" {
return "[]*AutoScalePolicy"
}
+ if pName == "vnfnics" {
+ return "[]*VnfNic"
+ }
return "[]string"
case "map":
if mapRequireList[aName] != nil && mapRequireList[aName][pName] {