From eb8d42b1fcef49a4bd5cc82dbff7e376f0919786 Mon Sep 17 00:00:00 2001 From: Divyansh Kamboj Date: Mon, 31 Jan 2022 11:12:39 +0530 Subject: [PATCH] core: Add context parameter for updating device configmap This commit adds context parameter to the updateDeviceCM() function and other top level calling functions. This will allow us to handle cancellations while talking to the k8s API. Closes: https://github.com/rook/rook/issues/8701 Signed-off-by: Divyansh Kamboj --- cmd/rook/discover.go | 3 ++- pkg/daemon/discover/discover.go | 11 +++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd/rook/discover.go b/cmd/rook/discover.go index 468515a46b187..d33eeb658a979 100644 --- a/cmd/rook/discover.go +++ b/cmd/rook/discover.go @@ -51,8 +51,9 @@ func startDiscover(cmd *cobra.Command, args []string) error { rook.LogStartupInfo(discoverCmd.Flags()) context := rook.NewContext() + ctx := cmd.Context() - err := discover.Run(context, discoverDevicesInterval, usesCVInventory) + err := discover.Run(ctx, context, discoverDevicesInterval, usesCVInventory) if err != nil { rook.TerminateFatal(err) } diff --git a/pkg/daemon/discover/discover.go b/pkg/daemon/discover/discover.go index 099a307f884e0..7fd2ee8212c5d 100644 --- a/pkg/daemon/discover/discover.go +++ b/pkg/daemon/discover/discover.go @@ -74,7 +74,7 @@ type CephVolumeInventory struct { } // Run is the entry point of that package execution -func Run(context *clusterd.Context, probeInterval time.Duration, useCV bool) error { +func Run(ctx context.Context, context *clusterd.Context, probeInterval time.Duration, useCV bool) error { if context == nil { return fmt.Errorf("nil context") } @@ -87,7 +87,7 @@ func Run(context *clusterd.Context, probeInterval time.Duration, useCV bool) err sigc := make(chan os.Signal, 1) signal.Notify(sigc, syscall.SIGTERM) - err := updateDeviceCM(context) + err := updateDeviceCM(ctx, context) if err != nil { logger.Infof("failed to update device configmap: %v", err) return err @@ -101,13 +101,13 @@ func Run(context *clusterd.Context, probeInterval time.Duration, useCV bool) err logger.Infof("shutdown signal received, exiting...") return nil case <-time.After(probeInterval): - if err := updateDeviceCM(context); err != nil { + if err := updateDeviceCM(ctx, context); err != nil { logger.Errorf("failed to update device configmap during probe interval. %v", err) } case _, ok := <-udevEvents: if ok { logger.Info("trigger probe from udev event") - if err := updateDeviceCM(context); err != nil { + if err := updateDeviceCM(ctx, context); err != nil { logger.Errorf("failed to update device configmap triggered from udev event. %v", err) } } else { @@ -323,8 +323,7 @@ func DeviceListsEqual(old, new string) (bool, error) { return checkDeviceListsEqual(oldDevs, newDevs), nil } -func updateDeviceCM(clusterdContext *clusterd.Context) error { - ctx := context.TODO() +func updateDeviceCM(ctx context.Context, clusterdContext *clusterd.Context) error { logger.Infof("updating device configmap") devices, err := probeDevices(clusterdContext) if err != nil {