Skip to content

Commit 0a4cc53

Browse files
committed
[frontend][nvme][ctrl] UpdateNvmeController: use AllowMissing
This patch use AllowMissing parameter in UpdateNvmeController to actually update one Signed-off-by: minhee-han <minhee.han@mangoboost.io>
1 parent 72b5d9d commit 0a4cc53

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

pkg/frontend/nvme_controller.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,19 +114,29 @@ func (s *Server) DeleteNvmeController(ctx context.Context, in *pb.DeleteNvmeCont
114114
}
115115

116116
// UpdateNvmeController updates an Nvme controller
117-
func (s *Server) UpdateNvmeController(_ context.Context, in *pb.UpdateNvmeControllerRequest) (*pb.NvmeController, error) {
117+
func (s *Server) UpdateNvmeController(ctx context.Context, in *pb.UpdateNvmeControllerRequest) (*pb.NvmeController, error) {
118118
// check input correctness
119119
if err := s.validateUpdateNvmeControllerRequest(in); err != nil {
120120
return nil, err
121121
}
122122
// fetch object from the database
123123
ctrlr, ok := s.Nvme.Controllers[in.NvmeController.Name]
124124
if !ok {
125-
if in.AllowMissing {
126-
log.Printf("TODO: in case of AllowMissing, create a new resource, don;t return error")
125+
if !in.AllowMissing {
126+
err := status.Errorf(codes.NotFound, "unable to find key %s", in.NvmeController.Name)
127+
return nil, err
128+
}
129+
130+
// If AllowMissing is true and controller doesn't exist, create it using CreateNvmeController
131+
createRequest := &pb.CreateNvmeControllerRequest{
132+
NvmeController: in.NvmeController,
133+
Parent: utils.GetSubsystemIDFromNvmeName(in.NvmeController.Name),
134+
}
135+
var err error
136+
ctrlr, err = s.CreateNvmeController(ctx, createRequest)
137+
if err != nil {
138+
return nil, err
127139
}
128-
err := status.Errorf(codes.NotFound, "unable to find key %s", in.NvmeController.Name)
129-
return nil, err
130140
}
131141
resourceID := path.Base(ctrlr.Name)
132142
// update_mask = 2

0 commit comments

Comments
 (0)