added fetcher test cases (#2893)

* added fetcher test cases

* error message formatting fix

* error message formatting fix for e2e framework
This commit is contained in:
Vardhaman Surana
2023-12-21 17:02:39 +05:30
committed by GitHub
parent 29b0cf24ac
commit 12f8017d9b
9 changed files with 679 additions and 42 deletions
+4 -4
View File
@@ -34,7 +34,7 @@ type Framework struct {
func NewWebhookOptions() (*envtest.WebhookInstallOptions, error) {
webhookPort, err := utils.FindFreePort()
if err != nil {
return nil, fmt.Errorf("error finding unused port: %v", err)
return nil, fmt.Errorf("error finding unused port: %w", err)
}
_, filename, _, _ := runtime.Caller(0) //nolint
root := filepath.Dir(filename)
@@ -46,7 +46,7 @@ func NewWebhookOptions() (*envtest.WebhookInstallOptions, error) {
}
err = options.PrepWithoutInstalling()
if err != nil {
return nil, fmt.Errorf("error preparing webhook install options: %v", err)
return nil, fmt.Errorf("error preparing webhook install options: %w", err)
}
return options, nil
}
@@ -83,7 +83,7 @@ func (f *Framework) Start(ctx context.Context) error {
var err error
f.config, err = f.env.Start()
if err != nil {
return fmt.Errorf("error starting test env: %v", err)
return fmt.Errorf("error starting test env: %w", err)
}
return nil
}
@@ -91,7 +91,7 @@ func (f *Framework) Start(ctx context.Context) error {
func (f *Framework) ToggleMetricAddr() error {
port, err := utils.FindFreePort()
if err != nil {
return fmt.Errorf("error finding unused port: %v", err)
return fmt.Errorf("error finding unused port: %w", err)
}
os.Setenv("METRICS_ADDR", fmt.Sprint(port))
return nil
+46 -31
View File
@@ -28,7 +28,7 @@ func StartServices(ctx context.Context, f *framework.Framework, mgr manager.Inte
webhookPort := env.WebhookInstallOptions.LocalServingPort
err := f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error toggling metric address: %v", err)
return fmt.Errorf("error toggling metric address: %w", err)
}
mgr.Add(ctx, func(ctx context.Context) {
err = webhook.Start(ctx, f.ClientGen(), f.Logger(), cnwebhook.Options{
@@ -43,11 +43,11 @@ func StartServices(ctx context.Context, f *framework.Framework, mgr manager.Inte
executorPort, err := utils.FindFreePort()
if err != nil {
return fmt.Errorf("error finding unused port: %v", err)
return fmt.Errorf("error finding unused port: %w", err)
}
err = f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error toggling metric address: %v", err)
return fmt.Errorf("error toggling metric address: %w", err)
}
// namespace settings for components
@@ -63,42 +63,31 @@ func StartServices(ctx context.Context, f *framework.Framework, mgr manager.Inte
os.Setenv("POD_READY_TIMEOUT", "300s")
err = executor.StartExecutor(ctx, f.ClientGen(), f.Logger(), mgr, executorPort)
if err != nil {
return fmt.Errorf("error starting executor: %v", err)
return fmt.Errorf("error starting executor: %w", err)
}
f.AddServiceInfo("executor", framework.ServiceInfo{Port: executorPort})
os.Setenv("PRUNE_ENABLED", "true")
os.Setenv("PRUNE_INTERVAL", "60")
storageDir, err := os.MkdirTemp("/tmp", "storagesvc")
err = f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error creating temp directory: %v", err)
return fmt.Errorf("error toggling metric address: %w", err)
}
storageSvcPort, err := utils.FindFreePort()
if err != nil {
return fmt.Errorf("error finding unused port: %v", err)
}
err = f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error toggling metric address: %v", err)
return fmt.Errorf("error toggling metric address: %w", err)
}
err = storagesvc.Start(ctx, f.ClientGen(), f.Logger(), storagesvc.NewLocalStorage(storageDir), mgr, storageSvcPort)
storageSvcPort, err := StartStorageSvc(ctx, f, mgr)
if err != nil {
return fmt.Errorf("error starting storage service: %v", err)
}
f.AddServiceInfo("storagesvc", framework.ServiceInfo{Port: storageSvcPort})
storagesvcURL, err := f.GetServiceURL("storagesvc")
if err != nil {
return fmt.Errorf("error getting storage service URL: %v", err)
}
os.Setenv("FISSION_STORAGESVC_URL", storagesvcURL)
err = f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error toggling metric address: %v", err)
return err
}
err = buildermgr.Start(ctx, f.ClientGen(), f.Logger(), mgr, fmt.Sprintf("http://localhost:%d", storageSvcPort))
if err != nil {
return fmt.Errorf("error starting builder manager: %v", err)
return fmt.Errorf("error starting builder manager: %w", err)
}
f.AddServiceInfo("buildermgr", framework.ServiceInfo{})
@@ -115,41 +104,67 @@ func StartServices(ctx context.Context, f *framework.Framework, mgr manager.Inte
// os.Setenv("DEBUG_ENV", "false")
routerPort, err := utils.FindFreePort()
if err != nil {
return fmt.Errorf("error finding unused port: %v", err)
return fmt.Errorf("error finding unused port: %w", err)
}
err = f.ToggleMetricAddr()
if err != nil {
return fmt.Errorf("error toggling metric address: %v", err)
return fmt.Errorf("error toggling metric address: %w", err)
}
executor := eclient.MakeClient(f.Logger(), fmt.Sprintf("http://localhost:%d", executorPort))
err = router.Start(ctx, f.ClientGen(), f.Logger(), mgr, routerPort, executor)
if err != nil {
return fmt.Errorf("error starting router: %v", err)
return fmt.Errorf("error starting router: %w", err)
}
f.AddServiceInfo("router", framework.ServiceInfo{Port: routerPort})
routerURL, err := f.GetServiceURL("router")
if err != nil {
return fmt.Errorf("error getting router URL: %v", err)
return fmt.Errorf("error getting router URL: %w", err)
}
os.Setenv("FISSION_ROUTER_URL", routerURL)
err = timer.Start(ctx, f.ClientGen(), f.Logger(), mgr, routerURL)
if err != nil {
return fmt.Errorf("error starting timer: %v", err)
return fmt.Errorf("error starting timer: %w", err)
}
f.AddServiceInfo("timer", framework.ServiceInfo{})
err = mqtrigger.StartScalerManager(ctx, f.ClientGen(), f.Logger(), mgr, routerURL)
if err != nil {
return fmt.Errorf("error starting mqt scaler manager: %v", err)
return fmt.Errorf("error starting mqt scaler manager: %w", err)
}
f.AddServiceInfo("mqtrigger-keda", framework.ServiceInfo{})
err = kubewatcher.Start(ctx, f.ClientGen(), f.Logger(), mgr, routerURL)
if err != nil {
return fmt.Errorf("error starting kubewatcher: %v", err)
return fmt.Errorf("error starting kubewatcher: %w", err)
}
f.AddServiceInfo("kubewatcher", framework.ServiceInfo{})
return nil
}
func StartStorageSvc(ctx context.Context, f *framework.Framework, mgr manager.Interface) (storageSvcPort int, err error) {
storageDir, err := os.MkdirTemp("/tmp", "storagesvc")
if err != nil {
return 0, fmt.Errorf("error creating temp directory: %w", err)
}
storageSvcPort, err = utils.FindFreePort()
if err != nil {
return storageSvcPort, fmt.Errorf("error finding unused port: %w", err)
}
err = storagesvc.Start(ctx, f.ClientGen(), f.Logger(), storagesvc.NewLocalStorage(storageDir), mgr, storageSvcPort)
if err != nil {
return storageSvcPort, fmt.Errorf("error starting storage service: %w", err)
}
f.AddServiceInfo("storagesvc", framework.ServiceInfo{Port: storageSvcPort})
storagesvcURL, err := f.GetServiceURL("storagesvc")
if err != nil {
return storageSvcPort, fmt.Errorf("error getting storage service URL: %w", err)
}
os.Setenv("FISSION_STORAGESVC_URL", storagesvcURL)
return storageSvcPort, nil
}