Skip to content

Commit e223a37

Browse files
authored
Merge pull request #1275 from bryanv/bryanv/vm-custermod-from-setrp-status
🌱 Use VMSetRP Status to determine if VM cluster module exists
2 parents e1a4ed0 + cf55d55 commit e223a37

File tree

3 files changed

+11
-34
lines changed

3 files changed

+11
-34
lines changed

pkg/providers/vsphere/vmprovider_resourcepolicy.go

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -117,29 +117,6 @@ func (vs *vSphereVMProvider) DeleteVirtualMachineSetResourcePolicy(
117117
return apierrorsutil.NewAggregate(errs)
118118
}
119119

120-
// doClusterModulesExist checks whether all the ClusterModules for the given VirtualMachineSetResourcePolicy
121-
// have been created and exist in VC for the Session's Cluster.
122-
func (vs *vSphereVMProvider) doClusterModulesExist(
123-
ctx context.Context,
124-
clusterModProvider clustermodules.Provider,
125-
clusterRef vimtypes.ManagedObjectReference,
126-
resourcePolicy *vmopv1.VirtualMachineSetResourcePolicy) (bool, error) {
127-
128-
for _, groupName := range resourcePolicy.Spec.ClusterModuleGroups {
129-
_, moduleID := clustermodules.FindClusterModuleUUID(ctx, groupName, clusterRef, resourcePolicy)
130-
if moduleID == "" {
131-
return false, nil
132-
}
133-
134-
exists, err := clusterModProvider.DoesModuleExist(ctx, moduleID, clusterRef)
135-
if !exists || err != nil {
136-
return false, err
137-
}
138-
}
139-
140-
return true, nil
141-
}
142-
143120
// createClusterModules creates all the ClusterModules that has not created yet for a
144121
// given VirtualMachineSetResourcePolicy in VC.
145122
func (vs *vSphereVMProvider) createClusterModules(

pkg/providers/vsphere/vmprovider_vm.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ func (vs *vSphereVMProvider) getCreateArgs(
674674
}
675675
}
676676

677-
if err := vs.vmCreateIsReady(vmCtx, vcClient, createArgs); err != nil {
677+
if err := vs.vmCreateIsReady(vmCtx, createArgs); err != nil {
678678
return nil, err
679679
}
680680

@@ -1936,17 +1936,18 @@ func (vs *vSphereVMProvider) vmCreateGetSourceFilePathsVerify(
19361936

19371937
func (vs *vSphereVMProvider) vmCreateIsReady(
19381938
vmCtx pkgctx.VirtualMachineContext,
1939-
vcClient *vcclient.Client,
19401939
createArgs *VMCreateArgs) error {
19411940

19421941
if policy := createArgs.ResourcePolicy; policy != nil {
1943-
// TODO: May want to do this as to filter the placement candidates.
1944-
clusterModuleProvider := clustermodules.NewProvider(vcClient.RestClient())
1945-
exists, err := vs.doClusterModulesExist(vmCtx, clusterModuleProvider, createArgs.ClusterMoRef, policy)
1946-
if err != nil {
1947-
return err
1948-
} else if !exists {
1949-
return fmt.Errorf("VirtualMachineSetResourcePolicy cluster module is not ready")
1942+
if name := vmCtx.VM.Annotations[pkgconst.ClusterModuleNameAnnotationKey]; name != "" {
1943+
_, moduleUUID := clustermodules.FindClusterModuleUUID(
1944+
vmCtx,
1945+
name,
1946+
createArgs.ClusterMoRef,
1947+
policy)
1948+
if moduleUUID == "" {
1949+
return fmt.Errorf("VirtualMachineSetResourcePolicy cluster module is not ready")
1950+
}
19501951
}
19511952
}
19521953

pkg/providers/vsphere/vmprovider_vm_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3926,8 +3926,7 @@ func vmTests() {
39263926
clusterModName := "bogusClusterMod"
39273927
vm.Annotations["vsphere-cluster-module-group"] = clusterModName
39283928
err := createOrUpdateVM(ctx, vmProvider, vm)
3929-
Expect(err).To(HaveOccurred())
3930-
Expect(err.Error()).To(ContainSubstring(fmt.Sprintf("ClusterModule %q not found", clusterModName)))
3929+
Expect(err).To(MatchError("VirtualMachineSetResourcePolicy cluster module is not ready"))
39313930
})
39323931
})
39333932

0 commit comments

Comments
 (0)