func()

in clusterloader2/pkg/measurement/common/wait_for_generic_k8s_object.go [53:102]


func (w *waitForGenericK8sObjectsMeasurement) Execute(config *measurement.Config) ([]measurement.Summary, error) {
	groupVersionResource, err := getGroupVersionResource(config.Params)
	if err != nil {
		return nil, err
	}
	namespaces, err := getNamespaces(config.ClusterFramework.GetAutomanagedNamespacePrefix(), config.Params)
	if err != nil {
		return nil, err
	}
	timeout, err := util.GetDurationOrDefault(config.Params, "timeout", defaultWaitForGenericK8sObjectsTimeout)
	if err != nil {
		return nil, err
	}
	refreshInterval, err := util.GetDurationOrDefault(config.Params, "refreshInterval", defaultWaitForGenericK8sObjectsInterval)
	if err != nil {
		return nil, err
	}
	successfulConditions, err := util.GetStringArray(config.Params, "successfulConditions")
	if err != nil {
		return nil, err
	}
	failedConditions, err := util.GetStringArray(config.Params, "failedConditions")
	if err != nil {
		return nil, err
	}
	minDesiredObjectCount, err := util.GetInt(config.Params, "minDesiredObjectCount")
	if err != nil {
		return nil, err
	}
	maxFailedObjectCount, err := util.GetInt(config.Params, "maxFailedObjectCount")
	if err != nil {
		return nil, err
	}

	dynamicClient := config.ClusterFramework.GetDynamicClients().GetClient()
	ctx, cancel := context.WithTimeout(context.TODO(), timeout)
	defer cancel()

	options := &measurementutil.WaitForGenericK8sObjectsOptions{
		GroupVersionResource:  groupVersionResource,
		Namespaces:            namespaces,
		SuccessfulConditions:  successfulConditions,
		FailedConditions:      failedConditions,
		MinDesiredObjectCount: minDesiredObjectCount,
		MaxFailedObjectCount:  maxFailedObjectCount,
		CallerName:            w.String(),
		WaitInterval:          refreshInterval,
	}
	return nil, measurementutil.WaitForGenericK8sObjects(ctx, dynamicClient, options)
}