@@ -7,6 +7,7 @@ package backend
77
88import (
99 "context"
10+ "fmt"
1011 "log"
1112 "path"
1213 "sort"
@@ -45,14 +46,22 @@ func (s *Server) CreateNvmeRemoteController(_ context.Context, in *pb.CreateNvme
4546 }
4647 in .NvmeRemoteController .Name = server .ResourceIDToVolumeName (resourceID )
4748 // idempotent API when called with same key, should return same object
48- volume , ok := s .Volumes .NvmeControllers [in .NvmeRemoteController .Name ]
49- if ok {
49+ volume := new (pb.NvmeRemoteController )
50+ found , err := s .store .Get (in .NvmeRemoteController .Name , volume )
51+ if err != nil {
52+ fmt .Printf ("Failed to interact with store: %v" , err )
53+ return nil , err
54+ }
55+ if found {
5056 log .Printf ("Already existing NvmeRemoteController with id %v" , in .NvmeRemoteController .Name )
5157 return volume , nil
5258 }
5359 // not found, so create a new one
5460 response := server .ProtoClone (in .NvmeRemoteController )
55- s .Volumes .NvmeControllers [in .NvmeRemoteController .Name ] = response
61+ err = s .store .Set (in .NvmeRemoteController .Name , response )
62+ if err != nil {
63+ return nil , err
64+ }
5665 log .Printf ("CreateNvmeRemoteController: Sending to client: %v" , response )
5766 return response , nil
5867}
@@ -66,8 +75,13 @@ func (s *Server) DeleteNvmeRemoteController(_ context.Context, in *pb.DeleteNvme
6675 return nil , err
6776 }
6877 // fetch object from the database
69- volume , ok := s .Volumes .NvmeControllers [in .Name ]
70- if ! ok {
78+ volume := new (pb.NvmeRemoteController )
79+ found , err := s .store .Get (in .Name , volume )
80+ if err != nil {
81+ fmt .Printf ("Failed to interact with store: %v" , err )
82+ return nil , err
83+ }
84+ if ! found {
7185 if in .AllowMissing {
7286 return & emptypb.Empty {}, nil
7387 }
@@ -78,7 +92,10 @@ func (s *Server) DeleteNvmeRemoteController(_ context.Context, in *pb.DeleteNvme
7892 if s .numberOfPathsForController (in .Name ) > 0 {
7993 return nil , status .Error (codes .FailedPrecondition , "NvmePaths exist for controller" )
8094 }
81- delete (s .Volumes .NvmeControllers , volume .Name )
95+ err = s .store .Delete (volume .Name )
96+ if err != nil {
97+ return nil , err
98+ }
8299 return & emptypb.Empty {}, nil
83100}
84101
@@ -102,8 +119,13 @@ func (s *Server) UpdateNvmeRemoteController(_ context.Context, in *pb.UpdateNvme
102119 return nil , err
103120 }
104121 // fetch object from the database
105- volume , ok := s .Volumes .NvmeControllers [in .NvmeRemoteController .Name ]
106- if ! ok {
122+ volume := new (pb.NvmeRemoteController )
123+ found , err := s .store .Get (in .NvmeRemoteController .Name , volume )
124+ if err != nil {
125+ fmt .Printf ("Failed to interact with store: %v" , err )
126+ return nil , err
127+ }
128+ if ! found {
107129 if in .AllowMissing {
108130 log .Printf ("TODO: in case of AllowMissing, create a new resource, don;t return error" )
109131 }
@@ -119,7 +141,10 @@ func (s *Server) UpdateNvmeRemoteController(_ context.Context, in *pb.UpdateNvme
119141 }
120142 log .Printf ("TODO: use resourceID=%v" , resourceID )
121143 response := server .ProtoClone (in .NvmeRemoteController )
122- // s.Volumes.NvmeControllers[in.NvmeRemoteController.Name] = response
144+ // err = s.store.Set(in.NvmeRemoteController.Name, response)
145+ // if err != nil {
146+ // return nil, err
147+ // }
123148 return response , nil
124149}
125150
@@ -139,9 +164,9 @@ func (s *Server) ListNvmeRemoteControllers(_ context.Context, in *pb.ListNvmeRem
139164 }
140165
141166 Blobarray := []* pb.NvmeRemoteController {}
142- for _ , controller := range s .Volumes .NvmeControllers {
143- Blobarray = append (Blobarray , controller )
144- }
167+ // for _, controller := range s.Volumes.NvmeControllers {
168+ // Blobarray = append(Blobarray, controller)
169+ // }
145170 sortNvmeRemoteControllers (Blobarray )
146171
147172 token := ""
@@ -163,8 +188,13 @@ func (s *Server) GetNvmeRemoteController(_ context.Context, in *pb.GetNvmeRemote
163188 return nil , err
164189 }
165190 // fetch object from the database
166- volume , ok := s .Volumes .NvmeControllers [in .Name ]
167- if ! ok {
191+ volume := new (pb.NvmeRemoteController )
192+ found , err := s .store .Get (in .Name , volume )
193+ if err != nil {
194+ fmt .Printf ("Failed to interact with store: %v" , err )
195+ return nil , err
196+ }
197+ if ! found {
168198 err := status .Errorf (codes .NotFound , "unable to find key %s" , in .Name )
169199 log .Printf ("error: %v" , err )
170200 return nil , err
@@ -183,8 +213,13 @@ func (s *Server) StatsNvmeRemoteController(_ context.Context, in *pb.StatsNvmeRe
183213 return nil , err
184214 }
185215 // fetch object from the database
186- volume , ok := s .Volumes .NvmeControllers [in .Name ]
187- if ! ok {
216+ volume := new (pb.NvmeRemoteController )
217+ found , err := s .store .Get (in .Name , volume )
218+ if err != nil {
219+ fmt .Printf ("Failed to interact with store: %v" , err )
220+ return nil , err
221+ }
222+ if ! found {
188223 err := status .Errorf (codes .NotFound , "unable to find key %s" , in .Name )
189224 log .Printf ("error: %v" , err )
190225 return nil , err
0 commit comments