Skip to content
Snippets Groups Projects

WIP: Develop

Merged Ghost User requested to merge develop into master
1 file
+ 55
16
Compare changes
  • Side-by-side
  • Inline
@@ -36,6 +36,37 @@ func NewDatabaseDeviceStore(pndUUID uuid.UUID, sbiStore southbound.SbiStore) dev
@@ -36,6 +36,37 @@ func NewDatabaseDeviceStore(pndUUID uuid.UUID, sbiStore southbound.SbiStore) dev
// Get takes a Device's UUID or name and returns the Device.
// Get takes a Device's UUID or name and returns the Device.
func (s *DatabaseDeviceStore) Get(query store.Query) (device.Device, error) {
func (s *DatabaseDeviceStore) Get(query store.Query) (device.Device, error) {
var loadedDevice LoadedDevice
var loadedDevice LoadedDevice
 
var err error
 
 
if query.ID.String() != "" {
 
loadedDevice, err = s.getByID(query.ID)
 
if err != nil {
 
return nil, errors.ErrCouldNotFind{StoreName: deviceStoreName}
 
}
 
 
device, err := s.createDeviceFromStore(loadedDevice)
 
if err != nil {
 
return nil, err
 
}
 
 
return device, nil
 
}
 
 
loadedDevice, err = s.getByName(query.Name)
 
if err != nil {
 
return nil, errors.ErrCouldNotFind{StoreName: deviceStoreName}
 
}
 
 
device, err := s.createDeviceFromStore(loadedDevice)
 
if err != nil {
 
return nil, err
 
}
 
 
return device, nil
 
}
 
 
func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (LoadedDevice, error) {
 
var loadedDevice LoadedDevice
client, ctx, cancel := database.GetMongoConnection()
client, ctx, cancel := database.GetMongoConnection()
defer cancel()
defer cancel()
@@ -43,33 +74,41 @@ func (s *DatabaseDeviceStore) Get(query store.Query) (device.Device, error) {
@@ -43,33 +74,41 @@ func (s *DatabaseDeviceStore) Get(query store.Query) (device.Device, error) {
db := client.Database(database.DatabaseName)
db := client.Database(database.DatabaseName)
collection := db.Collection(s.storeName)
collection := db.Collection(s.storeName)
result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.ID}})
result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfDevice.String()}})
if result == nil {
if result == nil {
return nil, errors.ErrCouldNotFind{StoreName: deviceStoreName}
return loadedDevice, errors.ErrCouldNotFind{StoreName: deviceStoreName}
}
}
err := result.Decode(&loadedDevice)
err := result.Decode(&loadedDevice)
if err != nil {
if err != nil {
db := client.Database(database.DatabaseName)
log.Printf("Failed marshalling %v", err)
collection := db.Collection(s.storeName)
return loadedDevice, errors.ErrCouldNotFind{StoreName: deviceStoreName}
result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.Name}})
}
if result == nil {
return nil, errors.ErrCouldNotFind{StoreName: deviceStoreName}
}
err := result.Decode(&loadedDevice)
return loadedDevice, nil
if err != nil {
}
log.Printf("Failed marshalling %v", err)
return nil, errors.ErrCouldNotFind{StoreName: deviceStoreName}
func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (LoadedDevice, error) {
}
var loadedDevice LoadedDevice
 
 
client, ctx, cancel := database.GetMongoConnection()
 
defer cancel()
 
defer client.Disconnect(ctx)
 
 
db := client.Database(database.DatabaseName)
 
collection := db.Collection(s.storeName)
 
result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfDevice}})
 
if result == nil {
 
return loadedDevice, errors.ErrCouldNotFind{StoreName: deviceStoreName}
}
}
device, err := s.createDeviceFromStore(loadedDevice)
err := result.Decode(&loadedDevice)
if err != nil {
if err != nil {
return nil, err
log.Printf("Failed marshalling %v", err)
 
return loadedDevice, errors.ErrCouldNotFind{StoreName: deviceStoreName}
}
}
return device, nil
return loadedDevice, nil
}
}
// GetAll returns all stored devices.
// GetAll returns all stored devices.
Loading