Skip to content

Commit 08d748a

Browse files
authored
bump up govmomi to get the vappconfig fix (#1481)
Added a test to test vapp config props Fixed tests due to govmomi changes. Since govmomi is bumped up, few tests failed. Fixed them.
1 parent 15757ba commit 08d748a

File tree

7 files changed

+67
-43
lines changed

7 files changed

+67
-43
lines changed

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ require (
4949
github.com/vmware-tanzu/image-registry-operator-api v0.0.0-20250624211456-dfc90459c658
5050
github.com/vmware-tanzu/net-operator-api v0.0.0-20250826165015-90a4bb21727b
5151
github.com/vmware-tanzu/nsx-operator/pkg/apis v0.0.0-20250813103855-288a237381b5
52-
github.com/vmware/govmomi v0.53.0-alpha.0.0.20251203154250-bac7c15eb77d
52+
github.com/vmware/govmomi v0.53.0-alpha.0.0.20260224020847-a8ff1b195e9a
5353
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56
54-
golang.org/x/net v0.46.0 // indirect
54+
golang.org/x/net v0.49.0 // indirect
5555
// * https://github.com/vmware-tanzu/vm-operator/security/dependabot/24
56-
golang.org/x/text v0.31.0
57-
golang.org/x/tools v0.38.0
56+
golang.org/x/text v0.34.0
57+
golang.org/x/tools v0.41.0
5858
k8s.io/api v0.34.1
5959
k8s.io/apiextensions-apiserver v0.34.1
6060
k8s.io/apimachinery v0.34.1
@@ -107,9 +107,9 @@ require (
107107
go.yaml.in/yaml/v2 v2.4.2 // indirect
108108
go.yaml.in/yaml/v3 v3.0.4 // indirect
109109
golang.org/x/oauth2 v0.27.0 // indirect
110-
golang.org/x/sync v0.18.0 // indirect
111-
golang.org/x/sys v0.37.0 // indirect
112-
golang.org/x/term v0.36.0 // indirect
110+
golang.org/x/sync v0.19.0 // indirect
111+
golang.org/x/sys v0.40.0 // indirect
112+
golang.org/x/term v0.39.0 // indirect
113113
golang.org/x/time v0.9.0 // indirect
114114
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
115115
google.golang.org/protobuf v1.36.5 // indirect

go.sum

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ github.com/vmware-tanzu/net-operator-api v0.0.0-20250826165015-90a4bb21727b h1:4
124124
github.com/vmware-tanzu/net-operator-api v0.0.0-20250826165015-90a4bb21727b/go.mod h1:w6QJGm3crIA16ZIz1FVQXD2NVeJhOgGXxW05RbVTSTo=
125125
github.com/vmware-tanzu/nsx-operator/pkg/apis v0.0.0-20250813103855-288a237381b5 h1:OUPe+BjC/XWqHRWYHDCtTa/lZpEz6U8YmZcZi1Rp5BU=
126126
github.com/vmware-tanzu/nsx-operator/pkg/apis v0.0.0-20250813103855-288a237381b5/go.mod h1:Q4JzNkNMvjo7pXtlB5/R3oME4Nhah7fAObWgghVmtxk=
127-
github.com/vmware/govmomi v0.53.0-alpha.0.0.20251203154250-bac7c15eb77d h1:IbNSLmeuhDT8TgQErC2p7mQB29hGTahMbe7MAGOY6l4=
128-
github.com/vmware/govmomi v0.53.0-alpha.0.0.20251203154250-bac7c15eb77d/go.mod h1:FM3GTg002dFFN7l2/hNS0YWC4f78HTw4kvgUwAE52cM=
127+
github.com/vmware/govmomi v0.53.0-alpha.0.0.20260224020847-a8ff1b195e9a h1:MDo/DaPrRTDwPyKdOkS57gYSGadksEhvGcBXFdWQlak=
128+
github.com/vmware/govmomi v0.53.0-alpha.0.0.20260224020847-a8ff1b195e9a/go.mod h1:EWfuzPfxT5NV+aS2we02SLFdhvJkgeY7t7+TszgBSMY=
129129
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
130130
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
131131
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -157,34 +157,34 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
157157
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
158158
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
159159
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
160-
golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
161-
golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
160+
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
161+
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
162162
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
163163
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
164164
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
165165
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
166166
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
167-
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
168-
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
167+
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
168+
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
169169
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
170170
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
171171
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
172-
golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
173-
golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
174-
golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
175-
golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
172+
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
173+
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
174+
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
175+
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
176176
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
177177
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
178-
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
179-
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
178+
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
179+
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
180180
golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
181181
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
182182
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
183183
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
184184
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
185185
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
186-
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
187-
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
186+
golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
187+
golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
188188
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
189189
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
190190
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

pkg/providers/vsphere/vmprovider_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,18 @@ virtualSystem:
464464
id: 36
465465
info: The kind of installed guest operating system
466466
osType: otherLinuxGuest
467+
productSection:
468+
- info: Product info
469+
property:
470+
- id: is_replace
471+
label: Is Replacement
472+
type: boolean
473+
userConfigurable: true
474+
default: "false"
475+
- id: nsx_hostname
476+
label: Hostname
477+
type: string
478+
userConfigurable: true
467479
virtualHardwareSection:
468480
- config:
469481
- key: firmware

pkg/providers/vsphere/vmprovider_vm_test.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1960,7 +1960,7 @@ func vmTests() {
19601960
Expect(vcVM.Properties(
19611961
ctx,
19621962
vcVM.Reference(),
1963-
[]string{"config.extraConfig"},
1963+
[]string{"config.extraConfig", "config.vAppConfig"},
19641964
&moVM)).To(Succeed())
19651965
ec := object.OptionValueList(moVM.Config.ExtraConfig)
19661966
v1, _ := ec.GetString("hello")
@@ -1969,6 +1969,18 @@ func vmTests() {
19691969
Expect(v2).To(Equal("bar"))
19701970
v3, _ := ec.GetString(pkgconst.VMProvKeepDisksExtraConfigKey)
19711971
Expect(v3).To(Equal(path.Base(ctx.ContentLibraryItemDiskPath)))
1972+
1973+
// Check vAppConfig is not present in the CreateVM ConfigSpec
1974+
Expect(moVM.Config.VAppConfig).ToNot(BeNil())
1975+
Expect(moVM.Config.VAppConfig.GetVmConfigInfo()).ToNot(BeNil())
1976+
props := moVM.Config.VAppConfig.GetVmConfigInfo().Property
1977+
Expect(props).To(HaveLen(2))
1978+
// VCSim does not behave as real VC.
1979+
// Ids are not returned. So, checking labels.
1980+
Expect(props[0].Label).To(Equal("Is Replacement"))
1981+
Expect(props[0].DefaultValue).To(Equal("False"))
1982+
Expect(props[1].Label).To(Equal("Hostname"))
1983+
Expect(props[1].Value).To(Equal(""))
19721984
})
19731985

19741986
When("global default is direct mode", func() {

pkg/providers/vsphere/vmprovider_vm_unmanaged_volumes_test.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ func unmanagedVolumesTests() {
5555
vmProvider providers.VirtualMachineProviderInterface
5656
nsInfo builder.WorkloadNamespaceInfo
5757

58-
mockProfileResults []pbmtypes.PbmQueryProfileResult
59-
6058
vm *vmopv1.VirtualMachine
6159
vmClass *vmopv1.VirtualMachineClass
6260
)
@@ -109,29 +107,31 @@ func unmanagedVolumesTests() {
109107
}
110108
initObjects = append(initObjects, storageClass)
111109

112-
// Update profile results to include the new disk
113-
mockProfileResults = append(mockProfileResults,
114-
pbmtypes.PbmQueryProfileResult{
115-
Object: pbmtypes.PbmServerObjectRef{
116-
Key: "vm-108:203",
117-
},
118-
ProfileId: []pbmtypes.PbmProfileId{
119-
{
120-
UniqueId: ctx.StorageProfileID,
121-
},
122-
},
123-
},
124-
)
125-
126-
// Mock PBM service
110+
// Mock PBM service: return the storage profile for every queried disk key.
111+
// The mock echoes back the queried keys so it is not sensitive to
112+
// vcsim-internal device key values, which can change across govmomi
113+
// versions.
127114
ctx.SimulatorContext().For("/pbm").Map.Handler = func(
128115
simCtx *simulator.Context,
129116
m *simulator.Method) (mo.Reference, vimtypes.BaseMethodFault) {
130117

131118
if m.Name == "PbmQueryAssociatedProfiles" {
119+
req, ok := m.Body.(*pbmtypes.PbmQueryAssociatedProfiles)
120+
if !ok {
121+
return nil, nil
122+
}
123+
var results []pbmtypes.PbmQueryProfileResult
124+
for _, ref := range req.Entities {
125+
results = append(results, pbmtypes.PbmQueryProfileResult{
126+
Object: ref,
127+
ProfileId: []pbmtypes.PbmProfileId{
128+
{UniqueId: ctx.StorageProfileID},
129+
},
130+
})
131+
}
132132
return &fakeProfileManager{
133133
ProfileManager: &pbmsim.ProfileManager{},
134-
Result: mockProfileResults,
134+
Result: results,
135135
}, nil
136136
}
137137

@@ -165,7 +165,6 @@ func unmanagedVolumesTests() {
165165
initObjects = nil
166166
vmProvider = nil
167167
nsInfo = builder.WorkloadNamespaceInfo{}
168-
mockProfileResults = nil
169168
})
170169

171170
When("VM has unmanaged disks from vSphere", func() {

pkg/util/configspec_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,7 @@ var virtualMachineConfigInfoForTests vimtypes.VirtualMachineConfigInfo = vimtype
658658
Type: "Datastore",
659659
Value: "datastore-21",
660660
},
661+
BackingObjectId: ptr.To(""),
661662
},
662663
DiskMode: "persistent",
663664
Split: addrOfBool(false),

pkg/util/volumes/volumes_util_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ var _ = Describe("GetVolumeInfoFromVM", func() {
427427
Backing: &vimtypes.VirtualDiskSeSparseBackingInfo{
428428
VirtualDeviceFileBackingInfo: vimtypes.VirtualDeviceFileBackingInfo{
429429
FileName: "[LocalDS_0] vm1/disk-child.vmdk",
430-
BackingObjectId: "parent-disk-id",
430+
BackingObjectId: ptr.To("parent-disk-id"),
431431
},
432432
Uuid: "disk-uuid-child",
433433
Parent: &vimtypes.VirtualDiskSeSparseBackingInfo{ // Indicates it has a parent
@@ -469,7 +469,7 @@ var _ = Describe("GetVolumeInfoFromVM", func() {
469469
Backing: &vimtypes.VirtualDiskSeSparseBackingInfo{
470470
VirtualDeviceFileBackingInfo: vimtypes.VirtualDeviceFileBackingInfo{
471471
FileName: "[LocalDS_0] vm1/disk-child.vmdk",
472-
BackingObjectId: "parent-disk-id",
472+
BackingObjectId: ptr.To("parent-disk-id"),
473473
},
474474
Uuid: "disk-uuid-child",
475475
Parent: &vimtypes.VirtualDiskSeSparseBackingInfo{ // Indicates it has a parent

0 commit comments

Comments
 (0)