From 0af8cb6304c7cb44d124b4a9b860590ad3123604 Mon Sep 17 00:00:00 2001 From: Fabian Seidl <fabian.seidl@h-da.de> Date: Fri, 11 Nov 2022 11:25:52 +0000 Subject: [PATCH] Fix issue when trying to access empty gnmi notification in CLI See merge request danet/gosdn!398 --- cli/cmd/networkElementGet.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cli/cmd/networkElementGet.go b/cli/cmd/networkElementGet.go index af9a45a3c..1635f140f 100644 --- a/cli/cmd/networkElementGet.go +++ b/cli/cmd/networkElementGet.go @@ -69,14 +69,18 @@ The network element UUID and request path must be specified as a positional argu panel1 := pterm.DefaultBox.WithTitle("Timestamp:").Sprint(n.GetTimestamp()) panel2 := pterm.DefaultBox.WithTitle("Requested Path:").Sprint(args[1]) - val := n.Update[0].GetVal() - switch valTyped := val.GetValue().(type) { - case *gpb.TypedValue_JsonIetfVal: - panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(string(valTyped.JsonIetfVal)) - case *gpb.TypedValue_JsonVal: - panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(string(valTyped.JsonVal)) - default: - panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(protojson.Format(val)) + if len(n.Update) == 0 { + panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint("empty value") + } else { + val := n.Update[0].GetVal() + switch valTyped := val.GetValue().(type) { + case *gpb.TypedValue_JsonIetfVal: + panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(string(valTyped.JsonIetfVal)) + case *gpb.TypedValue_JsonVal: + panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(string(valTyped.JsonVal)) + default: + panel3 = pterm.DefaultBox.WithTitle("Update:").Sprint(protojson.Format(val)) + } } panels, _ := pterm.DefaultPanel.WithPanels(pterm.Panels{ -- GitLab