Skip to content
Snippets Groups Projects
Commit 3d070a46 authored by Fabian Seidl's avatar Fabian Seidl
Browse files

fix adding subscriptions

parent f57342b6
No related branches found
No related tags found
1 merge request!1080Resolve "Implement missing functionality of subscription management"
Pipeline #239289 passed
This commit is part of merge request !1080. Comments created here will be created in the context of that merge request.
...@@ -46,10 +46,10 @@ var subAddCmd = &cobra.Command{ ...@@ -46,10 +46,10 @@ var subAddCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) { Run: func(cmd *cobra.Command, args []string) {
spinner, _ := pterm.DefaultSpinner.Start("Adding subscription") spinner, _ := pterm.DefaultSpinner.Start("Adding subscription")
// TODO: add option to provide sub options?? // Note: Currently, doesn't support providing options/paths.
_, err := api.Add(createContextWithAuthorization(), viper.GetString("controllerAPIEndpoint"), mneUUID, nil) _, err := api.Add(createContextWithAuthorization(), viper.GetString("controllerAPIEndpoint"), mneUUID, nil)
if err != nil { if err != nil {
pterm.Error.Println(err) spinner.Fail(err)
return return
} }
spinner.Success() spinner.Success()
......
...@@ -138,22 +138,26 @@ func (s *SubManagementServer) Add(ctx context.Context, request *subpb.AddRequest ...@@ -138,22 +138,26 @@ func (s *SubManagementServer) Add(ctx context.Context, request *subpb.AddRequest
}, err }, err
} }
var paths [][]string var gNMISubScribeOptions *gnmi.SubscribeOptions
for _, path := range request.Subscription.Paths { if request.Subscription != nil {
var elems []string var paths [][]string
for _, elem := range path.Elem { for _, path := range request.Subscription.Paths {
elems = append(elems, elem) var elems []string
for _, elem := range path.Elem {
elems = append(elems, elem)
}
paths = append(paths, elems)
} }
paths = append(paths, elems) gNMISubScribeOptions = &gnmi.SubscribeOptions{
}
err = s.networkElementWatchter.SubscribeToNetworkElementWithID(mneID,
&gnmi.SubscribeOptions{
Mode: request.Subscription.SubscribeOptions.GnmiMode, Mode: request.Subscription.SubscribeOptions.GnmiMode,
StreamMode: request.Subscription.SubscribeOptions.GnmiStreamMode, StreamMode: request.Subscription.SubscribeOptions.GnmiStreamMode,
SampleInterval: request.Subscription.SubscribeOptions.SampleInterval, SampleInterval: request.Subscription.SubscribeOptions.SampleInterval,
Paths: paths, Paths: paths,
}, }
}
err = s.networkElementWatchter.SubscribeToNetworkElementWithID(mneID,
gNMISubScribeOptions,
) )
if err != nil { if err != nil {
return &subpb.AddResponse{ return &subpb.AddResponse{
......
...@@ -108,6 +108,14 @@ func (n *NetworkElementWatcher) SubscribeToNetworkElement(mne networkelement.Net ...@@ -108,6 +108,14 @@ func (n *NetworkElementWatcher) SubscribeToNetworkElement(mne networkelement.Net
// SubscribeToNetworkElementWithID subscribes to the network element matching the provided ID according to provided SubscribeOptions. // SubscribeToNetworkElementWithID subscribes to the network element matching the provided ID according to provided SubscribeOptions.
// SubscribeOptions can be nil. Use nil for a fixed, pre-defined set of gNMI subscription options (streaming in sample mode each second). // SubscribeOptions can be nil. Use nil for a fixed, pre-defined set of gNMI subscription options (streaming in sample mode each second).
func (n *NetworkElementWatcher) SubscribeToNetworkElementWithID(mneID uuid.UUID, opts *gnmi.SubscribeOptions) error { func (n *NetworkElementWatcher) SubscribeToNetworkElementWithID(mneID uuid.UUID, opts *gnmi.SubscribeOptions) error {
if opts == nil {
opts = &gnmi.SubscribeOptions{
Mode: gNMISubscribeMode,
StreamMode: gNMIStreamMode,
SampleInterval: subscribeSampleInterval,
}
}
mne, err := n.mneService.Get(store.Query{ID: mneID}) mne, err := n.mneService.Get(store.Query{ID: mneID})
if err != nil { if err != nil {
log.Error(err) log.Error(err)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment