func fillVacateClusterParams()

in pkg/api/platformapi/allocatorapi/vacate.go [343:382]


func fillVacateClusterParams(params *VacateClusterParams) (*VacateClusterParams, error) {
	if params == nil {
		return nil, errors.New("allocator vacate: params cannot be nil")
	}

	if err := params.Validate(); err != nil {
		return nil, multierror.NewPrefixed(fmt.Sprintf(
			"allocator %s: resource id [%s][%s]",
			params.ID, params.ClusterID, params.Kind), err,
		)
	}

	if params.AllocatorDown == nil {
		alloc, err := Get(
			GetParams{API: params.API, ID: params.ID, Region: params.Region},
		)
		if err != nil {
			return nil, VacateError{
				AllocatorID: params.ID,
				ResourceID:  params.ClusterID,
				Kind:        params.Kind,
				Ctx:         "allocator health autodiscovery",
				Err:         err,
			}
		}
		if alloc.Status != nil {
			params.AllocatorDown = ec.Bool(!*alloc.Status.Connected || !*alloc.Status.Healthy)
		}
	}

	if params.MaxPollRetries == 0 {
		params.MaxPollRetries = util.DefaultRetries
	}

	if params.TrackFrequency.Nanoseconds() == 0 {
		params.TrackFrequency = util.DefaultPollFrequency
	}

	return params, nil
}