in pkg/common/config/config_ini_legacy.go [116:233]
func (cci *CommonConfigINI) validateConfig() error {
//Fix default global values
if cci.Global.RoundTripperCount == 0 {
cci.Global.RoundTripperCount = DefaultRoundTripperCount
}
if cci.Global.VCenterPort == "" {
cci.Global.VCenterPort = DefaultVCenterPortStr
}
if cci.Global.APIBinding == "" {
cci.Global.APIBinding = DefaultAPIBinding
}
if cci.Global.IPFamily == "" {
cci.Global.IPFamily = DefaultIPFamily
}
// Create a single instance of VSphereInstance for the Global VCenterIP if the
// VirtualCenter does not already exist in the map
if cci.Global.VCenterIP != "" && cci.VirtualCenter[cci.Global.VCenterIP] == nil {
cci.VirtualCenter[cci.Global.VCenterIP] = &VirtualCenterConfigINI{
User: cci.Global.User,
Password: cci.Global.Password,
TenantRef: cci.Global.VCenterIP,
VCenterIP: cci.Global.VCenterIP,
VCenterPort: cci.Global.VCenterPort,
InsecureFlag: cci.Global.InsecureFlag,
Datacenters: cci.Global.Datacenters,
RoundTripperCount: cci.Global.RoundTripperCount,
CAFile: cci.Global.CAFile,
Thumbprint: cci.Global.Thumbprint,
SecretRef: DefaultCredentialManager,
SecretName: cci.Global.SecretName,
SecretNamespace: cci.Global.SecretNamespace,
IPFamily: cci.Global.IPFamily,
}
}
// Must have at least one vCenter defined
if len(cci.VirtualCenter) == 0 {
klog.Error(ErrMissingVCenter)
return ErrMissingVCenter
}
// vsphere.conf is no longer supported in the old format.
for vcServer, vcConfig := range cci.VirtualCenter {
klog.V(4).Infof("Initializing vc server %s", vcServer)
if vcServer == "" {
klog.Error(ErrInvalidVCenterIP)
return ErrInvalidVCenterIP
}
// If vcConfig.VCenterIP is explicitly set, that means the vcServer
// above is the TenantRef
if vcConfig.VCenterIP != "" {
//vcConfig.VCenterIP is already set
vcConfig.TenantRef = vcServer
} else {
vcConfig.VCenterIP = vcServer
vcConfig.TenantRef = vcServer
}
if !cci.isSecretInfoProvided() && !vcConfig.isSecretInfoProvided() {
if vcConfig.User == "" {
vcConfig.User = cci.Global.User
if vcConfig.User == "" {
klog.Errorf("vcConfig.User is empty for vc %s!", vcServer)
return ErrUsernameMissing
}
}
if vcConfig.Password == "" {
vcConfig.Password = cci.Global.Password
if vcConfig.Password == "" {
klog.Errorf("vcConfig.Password is empty for vc %s!", vcServer)
return ErrPasswordMissing
}
}
} else if cci.isSecretInfoProvided() && !vcConfig.isSecretInfoProvided() {
vcConfig.SecretRef = DefaultCredentialManager
} else if vcConfig.isSecretInfoProvided() {
vcConfig.SecretRef = vcConfig.SecretNamespace + "/" + vcConfig.SecretName
}
if vcConfig.VCenterPort == "" {
vcConfig.VCenterPort = cci.Global.VCenterPort
}
if vcConfig.Datacenters == "" {
if cci.Global.Datacenters != "" {
vcConfig.Datacenters = cci.Global.Datacenters
}
}
if vcConfig.RoundTripperCount == 0 {
vcConfig.RoundTripperCount = cci.Global.RoundTripperCount
}
if vcConfig.CAFile == "" {
vcConfig.CAFile = cci.Global.CAFile
}
if vcConfig.Thumbprint == "" {
vcConfig.Thumbprint = cci.Global.Thumbprint
}
if vcConfig.IPFamily == "" {
vcConfig.IPFamily = cci.Global.IPFamily
}
err := vcConfig.validateIPFamily()
if err != nil {
klog.Errorf("Invalid vcConfig IPFamily: %s, err=%s", vcConfig.IPFamily, err)
return err
}
insecure := vcConfig.InsecureFlag
if !insecure {
vcConfig.InsecureFlag = cci.Global.InsecureFlag
}
}
return nil
}