diff --git a/controller/app/Store.go b/controller/app/Store.go index 0852c57fc2b72071c22b44911600ab8c489d92d1..158fb75e8bcaa61d04c398618c7e4e1aab3ff574 100644 --- a/controller/app/Store.go +++ b/controller/app/Store.go @@ -57,7 +57,10 @@ func (s *Store) Get(query store.Query) (App, error) { } func (s *Store) getByID(appID uuid.UUID) (loadedApp App, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedApp, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -83,7 +86,10 @@ func (s *Store) getByID(appID uuid.UUID) (loadedApp App, err error) { } func (s *Store) getByName(appName string) (loadedApp App, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedApp, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -110,7 +116,10 @@ func (s *Store) getByName(appName string) (loadedApp App, err error) { // GetAll returns all stored apps. func (s *Store) GetAll() (loadedApps []App, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -139,7 +148,10 @@ func (s *Store) GetAll() (loadedApps []App, err error) { // Add adds a app to the app store. func (s *Store) Add(app App) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -163,7 +175,10 @@ func (s *Store) Add(app App) (err error) { func (s *Store) Update(app App) (err error) { var updatedApp App - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -197,7 +212,10 @@ func (s *Store) Update(app App) (err error) { // Delete deletes a app from the app store. func (s *Store) Delete(app App) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/nucleus/database/mongo-connection.go b/controller/nucleus/database/mongo-connection.go index 8e4bde62074e5f8e6217982fa49abdcdba487d35..b26cac5fc5f0312c123e8b8bc3700368eb1c021f 100644 --- a/controller/nucleus/database/mongo-connection.go +++ b/controller/nucleus/database/mongo-connection.go @@ -18,20 +18,22 @@ const ( ) // GetMongoConnection Retrieves a client to the MongoDB. -func GetMongoConnection() (*mongo.Client, context.Context, context.CancelFunc) { +func GetMongoConnection() (*mongo.Client, context.Context, context.CancelFunc, error) { mongoConnection := config.DatabaseConnection ctx, cancel := context.WithTimeout(context.Background(), connectTimeout*time.Second) client, err := mongo.Connect(ctx, options.Client().ApplyURI(mongoConnection)) if err != nil { log.Printf("Failed to create client: %v", err) + return nil, ctx, cancel, err } // Force a connection to verify our connection string err = client.Ping(ctx, nil) if err != nil { log.Printf("Failed to connect to database: %v\n", err) + return nil, ctx, cancel, err } - return client, ctx, cancel + return client, ctx, cancel, nil } diff --git a/controller/nucleus/databaseNetworkElementStore.go b/controller/nucleus/databaseNetworkElementStore.go index be64919a65454fda609a157ca81895bf7d6c861d..d2e63e0c4780645e83135e1075461e53b6b617aa 100644 --- a/controller/nucleus/databaseNetworkElementStore.go +++ b/controller/nucleus/databaseNetworkElementStore.go @@ -51,7 +51,10 @@ func (s *DatabaseNetworkElementStore) Get(query store.Query) (networkelement.Loa } func (s *DatabaseNetworkElementStore) getByID(idOfNetworkElement uuid.UUID) (loadedNetworkElement networkelement.LoadedNetworkElement, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedNetworkElement, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -76,7 +79,10 @@ func (s *DatabaseNetworkElementStore) getByID(idOfNetworkElement uuid.UUID) (loa } func (s *DatabaseNetworkElementStore) getByName(nameOfNetworkElement string) (loadedNetworkElement networkelement.LoadedNetworkElement, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedNetworkElement, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -102,7 +108,10 @@ func (s *DatabaseNetworkElementStore) getByName(nameOfNetworkElement string) (lo // GetAll returns all stored network elements. func (s *DatabaseNetworkElementStore) GetAll() (loadedNetworkElements []networkelement.LoadedNetworkElement, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -137,7 +146,10 @@ func (s *DatabaseNetworkElementStore) GetAll() (loadedNetworkElements []networke // Add adds a network element to the network element store. func (s *DatabaseNetworkElementStore) Add(networkElementToAdd networkelement.NetworkElement) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -161,7 +173,10 @@ func (s *DatabaseNetworkElementStore) Add(networkElementToAdd networkelement.Net func (s *DatabaseNetworkElementStore) Update(networkElementToUpdate networkelement.NetworkElement) (err error) { var updatedLoadedNetworkElement networkelement.LoadedNetworkElement - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -241,7 +256,10 @@ func (s *DatabaseNetworkElementStore) Update(networkElementToUpdate networkeleme // Delete deletes a network element from the network element store. func (s *DatabaseNetworkElementStore) Delete(networkElementToDelete networkelement.NetworkElement) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/nucleus/databasePluginStore.go b/controller/nucleus/databasePluginStore.go index 8c98e5a15e2750852815b2f0ae4d3527d0ebfeda..af61945b00601a43373c6afc7c409e18bb8c8c0b 100644 --- a/controller/nucleus/databasePluginStore.go +++ b/controller/nucleus/databasePluginStore.go @@ -22,7 +22,10 @@ type DatabasePluginStore struct { // Add adds a plugin. func (s *DatabasePluginStore) Add(pluginToAdd plugin.Plugin) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -49,7 +52,10 @@ func (s *DatabasePluginStore) Add(pluginToAdd plugin.Plugin) (err error) { func (s *DatabasePluginStore) Update(pluginToUpdate plugin.Plugin) (err error) { var updatedLoadedPlugin plugin.LoadedPlugin - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -83,7 +89,10 @@ func (s *DatabasePluginStore) Update(pluginToUpdate plugin.Plugin) (err error) { // Delete deletes an plugin. func (s *DatabasePluginStore) Delete(pluginToDelete plugin.Plugin) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -105,7 +114,10 @@ func (s *DatabasePluginStore) Delete(pluginToDelete plugin.Plugin) (err error) { // Get takes a SouthboundInterface's UUID or name and returns the SouthboundInterface. If the requested // SouthboundInterface does not exist an error is returned. func (s *DatabasePluginStore) Get(query store.Query) (loadedPlugin plugin.LoadedPlugin, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedPlugin, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -135,7 +147,10 @@ func (s *DatabasePluginStore) Get(query store.Query) (loadedPlugin plugin.Loaded // GetAll returns all plugin. func (s *DatabasePluginStore) GetAll() (loadedPlugins []plugin.LoadedPlugin, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go index c5497a000e130713c4b1cc20ce7103ed5d259081..bdd68ead376447d68e60668e2276872ca6f3a5a1 100644 --- a/controller/nucleus/databasePndStore.go +++ b/controller/nucleus/databasePndStore.go @@ -58,7 +58,10 @@ func (s *DatabasePndStore) Get(query store.Query) (newPnd networkdomain.LoadedPn } func (s *DatabasePndStore) getByID(idOfPnd uuid.UUID) (loadedPnd networkdomain.LoadedPnd, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedPnd, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -84,7 +87,10 @@ func (s *DatabasePndStore) getByID(idOfPnd uuid.UUID) (loadedPnd networkdomain.L } func (s *DatabasePndStore) getByName(nameOfPnd string) (loadedPnd networkdomain.LoadedPnd, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedPnd, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -113,7 +119,10 @@ func (s *DatabasePndStore) getByName(nameOfPnd string) (loadedPnd networkdomain. func (s *DatabasePndStore) GetAll() (pnds []networkdomain.LoadedPnd, err error) { var loadedPnds []networkdomain.LoadedPnd - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -169,7 +178,10 @@ func (s *DatabasePndStore) GetAll() (pnds []networkdomain.LoadedPnd, err error) // Add adds a pnd to the pnd store. func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -191,7 +203,10 @@ func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) (err error) // Delete deletes a pnd. // It also deletes all assosicated devices and sbis. func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go index a28fd8251968a2f9aeff6c90d943b15ccc13a5a5..4066d97b2580778c1b5401e17dc8cba2774ee2ce 100644 --- a/controller/rbac/databaseRoleStore.go +++ b/controller/rbac/databaseRoleStore.go @@ -22,7 +22,10 @@ type DatabaseRoleStore struct { // Add adds a Role. func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -47,7 +50,10 @@ func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) (err error) { // Delete deletes a Role. func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -89,7 +95,10 @@ func (s *DatabaseRoleStore) Get(query store.Query) (rbac.LoadedRole, error) { } func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (loadedRole rbac.LoadedRole, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedRole, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -115,7 +124,10 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (loadedRole rbac.LoadedR } func (s *DatabaseRoleStore) getByName(nameOfRole string) (loadedRole rbac.LoadedRole, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedRole, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -142,7 +154,10 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (loadedRole rbac.Loaded // GetAll returns all Roles. func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -178,7 +193,10 @@ func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error) func (s *DatabaseRoleStore) Update(roleToUpdate rbac.Role) (err error) { var updatedLoadedRole rbac.LoadedRole - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go index 42451c64674a3def7a936513b33a6169a4bd5f5a..0c8242b0618d09b1a44e24aa6e185bcece2bdbfe 100644 --- a/controller/rbac/databaseUserStore.go +++ b/controller/rbac/databaseUserStore.go @@ -23,7 +23,10 @@ type DatabaseUserStore struct { // Add adds an User. func (s *DatabaseUserStore) Add(userToAdd rbac.User) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -48,7 +51,10 @@ func (s *DatabaseUserStore) Add(userToAdd rbac.User) (err error) { // Delete deletes an User. func (s *DatabaseUserStore) Delete(userToDelete rbac.User) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -90,7 +96,10 @@ func (s *DatabaseUserStore) Get(query store.Query) (rbac.LoadedUser, error) { } func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (loadedUser rbac.LoadedUser, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedUser, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -116,7 +125,10 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (loadedUser rbac.LoadedU } func (s *DatabaseUserStore) getByName(nameOfUser string) (loadedUser rbac.LoadedUser, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedUser, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -143,7 +155,10 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (loadedUser rbac.Loaded // GetAll returns all Users. func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -179,7 +194,10 @@ func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error) func (s *DatabaseUserStore) Update(userToUpdate rbac.User) (err error) { var updatedLoadedUser rbac.LoadedUser - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go index f6f637e940bf257b7504886f068f0d7c297d94ab..ce9af485f6e20d05f362de4d56ff4d679f0aeb5b 100644 --- a/controller/topology/nodes/nodeStore.go +++ b/controller/topology/nodes/nodeStore.go @@ -59,7 +59,10 @@ func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) { } func (s *DatabaseNodeStore) getByID(idOfNode uuid.UUID) (loadedNode Node, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedNode, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -86,7 +89,10 @@ func (s *DatabaseNodeStore) getByID(idOfNode uuid.UUID) (loadedNode Node, err er } func (s *DatabaseNodeStore) getByName(nameOfNode string) (loadedNode Node, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedNode, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -112,7 +118,10 @@ func (s *DatabaseNodeStore) getByName(nameOfNode string) (loadedNode Node, err e // GetAll returns all stored nodes. func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedNode, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -144,7 +153,10 @@ func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) { // Add adds a node to the node store. func (s *DatabaseNodeStore) Add(node Node) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -171,7 +183,10 @@ func (s *DatabaseNodeStore) Add(node Node) (err error) { func (s *DatabaseNodeStore) Update(node Node) (err error) { var updatedLoadedNodes Node - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -244,7 +259,10 @@ func (s *DatabaseNodeStore) Update(node Node) (err error) { // Delete deletes a node from the node store. func (s *DatabaseNodeStore) Delete(node Node) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go index 024c0f9114f2d2c297a433df163f8b00d97b22e6..7045f2423e8c234c13aa388d21adf2846b6c3bba 100644 --- a/controller/topology/ports/portStore.go +++ b/controller/topology/ports/portStore.go @@ -57,7 +57,10 @@ func (s *DatabasePortStore) Get(query query.Query) (Port, error) { } func (s *DatabasePortStore) getByID(idOfPort uuid.UUID) (loadedPort Port, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedPort, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -84,7 +87,10 @@ func (s *DatabasePortStore) getByID(idOfPort uuid.UUID) (loadedPort Port, err er } func (s *DatabasePortStore) getByName(nameOfPort string) (loadedPort Port, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedPort, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -110,7 +116,10 @@ func (s *DatabasePortStore) getByName(nameOfPort string) (loadedPort Port, err e // GetAll returns all stored ports. func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -143,7 +152,10 @@ func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) { // Add adds a port to the port store. func (s *DatabasePortStore) Add(port Port) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -166,7 +178,10 @@ func (s *DatabasePortStore) Add(port Port) (err error) { func (s *DatabasePortStore) Update(port Port) (err error) { var updatedLoadedNetworkElement networkelement.LoadedNetworkElement - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -198,7 +213,10 @@ func (s *DatabasePortStore) Update(port Port) (err error) { // Delete deletes a port from the port store. func (s *DatabasePortStore) Delete(port Port) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/topology/routing-tables/routingTableStore.go b/controller/topology/routing-tables/routingTableStore.go index 1c70c68a1d2965f5daa6877cf7056854fbfecc93..d61299916c032efd6b5dc05b96f5e0813998e707 100644 --- a/controller/topology/routing-tables/routingTableStore.go +++ b/controller/topology/routing-tables/routingTableStore.go @@ -56,7 +56,10 @@ func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error) } func (s *DatabaseRoutingTableStore) getByID(idOfRoutingTable uuid.UUID) (routingTable RoutingTable, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return routingTable, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -81,7 +84,10 @@ func (s *DatabaseRoutingTableStore) getByID(idOfRoutingTable uuid.UUID) (routing } func (s *DatabaseRoutingTableStore) getByName(nameOfRoutingTable string) (loadedRoutingTable RoutingTable, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedRoutingTable, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -107,7 +113,10 @@ func (s *DatabaseRoutingTableStore) getByName(nameOfRoutingTable string) (loaded // GetAll returns all stored routingTables. func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -140,7 +149,10 @@ func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable, // Add adds a RoutingTable to the store. func (s *DatabaseRoutingTableStore) Add(routingTable RoutingTable) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -163,7 +175,10 @@ func (s *DatabaseRoutingTableStore) Add(routingTable RoutingTable) (err error) { func (s *DatabaseRoutingTableStore) Update(routingTable RoutingTable) (err error) { var updatedLoadedRoutingTable RoutingTable - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -195,7 +210,10 @@ func (s *DatabaseRoutingTableStore) Update(routingTable RoutingTable) (err error // Delete deletes a node from the node store. func (s *DatabaseRoutingTableStore) Delete(routingTable RoutingTable) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go index e8118388eb96b6ce504e29b3cb942c9a18d861b1..399d71af724db415fa362e1b58999b5551e0f540 100644 --- a/controller/topology/topologyStore.go +++ b/controller/topology/topologyStore.go @@ -57,7 +57,10 @@ func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) { } func (s *DatabaseTopologyStore) getByID(idOfTopology uuid.UUID) (loadedTopology links.Link, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedTopology, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -82,7 +85,10 @@ func (s *DatabaseTopologyStore) getByID(idOfTopology uuid.UUID) (loadedTopology } func (s *DatabaseTopologyStore) getByName(nameOfTopology string) (loadedTopology links.Link, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return loadedTopology, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -108,7 +114,10 @@ func (s *DatabaseTopologyStore) getByName(nameOfTopology string) (loadedTopology // GetAll returns all stored links. func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return nil, err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -141,7 +150,10 @@ func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error // Add adds a link to the link store. func (s *DatabaseTopologyStore) Add(link links.Link) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -164,7 +176,10 @@ func (s *DatabaseTopologyStore) Add(link links.Link) (err error) { func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) (err error) { var updatedLink links.Link - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil { @@ -196,7 +211,10 @@ func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) (err error) { // Delete deletes a link from the link store. func (s *DatabaseTopologyStore) Delete(linkToDelete links.Link) (err error) { - client, ctx, cancel := database.GetMongoConnection() + client, ctx, cancel, err := database.GetMongoConnection() + if err != nil { + return err + } defer cancel() defer func() { if ferr := client.Disconnect(ctx); ferr != nil {