in clusterloader2/pkg/measurement/common/wait_for_controlled_pods.go [144:190]
func (w *waitForControlledPodsRunningMeasurement) Execute(config *measurement.Config) ([]measurement.Summary, error) {
w.clusterFramework = config.ClusterFramework
action, err := util.GetString(config.Params, "action")
if err != nil {
return nil, err
}
switch action {
case "start":
w.apiVersion, err = util.GetString(config.Params, "apiVersion")
if err != nil {
return nil, err
}
w.kind, err = util.GetString(config.Params, "kind")
if err != nil {
return nil, err
}
if err = w.selector.Parse(config.Params); err != nil {
return nil, err
}
w.operationTimeout, err = util.GetDurationOrDefault(config.Params, "operationTimeout", defaultOperationTimeout)
if err != nil {
return nil, err
}
w.checkIfPodsAreUpdated, err = util.GetBoolOrDefault(config.Params, "checkIfPodsAreUpdated", true)
if err != nil {
return nil, err
}
w.countErrorMargin, err = util.GetIntOrDefault(config.Params, "countErrorMargin", 0)
if err != nil {
return nil, err
}
return nil, w.start()
case "gather":
syncTimeout, err := util.GetDurationOrDefault(config.Params, "syncTimeout", defaultSyncTimeout)
if err != nil {
return nil, err
}
return nil, w.gather(syncTimeout)
case "stop":
w.Dispose()
return nil, nil
default:
return nil, fmt.Errorf("unknown action %v", action)
}
}