in pkg/cloud/instance.go [99:122]
func (c *client) ResolveTemplate(csCluster *infrav1.CloudStackCluster, csMachine *infrav1.CloudStackMachine) (templateID string, retErr error) {
templateID, count, err := c.cs.Template.GetTemplateID(csMachine.Spec.Template, "all", csCluster.Status.ZoneID)
if err != nil {
retErr = multierror.Append(retErr, errors.Wrapf(
err, "Could not get Template ID from %s.", csMachine.Spec.Template))
} else if count != 1 {
retErr = multierror.Append(retErr, errors.Errorf(
"Expected 1 Template with name %s, but got %d.", csMachine.Spec.Template, count))
}
if retErr != nil {
if _, count, err := c.cs.Template.GetTemplateByID(csMachine.Spec.Template, "all"); err != nil {
return "", multierror.Append(retErr, errors.Wrapf(
err, "Could not get Template by ID %s.", csMachine.Spec.Template))
} else if count != 1 {
return "", multierror.Append(retErr, errors.Errorf(
"Expected 1 Template with UUID %s, but got %d.", csMachine.Spec.Template, count))
} else {
templateID = csMachine.Spec.Template
}
}
return templateID, nil
}