func()

in pkg/custompluginmonitor/types/config.go [75:123]


func (cpc *CustomPluginConfig) ApplyConfiguration() error {
	if cpc.PluginGlobalConfig.TimeoutString == nil {
		cpc.PluginGlobalConfig.TimeoutString = &defaultGlobalTimeoutString
	}

	timeout, err := time.ParseDuration(*cpc.PluginGlobalConfig.TimeoutString)
	if err != nil {
		return fmt.Errorf("error in parsing global timeout %q: %v", *cpc.PluginGlobalConfig.TimeoutString, err)
	}

	cpc.PluginGlobalConfig.Timeout = &timeout

	if cpc.PluginGlobalConfig.InvokeIntervalString == nil {
		cpc.PluginGlobalConfig.InvokeIntervalString = &defaultInvokeIntervalString
	}

	invokeInterval, err := time.ParseDuration(*cpc.PluginGlobalConfig.InvokeIntervalString)
	if err != nil {
		return fmt.Errorf("error in parsing invoke interval %q: %v", *cpc.PluginGlobalConfig.InvokeIntervalString, err)
	}

	cpc.PluginGlobalConfig.InvokeInterval = &invokeInterval

	if cpc.PluginGlobalConfig.MaxOutputLength == nil {
		cpc.PluginGlobalConfig.MaxOutputLength = &defaultMaxOutputLength
	}
	if cpc.PluginGlobalConfig.Concurrency == nil {
		cpc.PluginGlobalConfig.Concurrency = &defaultConcurrency
	}
	if cpc.PluginGlobalConfig.EnableMessageChangeBasedConditionUpdate == nil {
		cpc.PluginGlobalConfig.EnableMessageChangeBasedConditionUpdate = &defaultMessageChangeBasedConditionUpdate
	}

	for _, rule := range cpc.Rules {
		if rule.TimeoutString != nil {
			timeout, err := time.ParseDuration(*rule.TimeoutString)
			if err != nil {
				return fmt.Errorf("error in parsing rule timeout %+v: %v", rule, err)
			}
			rule.Timeout = &timeout
		}
	}

	if cpc.EnableMetricsReporting == nil {
		cpc.EnableMetricsReporting = &defaultEnableMetricsReporting
	}

	return nil
}