From e1ae9d60bee90aebfe7fc6b7076d789baa5c264f Mon Sep 17 00:00:00 2001
From: Malte Bauch <malte.bauch@h-da.de>
Date: Mon, 21 Oct 2024 13:43:49 +0200
Subject: [PATCH] Use the same client for updates withing stores

---
 controller/nucleus/databaseNetworkElementStore.go | 8 +-------
 controller/rbac/databaseUserStore.go              | 8 +-------
 controller/topology/nodes/databaseNodeStore.go    | 8 +-------
 3 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/controller/nucleus/databaseNetworkElementStore.go b/controller/nucleus/databaseNetworkElementStore.go
index a5bc5cb07..77e7e5975 100644
--- a/controller/nucleus/databaseNetworkElementStore.go
+++ b/controller/nucleus/databaseNetworkElementStore.go
@@ -6,7 +6,6 @@ import (
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement"
-	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	"code.fbi.h-da.de/danet/gosdn/controller/store"
 	"go.mongodb.org/mongo-driver/bson"
 	"go.mongodb.org/mongo-driver/bson/primitive"
@@ -122,15 +121,10 @@ func (s *DatabaseNetworkElementStore) Add(ctx context.Context, networkElementToA
 func (s *DatabaseNetworkElementStore) Update(ctx context.Context, networkElementToUpdate networkelement.NetworkElement) (err error) {
 	var updatedLoadedNetworkElement networkelement.LoadedNetworkElement
 
-	db, err := database.GetDatabaseConnection()
-	if err != nil {
-		return err
-	}
-
 	wc := writeconcern.Majority()
 	txnOptions := options.Transaction().SetWriteConcern(wc)
 	// Starts a session on the client
-	session, err := db.Client().StartSession()
+	session, err := s.collection.Database().Client().StartSession()
 	if err != nil {
 		return err
 	}
diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go
index cfa592de9..c3b4400e9 100644
--- a/controller/rbac/databaseUserStore.go
+++ b/controller/rbac/databaseUserStore.go
@@ -6,7 +6,6 @@ import (
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
-	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	"code.fbi.h-da.de/danet/gosdn/controller/store"
 	"github.com/google/uuid"
 	log "github.com/sirupsen/logrus"
@@ -134,15 +133,10 @@ func (s *DatabaseUserStore) GetAll(ctx context.Context) (loadedUsers []rbac.Load
 func (s *DatabaseUserStore) Update(ctx context.Context, userToUpdate rbac.User) (err error) {
 	var updatedLoadedUser rbac.LoadedUser
 
-	db, err := database.GetDatabaseConnection()
-	if err != nil {
-		return err
-	}
-
 	wc := writeconcern.Majority()
 	txnOptions := options.Transaction().SetWriteConcern(wc)
 	// Starts a session on the client
-	session, err := db.Client().StartSession()
+	session, err := s.collection.Database().Client().StartSession()
 	if err != nil {
 		return err
 	}
diff --git a/controller/topology/nodes/databaseNodeStore.go b/controller/topology/nodes/databaseNodeStore.go
index b0389082c..9c575cb6f 100644
--- a/controller/topology/nodes/databaseNodeStore.go
+++ b/controller/topology/nodes/databaseNodeStore.go
@@ -6,7 +6,6 @@ import (
 	"time"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
-	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	query "code.fbi.h-da.de/danet/gosdn/controller/store"
 
 	"github.com/google/uuid"
@@ -133,15 +132,10 @@ func (s *DatabaseNodeStore) Add(ctx context.Context, node Node) (err error) {
 func (s *DatabaseNodeStore) Update(ctx context.Context, node Node) (err error) {
 	var updatedLoadedNodes Node
 
-	db, err := database.GetDatabaseConnection()
-	if err != nil {
-		return err
-	}
-
 	wc := writeconcern.Majority()
 	txnOptions := options.Transaction().SetWriteConcern(wc)
 	// Starts a session on the client
-	session, err := db.Client().StartSession()
+	session, err := s.collection.Database().Client().StartSession()
 	if err != nil {
 		return err
 	}
-- 
GitLab