From 87808c332251a1e28dd80b9e161e433bb0ec1cf1 Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@stud.h-da.de>
Date: Wed, 6 Sep 2023 12:57:02 +0200
Subject: [PATCH] Move the add to storage call for a plugin from RequestPlugin
 to addMne

---
 .../server/configurationmanagement.go         |  4 ++++
 .../northbound/server/networkElement.go       | 24 ++++---------------
 controller/nucleus/pluginService.go           |  4 ----
 3 files changed, 9 insertions(+), 23 deletions(-)

diff --git a/controller/northbound/server/configurationmanagement.go b/controller/northbound/server/configurationmanagement.go
index 7dd74e3cc..ebe8436db 100644
--- a/controller/northbound/server/configurationmanagement.go
+++ b/controller/northbound/server/configurationmanagement.go
@@ -337,6 +337,10 @@ func (c ConfigurationManagementServer) createNetworkElements(sdnConfig *loadedSD
 			return err
 		}
 
+		if err := c.pluginService.Add(plugin); err != nil {
+			return err
+		}
+
 		err = c.mneService.UpdateModel(createdNetworkElement.ID(), inputNetworkElement.Model)
 		if err != nil {
 			return err
diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go
index 1528f7514..7455a040c 100644
--- a/controller/northbound/server/networkElement.go
+++ b/controller/northbound/server/networkElement.go
@@ -707,25 +707,6 @@ func (n *NetworkElementServer) SetMneList(ctx context.Context, request *mnepb.Se
 func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb.TransportOption, requestPluginFunc func(uuid.UUID) (plugin.Plugin, error), pluginID uuid.UUID, pndID uuid.UUID, optionalNetworkElementID ...uuid.UUID) (uuid.UUID, error) {
 	var err error
 
-	// Note: cSBI not supported currently, so this is commented fow now.
-	// Might be needed or removed in the future.
-	//
-	// switch t := opt.Type; t {
-	// case spb.Type_TYPE_CONTAINERISED:
-	// 	return n.handleCsbiEnrolment(name, opt)
-	// case spb.Type_TYPE_PLUGIN:
-	// 	sbi, err = n.requestPlugin(name, opt)
-	// 	if err != nil {
-	// 		return uuid.Nil, err
-	// 	}
-	// default:
-	// 	var err error
-	// 	sbi, err = pnd.southboundService.Get(store.Query{ID: sid})
-	// 	if err != nil {
-	// 		return uuid.Nil, err
-	// 	}
-	// }
-
 	networkElementID := uuid.Nil
 	if len(optionalNetworkElementID) > 0 {
 		networkElementID = optionalNetworkElementID[0]
@@ -761,6 +742,11 @@ func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb
 			return uuid.Nil, err
 		}
 
+		err = n.pluginService.Add(plugin)
+		if err != nil {
+			return uuid.Nil, err
+		}
+
 		n.networkElementWatchter.SubscribeToNetworkElement(mne, config.GetGnmiSubscriptionPaths(), nil)
 	} else {
 		return uuid.Nil, status.Errorf(codes.InvalidArgument, "invalid transport data provided")
diff --git a/controller/nucleus/pluginService.go b/controller/nucleus/pluginService.go
index ed7a7ab68..4b0415181 100644
--- a/controller/nucleus/pluginService.go
+++ b/controller/nucleus/pluginService.go
@@ -167,10 +167,6 @@ func (s *PluginService) RequestPlugin(requestID uuid.UUID) (plugin.Plugin, error
 		return nil, err
 	}
 
-	if err := s.Add(plugin); err != nil {
-		return nil, err
-	}
-
 	return plugin, nil
 }
 
-- 
GitLab