[VOL-5514] Add timeout for OLT gRPC requests

Signed-off-by: bseeniva <balaji.seenivasan@radisys.com>
Change-Id: I56bab809e9b67effc6f6d4c6ef32889a7a2c128d
diff --git a/internal/pkg/core/openolt_groupmgr.go b/internal/pkg/core/openolt_groupmgr.go
index 6da8475..f2456ac 100644
--- a/internal/pkg/core/openolt_groupmgr.go
+++ b/internal/pkg/core/openolt_groupmgr.go
@@ -71,7 +71,9 @@
 		Action:  g.buildGroupAction(),
 	}
 	logger.Debugw(ctx, "sending-group-to-device", log.Fields{"groupToOlt": groupToOlt})
-	_, err := g.deviceHandler.Client.PerformGroupOperation(ctx, &groupToOlt)
+	subCtx, cancel := context.WithTimeout(log.WithSpanFromContext(context.Background(), ctx), g.deviceHandler.cfg.RPCTimeout)
+	_, err := g.deviceHandler.Client.PerformGroupOperation(subCtx, &groupToOlt)
+	cancel()
 	if err != nil {
 		return olterrors.NewErrAdapter("add-group-operation-failed", log.Fields{"groupToOlt": groupToOlt}, err)
 	}
@@ -94,7 +96,9 @@
 		GroupId: group.Desc.GroupId,
 	}
 	logger.Debugw(ctx, "deleting-group-from-device", log.Fields{"groupToOlt": groupToOlt})
-	_, err := g.deviceHandler.Client.DeleteGroup(ctx, &groupToOlt)
+	subCtx, cancel := context.WithTimeout(log.WithSpanFromContext(context.Background(), ctx), g.deviceHandler.cfg.RPCTimeout)
+	_, err := g.deviceHandler.Client.DeleteGroup(subCtx, &groupToOlt)
+	cancel()
 	if err != nil {
 		logger.Errorw(ctx, "delete-group-failed-on-dev", log.Fields{"groupToOlt": groupToOlt, "err": err})
 		return olterrors.NewErrAdapter("delete-group-operation-failed", log.Fields{"groupToOlt": groupToOlt}, err)
@@ -297,7 +301,9 @@
 		log.Fields{
 			"groupToOlt": group,
 			"command":    group.Command})
-	_, err := g.deviceHandler.Client.PerformGroupOperation(log.WithSpanFromContext(context.Background(), ctx), group)
+	subCtx, cancel := context.WithTimeout(log.WithSpanFromContext(context.Background(), ctx), g.deviceHandler.cfg.RPCTimeout)
+	_, err := g.deviceHandler.Client.PerformGroupOperation(subCtx, group)
+	cancel()
 	if err != nil {
 		return olterrors.NewErrAdapter("group-operation-failed", log.Fields{"groupToOlt": group}, err)
 	}