From b1ce2afbf9b7dceda6446ab7420f53aff87bff74 Mon Sep 17 00:00:00 2001
From: Fabian Seidl <fabian.b.seidl@stud.h-da.de>
Date: Fri, 8 Jul 2022 09:40:01 +0200
Subject: [PATCH] updated cli description, prepared sub response handling,
 removed test case for now

---
 cli/cmd/deviceSubscribe.go                    |  6 ++--
 controller/nucleus/deviceWatcher.go           |  8 ++++-
 .../nucleus/principalNetworkDomain_test.go    | 33 ++++++++++---------
 3 files changed, 27 insertions(+), 20 deletions(-)

diff --git a/cli/cmd/deviceSubscribe.go b/cli/cmd/deviceSubscribe.go
index dbe2e5c9e..e3718790b 100644
--- a/cli/cmd/deviceSubscribe.go
+++ b/cli/cmd/deviceSubscribe.go
@@ -45,9 +45,9 @@ import (
 var deviceSubscribeCmd = &cobra.Command{
 	Use:   "subscribe [uuid] [path]",
 	Args:  cobra.ExactArgs(2),
-	Short: "do",
-	Long: `Requests a path from a specified orchestrated network device on the controller.
-The device UUID and request path must be specified as a positional arguments.`,
+	Short: "Subscribes to paths of a provided device with fixed subscribe options",
+	Long: `Requests a subscription on paths from a specified orchestrated network device on the controller.
+The device UUID and requested paths must be specified as a positional arguments.`,
 
 	RunE: func(cmd *cobra.Command, args []string) error {
 		did, err := uuid.Parse(args[0])
diff --git a/controller/nucleus/deviceWatcher.go b/controller/nucleus/deviceWatcher.go
index 1cafc7f85..86e81713f 100644
--- a/controller/nucleus/deviceWatcher.go
+++ b/controller/nucleus/deviceWatcher.go
@@ -90,7 +90,13 @@ func handleSubscribeResponse(resp *gpb.SubscribeResponse, pndID, deviceID, devic
 			})
 		}
 	case *gpb.SubscribeResponse_Update:
-		// parse here!
 		//ExampleMessage:update:{timestamp:1657200848272415469  update:{path:{elem:{name:"system"}  elem:{name:"config"}  elem:{name:"hostname"}}  val:{string_val:"ceos0"}}}
+		handleSubscribeResponseUpdate(resp, pndID, deviceID)
 	}
 }
+
+func handleSubscribeResponseUpdate(resp *gpb.SubscribeResponse_Update, pndID, deviceID string) {
+	//ExampleMessage:update:{timestamp:1657200848272415469  update:{path:{elem:{name:"system"}  elem:{name:"config"}  elem:{name:"hostname"}}  val:{string_val:"ceos0"}}}
+	// Not implemented yet, just a simple log to see if this works for now
+	logrus.Infof("Pnd: %s, Device: %s, Message: %s", pndID, deviceID, resp.Update.String())
+}
diff --git a/controller/nucleus/principalNetworkDomain_test.go b/controller/nucleus/principalNetworkDomain_test.go
index 5059685d1..0ea0edbbd 100644
--- a/controller/nucleus/principalNetworkDomain_test.go
+++ b/controller/nucleus/principalNetworkDomain_test.go
@@ -1219,22 +1219,23 @@ func Test_pndImplementation_SubscribePath(t *testing.T) {
 		args    args
 		wantErr bool
 	}{
-		{
-			name: "default",
-			args: args{
-				uuid: did,
-				subList: &ppb.SubscriptionList{
-					Subscription: []*ppb.Subscription{
-						{
-							Path:           "",
-							StreamMode:     ppb.StreamMode_STREAM_MODE_SAMPLE,
-							SampleInterval: 1000000000, // 1 second
-						},
-					},
-					Mode: ppb.SubscriptionMode_SUBSCRIPTION_MODE_STREAM,
-				},
-			},
-		},
+		//TODO(faseid): Implement proper test here!
+		// {
+		// 	name: "default",
+		// 	args: args{
+		// 		uuid: did,
+		// 		subList: &ppb.SubscriptionList{
+		// 			Subscription: []*ppb.Subscription{
+		// 				{
+		// 					Path:           "",
+		// 					StreamMode:     ppb.StreamMode_STREAM_MODE_SAMPLE,
+		// 					SampleInterval: 1000000000, // 1 second
+		// 				},
+		// 			},
+		// 			Mode: ppb.SubscriptionMode_SUBSCRIPTION_MODE_STREAM,
+		// 		},
+		// 	},
+		// },
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-- 
GitLab