in pkg/cloud/cluster.go [25:49]
func (c *client) ResolveZone(csCluster *infrav1.CloudStackCluster) (retErr error) {
if zoneID, count, err := c.cs.Zone.GetZoneID(csCluster.Spec.Zone); err != nil {
retErr = multierror.Append(retErr, errors.Wrapf(
err, "Could not get Zone ID from %s.", csCluster.Spec.Zone))
} else if count != 1 {
retErr = multierror.Append(retErr, errors.Errorf(
"Expected 1 Zone with name %s, but got %d.", csCluster.Spec.Zone, count))
} else {
csCluster.Status.ZoneID = zoneID
}
if retErr != nil {
if _, count, err := c.cs.Zone.GetZoneByID(csCluster.Spec.Zone); err != nil {
return multierror.Append(retErr, errors.Wrapf(
err, "Could not get Zone by ID %s.", csCluster.Spec.Zone))
} else if count != 1 {
return multierror.Append(retErr, errors.Errorf(
"Expected 1 Zone with UUID %s, but got %d.", csCluster.Spec.Zone, count))
} else {
csCluster.Status.ZoneID = csCluster.Spec.Zone
}
}
return nil
}