mirror of
https://github.com/openshift/installer.git
synced 2026-02-05 06:46:36 +01:00
Merge pull request #8777 from openshift-cherrypick-robot/cherry-pick-8758-to-release-4.16
[release-4.16] OCPBUGS-37606: vSphere validation fails if dc is in a folder
This commit is contained in:
@@ -214,7 +214,7 @@ func validateFailureDomains(p *vsphere.Platform, fldPath *field.Path, isLegacyUp
|
||||
}
|
||||
datacenterName := clusterPathParts[1]
|
||||
|
||||
if len(failureDomain.Topology.Datacenter) != 0 && datacenterName != failureDomain.Topology.Datacenter {
|
||||
if len(failureDomain.Topology.Datacenter) != 0 && !strings.Contains(failureDomain.Topology.Datacenter, datacenterName) {
|
||||
return append(allErrs, field.Invalid(topologyFld.Child("computeCluster"), computeCluster, fmt.Sprintf("compute cluster must be in datacenter %s", failureDomain.Topology.Datacenter)))
|
||||
}
|
||||
p.FailureDomains[index].Topology.ComputeCluster = filepath.Clean(p.FailureDomains[index].Topology.ComputeCluster)
|
||||
@@ -229,7 +229,7 @@ func validateFailureDomains(p *vsphere.Platform, fldPath *field.Path, isLegacyUp
|
||||
}
|
||||
datacenterName := resourcePoolPathParts[1]
|
||||
clusterName := resourcePoolPathParts[2]
|
||||
if len(failureDomain.Topology.Datacenter) != 0 && datacenterName != failureDomain.Topology.Datacenter {
|
||||
if len(failureDomain.Topology.Datacenter) != 0 && !strings.Contains(failureDomain.Topology.Datacenter, datacenterName) {
|
||||
return append(allErrs, field.Invalid(topologyFld.Child("resourcePool"), resourcePool, fmt.Sprintf("resource pool must be in datacenter %s", failureDomain.Topology.Datacenter)))
|
||||
}
|
||||
if len(failureDomain.Topology.ComputeCluster) != 0 && !strings.Contains(failureDomain.Topology.ComputeCluster, clusterName) {
|
||||
|
||||
@@ -2,7 +2,9 @@ package validation
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
"regexp"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -205,6 +207,30 @@ func TestValidatePlatform(t *testing.T) {
|
||||
return p
|
||||
}(),
|
||||
},
|
||||
{
|
||||
name: "Datacenter as a child of a folder",
|
||||
platform: func() *vsphere.Platform {
|
||||
p := validPlatform()
|
||||
|
||||
for i, v := range p.VCenters {
|
||||
for j, dc := range v.Datacenters {
|
||||
p.VCenters[i].Datacenters[j] = path.Join("/dcfolder", dc)
|
||||
}
|
||||
}
|
||||
|
||||
for i, fd := range p.FailureDomains {
|
||||
dcAsChild := path.Join("/dcfolder", fd.Topology.Datacenter)
|
||||
|
||||
p.FailureDomains[i].Topology.Datacenter = dcAsChild
|
||||
p.FailureDomains[i].Topology.ResourcePool = strings.ReplaceAll(fd.Topology.ResourcePool, fd.Topology.Datacenter, dcAsChild)
|
||||
p.FailureDomains[i].Topology.Folder = strings.ReplaceAll(fd.Topology.Folder, fd.Topology.Datacenter, dcAsChild)
|
||||
p.FailureDomains[i].Topology.ComputeCluster = strings.ReplaceAll(fd.Topology.ComputeCluster, fd.Topology.Datacenter, dcAsChild)
|
||||
p.FailureDomains[i].Topology.Datastore = strings.ReplaceAll(fd.Topology.Datastore, fd.Topology.Datacenter, dcAsChild)
|
||||
}
|
||||
|
||||
return p
|
||||
}(),
|
||||
},
|
||||
{
|
||||
name: "Additional invalid tag IDs provided",
|
||||
platform: func() *vsphere.Platform {
|
||||
|
||||
Reference in New Issue
Block a user