[VOL-3187]Pass Context down the execution call hierarchy across voltha-go codebase

Change-Id: I6bc2a0f7226c1beed4ae01a15d7b5c4dc04358d8
diff --git a/rw_core/core/kv.go b/rw_core/core/kv.go
index 53db264..34e3643 100644
--- a/rw_core/core/kv.go
+++ b/rw_core/core/kv.go
@@ -29,13 +29,13 @@
 	"google.golang.org/grpc/status"
 )
 
-func newKVClient(storeType string, address string, timeout time.Duration) (kvstore.Client, error) {
-	logger.Infow("kv-store-type", log.Fields{"store": storeType})
+func newKVClient(ctx context.Context, storeType string, address string, timeout time.Duration) (kvstore.Client, error) {
+	logger.Infow(ctx, "kv-store-type", log.Fields{"store": storeType})
 	switch storeType {
 	case "consul":
-		return kvstore.NewConsulClient(address, timeout)
+		return kvstore.NewConsulClient(ctx, address, timeout)
 	case "etcd":
-		return kvstore.NewEtcdClient(address, timeout, log.FatalLevel)
+		return kvstore.NewEtcdClient(ctx, address, timeout, log.FatalLevel)
 	}
 	return nil, errors.New("unsupported-kv-store")
 }
@@ -43,19 +43,19 @@
 func stopKVClient(ctx context.Context, kvClient kvstore.Client) {
 	// Release all reservations
 	if err := kvClient.ReleaseAllReservations(ctx); err != nil {
-		logger.Infow("fail-to-release-all-reservations", log.Fields{"error": err})
+		logger.Infow(ctx, "fail-to-release-all-reservations", log.Fields{"error": err})
 	}
 	// Close the DB connection
-	kvClient.Close()
+	kvClient.Close(ctx)
 }
 
 // waitUntilKVStoreReachableOrMaxTries will wait until it can connect to a KV store or until maxtries has been reached
 func waitUntilKVStoreReachableOrMaxTries(ctx context.Context, kvClient kvstore.Client, maxRetries int, retryInterval time.Duration) error {
-	logger.Infow("verifying-KV-store-connectivity", log.Fields{"retries": maxRetries, "retryInterval": retryInterval})
+	logger.Infow(ctx, "verifying-KV-store-connectivity", log.Fields{"retries": maxRetries, "retryInterval": retryInterval})
 	count := 0
 	for {
 		if !kvClient.IsConnectionUp(ctx) {
-			logger.Info("KV-store-unreachable")
+			logger.Info(ctx, "KV-store-unreachable")
 			if maxRetries != -1 {
 				if count >= maxRetries {
 					return status.Error(codes.Unavailable, "kv store unreachable")
@@ -70,13 +70,13 @@
 				return ctx.Err()
 			case <-time.After(retryInterval):
 			}
-			logger.Infow("retry-KV-store-connectivity", log.Fields{"retryCount": count, "maxRetries": maxRetries, "retryInterval": retryInterval})
+			logger.Infow(ctx, "retry-KV-store-connectivity", log.Fields{"retryCount": count, "maxRetries": maxRetries, "retryInterval": retryInterval})
 		} else {
 			break
 		}
 	}
 	probe.UpdateStatusFromContext(ctx, "kv-store", probe.ServiceStatusRunning)
-	logger.Info("KV-store-reachable")
+	logger.Info(ctx, "KV-store-reachable")
 	return nil
 }
 
@@ -95,12 +95,12 @@
  * start issuing UNAVAILABLE response while the probe is not ready.
  */
 func monitorKVStoreLiveness(ctx context.Context, backend *db.Backend, liveProbeInterval, notLiveProbeInterval time.Duration) {
-	logger.Info("start-monitoring-kvstore-liveness")
+	logger.Info(ctx, "start-monitoring-kvstore-liveness")
 
 	// Instruct backend to create Liveness channel for transporting state updates
-	livenessChannel := backend.EnableLivenessChannel()
+	livenessChannel := backend.EnableLivenessChannel(ctx)
 
-	logger.Debug("enabled-kvstore-liveness-channel")
+	logger.Debug(ctx, "enabled-kvstore-liveness-channel")
 
 	// Default state for kvstore is alive for rw_core
 	timeout := liveProbeInterval
@@ -110,17 +110,17 @@
 		select {
 
 		case liveness := <-livenessChannel:
-			logger.Debugw("received-liveness-change-notification", log.Fields{"liveness": liveness})
+			logger.Debugw(ctx, "received-liveness-change-notification", log.Fields{"liveness": liveness})
 
 			if !liveness {
 				probe.UpdateStatusFromContext(ctx, "kv-store", probe.ServiceStatusNotReady)
-				logger.Info("kvstore-set-server-notready")
+				logger.Info(ctx, "kvstore-set-server-notready")
 
 				timeout = notLiveProbeInterval
 
 			} else {
 				probe.UpdateStatusFromContext(ctx, "kv-store", probe.ServiceStatusRunning)
-				logger.Info("kvstore-set-server-ready")
+				logger.Info(ctx, "kvstore-set-server-ready")
 
 				timeout = liveProbeInterval
 			}
@@ -133,7 +133,7 @@
 			break loop
 
 		case <-timeoutTimer.C:
-			logger.Info("kvstore-perform-liveness-check-on-timeout")
+			logger.Info(ctx, "kvstore-perform-liveness-check-on-timeout")
 
 			// Trigger Liveness check if no liveness update received within the timeout period.
 			// The Liveness check will push Live state to same channel which this routine is