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)
}