in pkg/cloud/instance.go [74:97]
func (c *client) ResolveServiceOffering(csMachine *infrav1.CloudStackMachine) (offeringID string, retErr error) {
offeringID, count, err := c.cs.ServiceOffering.GetServiceOfferingID(csMachine.Spec.Offering)
if err != nil {
retErr = multierror.Append(retErr, errors.Wrapf(
err, "Could not get Service Offering ID from %s.", csMachine.Spec.Offering))
} else if count != 1 {
retErr = multierror.Append(retErr, errors.Errorf(
"Expected 1 Service Offering with name %s, but got %d.", csMachine.Spec.Offering, count))
}
if retErr != nil {
if _, count, err := c.cs.ServiceOffering.GetServiceOfferingByID(csMachine.Spec.Offering); err != nil {
return "", multierror.Append(retErr, errors.Wrapf(
err, "Could not get Service Offering by ID %s.", csMachine.Spec.Offering))
} else if count != 1 {
return "", multierror.Append(retErr, errors.Errorf(
"Expected 1 Service Offering with UUID %s, but got %d.", csMachine.Spec.Offering, count))
} else {
offeringID = csMachine.Spec.Offering
}
}
return offeringID, nil
}