From 05b08ee4682c2496c087abb8a21f5d52ecd9daf9 Mon Sep 17 00:00:00 2001 From: Boris Glimcher Date: Wed, 30 Nov 2022 00:40:39 +0200 Subject: [PATCH] Add FirmwareRevision Signed-off-by: Boris Glimcher --- server/frontend.go | 10 +++++++++- server/spdk.go | 11 +++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/server/frontend.go b/server/frontend.go index aae4e7e8..af514a36 100644 --- a/server/frontend.go +++ b/server/frontend.go @@ -35,14 +35,22 @@ func (s *server) CreateNVMeSubsystem(ctx context.Context, in *pb.CreateNVMeSubsy log.Printf("error: %v", err) return nil, err } - subsystems[in.Subsystem.Spec.Id.Value] = in.Subsystem log.Printf("Received from SPDK: %v", result) + var ver GetVersionResult + err = call("spdk_get_version", nil, &ver) + if err != nil { + log.Printf("error: %v", err) + return nil, err + } + log.Printf("Received from SPDK: %v", ver) response := &pb.NVMeSubsystem{} err = deepcopier.Copy(in.Subsystem).To(response) if err != nil { log.Printf("error: %v", err) return nil, err } + response.Status = &pb.NVMeSubsystemStatus{FirmwareRevision: ver.Version} + subsystems[in.Subsystem.Spec.Id.Value] = response return response, nil } diff --git a/server/spdk.go b/server/spdk.go index 20b94089..c6adeec0 100644 --- a/server/spdk.go +++ b/server/spdk.go @@ -26,6 +26,17 @@ package main // vhost_delete_controller // vhost_get_controllers +// GetVersionResult is the result of getting a version +type GetVersionResult struct { + Version string `json:"version"` + Fields struct { + Major int `json:"major"` + Minor int `json:"minor"` + Patch int `json:"patch"` + Suffix string `json:"suffix"` + } `json:"fields"` +} + // BdevAioCreateParams holds the parameters required to create an AIO Block Device type BdevAioCreateParams struct { Name string `json:"name"`