func()

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
}