@@ -49,14 +49,19 @@ func (s *Server) CreateNvmePath(_ context.Context, in *pb.CreateNvmePathRequest)
4949 }
5050 in .NvmePath .Name = server .ResourceIDToVolumeName (resourceID )
5151
52- nvmePath , ok := s .Volumes .NvmePaths [in .NvmePath .Name ]
53- if ok {
52+ nvmePath := new (pb.NvmePath )
53+ found , err := s .store .Get (in .NvmePath .Name , nvmePath )
54+ if err != nil {
55+ fmt .Printf ("Failed to interact with store: %v" , err )
56+ return nil , err
57+ }
58+ if found {
5459 log .Printf ("Already existing NvmePath with id %v" , in .NvmePath .Name )
5560 return nvmePath , nil
5661 }
5762
5863 controller := new (pb.NvmeRemoteController )
59- found , err : = s .store .Get (in .NvmePath .ControllerNameRef , controller )
64+ found , err = s .store .Get (in .NvmePath .ControllerNameRef , controller )
6065 if err != nil {
6166 fmt .Printf ("Failed to interact with store: %v" , err )
6267 return nil , err
@@ -115,7 +120,10 @@ func (s *Server) CreateNvmePath(_ context.Context, in *pb.CreateNvmePathRequest)
115120 log .Printf ("Received from SPDK: %v" , result )
116121
117122 response := server .ProtoClone (in .NvmePath )
118- s .Volumes .NvmePaths [in .NvmePath .Name ] = response
123+ err = s .store .Set (in .NvmePath .Name , response )
124+ if err != nil {
125+ return nil , err
126+ }
119127 log .Printf ("CreateNvmePath: Sending to client: %v" , response )
120128 return response , nil
121129}
@@ -128,8 +136,13 @@ func (s *Server) DeleteNvmePath(_ context.Context, in *pb.DeleteNvmePathRequest)
128136 log .Printf ("error: %v" , err )
129137 return nil , err
130138 }
131- nvmePath , ok := s .Volumes .NvmePaths [in .Name ]
132- if ! ok {
139+ nvmePath := new (pb.NvmePath )
140+ found , err := s .store .Get (in .Name , nvmePath )
141+ if err != nil {
142+ fmt .Printf ("Failed to interact with store: %v" , err )
143+ return nil , err
144+ }
145+ if ! found {
133146 if in .AllowMissing {
134147 return & emptypb.Empty {}, nil
135148 }
@@ -138,7 +151,7 @@ func (s *Server) DeleteNvmePath(_ context.Context, in *pb.DeleteNvmePathRequest)
138151 return nil , err
139152 }
140153 controller := new (pb.NvmeRemoteController )
141- found , err : = s .store .Get (nvmePath .ControllerNameRef , controller )
154+ found , err = s .store .Get (nvmePath .ControllerNameRef , controller )
142155 if err != nil {
143156 fmt .Printf ("Failed to interact with store: %v" , err )
144157 return nil , err
@@ -171,7 +184,10 @@ func (s *Server) DeleteNvmePath(_ context.Context, in *pb.DeleteNvmePathRequest)
171184 return nil , status .Errorf (codes .InvalidArgument , msg )
172185 }
173186
174- delete (s .Volumes .NvmePaths , in .Name )
187+ err = s .store .Delete (nvmePath .Name )
188+ if err != nil {
189+ return nil , err
190+ }
175191
176192 return & emptypb.Empty {}, nil
177193}
@@ -185,8 +201,13 @@ func (s *Server) UpdateNvmePath(_ context.Context, in *pb.UpdateNvmePathRequest)
185201 return nil , err
186202 }
187203 // fetch object from the database
188- volume , ok := s .Volumes .NvmePaths [in .NvmePath .Name ]
189- if ! ok {
204+ volume := new (pb.NvmePath )
205+ found , err := s .store .Get (in .NvmePath .Name , volume )
206+ if err != nil {
207+ fmt .Printf ("Failed to interact with store: %v" , err )
208+ return nil , err
209+ }
210+ if ! found {
190211 if in .AllowMissing {
191212 log .Printf ("TODO: in case of AllowMissing, create a new resource, don;t return error" )
192213 }
@@ -202,7 +223,10 @@ func (s *Server) UpdateNvmePath(_ context.Context, in *pb.UpdateNvmePathRequest)
202223 }
203224 log .Printf ("TODO: use resourceID=%v" , resourceID )
204225 response := server .ProtoClone (in .NvmePath )
205- // s.Volumes.NvmePaths[in.NvmePath.Name] = response
226+ // err = s.store.Set(in.NvmePath.Name, response)
227+ // if err != nil {
228+ // return nil, err
229+ // }
206230 return response , nil
207231}
208232
@@ -252,15 +276,20 @@ func (s *Server) GetNvmePath(_ context.Context, in *pb.GetNvmePathRequest) (*pb.
252276 return nil , err
253277 }
254278 // fetch object from the database
255- path , ok := s .Volumes .NvmePaths [in .Name ]
256- if ! ok {
279+ path := new (pb.NvmePath )
280+ found , err := s .store .Get (in .Name , path )
281+ if err != nil {
282+ fmt .Printf ("Failed to interact with store: %v" , err )
283+ return nil , err
284+ }
285+ if ! found {
257286 err := status .Errorf (codes .NotFound , "unable to find key %s" , in .Name )
258287 log .Printf ("error: %v" , err )
259288 return nil , err
260289 }
261290
262291 var result []spdk.BdevNvmeGetControllerResult
263- err : = s .rpc .Call ("bdev_nvme_get_controllers" , nil , & result )
292+ err = s .rpc .Call ("bdev_nvme_get_controllers" , nil , & result )
264293 if err != nil {
265294 log .Printf ("error: %v" , err )
266295 return nil , err
@@ -287,16 +316,21 @@ func (s *Server) StatsNvmePath(_ context.Context, in *pb.StatsNvmePathRequest) (
287316 return nil , err
288317 }
289318 // fetch object from the database
290- volume , ok := s .Volumes .NvmePaths [in .Name ]
291- if ! ok {
319+ volume := new (pb.NvmePath )
320+ found , err := s .store .Get (in .Name , volume )
321+ if err != nil {
322+ fmt .Printf ("Failed to interact with store: %v" , err )
323+ return nil , err
324+ }
325+ if ! found {
292326 err := status .Errorf (codes .NotFound , "unable to find key %s" , in .Name )
293327 log .Printf ("error: %v" , err )
294328 return nil , err
295329 }
296330 resourceID := path .Base (volume .Name )
297331 log .Printf ("TODO: send name to SPDK and get back stats: %v" , resourceID )
298332 var result spdk.NvmfGetSubsystemStatsResult
299- err : = s .rpc .Call ("nvmf_get_stats" , nil , & result )
333+ err = s .rpc .Call ("nvmf_get_stats" , nil , & result )
300334 if err != nil {
301335 log .Printf ("error: %v" , err )
302336 return nil , err
@@ -325,11 +359,11 @@ func (s *Server) opiMultipathToSpdk(multipath pb.NvmeMultipath) string {
325359
326360func (s * Server ) numberOfPathsForController (controllerName string ) int {
327361 numberOfPaths := 0
328- for _ , path := range s .Volumes .NvmePaths {
329- if path .ControllerNameRef == controllerName {
330- numberOfPaths ++
331- }
332- }
362+ // for _, path := range s.Volumes.NvmePaths {
363+ // if path.ControllerNameRef == controllerName {
364+ // numberOfPaths++
365+ // }
366+ // }
333367 return numberOfPaths
334368}
335369
0 commit comments