From 5168eb426f4190c603bae732004d8fc5b1056589 Mon Sep 17 00:00:00 2001 From: Artsiom Koltun Date: Fri, 9 Feb 2024 14:30:50 +0100 Subject: [PATCH] feat(storage/nvme): add get backend nvme controller cmd Signed-off-by: Artsiom Koltun --- README.md | 2 ++ cmd/storage/backend/nvme_controller.go | 2 +- docker-compose.yml | 2 +- storage/backend/nvme_controller_test.go | 8 ++------ 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c337090..e1556a4 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ alias dpu="docker run --rm --network host ghcr.io/opiproject/godpu:main" # connect to remote nvme/tcp controller nvmf0=$(dpu storage create backend nvme controller --id nvmf0 --multipath disable) path0=$(dpu storage create backend nvme path tcp --controller "$nvmf0" --id path0 --ip "11.11.11.2" --port 4444 --nqn nqn.2016-06.io.spdk:cnode1 --hostnqn nqn.2014-08.org.nvmexpress:uuid:feb98abe-d51f-40c8-b348-2753f3571d3c) +dpu storage get backend nvme controller --name $nvmf0 # get remote controller dpu storage get backend nvme controller --name $nvmf0 @@ -97,6 +98,7 @@ dpu storage get backend nvme controller --name $nvmf0 # connect to local nvme/pcie ssd controller nvmf1=$(dpu storage create backend nvme controller --id nvmf1 --multipath disable) path1=$(dpu storage create backend nvme path pcie --controller "$nvmf1" --id path1 --bdf "0000:40:00.0") +dpu storage get backend nvme controller --name $nvmf1 # expose volume over nvme/tcp controller ss0=$(dpu storage create frontend nvme subsystem --id subsys0 --nqn "nqn.2022-09.io.spdk:opitest0") diff --git a/cmd/storage/backend/nvme_controller.go b/cmd/storage/backend/nvme_controller.go index 8c26955..a7a5740 100644 --- a/cmd/storage/backend/nvme_controller.go +++ b/cmd/storage/backend/nvme_controller.go @@ -122,7 +122,7 @@ func newGetNvmeControllerCommand() *cobra.Command { }, } - cmd.Flags().StringVar(&name, "name", "", "name of deleted remote controller") + cmd.Flags().StringVar(&name, "name", "", "name of remote controller to get") cobra.CheckErr(cmd.MarkFlagRequired("name")) diff --git a/docker-compose.yml b/docker-compose.yml index d7e87ce..03d1432 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -185,7 +185,7 @@ services: command: | '/dpu storage test --addr opi-spdk-server:50051 && \ nvmf0=$$(/dpu storage create backend nvme controller --addr=opi-spdk-server:50051 --id nvmf0 --multipath failover) && \ - /dpu storage get backend nvme controller --addr=opi-spdk-server:50051 --name "$nvmf0" && \ + /dpu storage get backend nvme controller --addr=opi-spdk-server:50051 --name "$$nvmf0" && \ path0=$$(/dpu storage create backend nvme path tcp --addr=opi-spdk-server:50051 --controller "$$nvmf0" --id path0 --ip $$(getent hosts spdk | cut -d" " -f1) --port 4444 --nqn nqn.2016-06.io.spdk:cnode1 --hostnqn nqn.2014-08.org.nvmexpress:uuid:feb98abe-d51f-40c8-b348-2753f3571d3c) && \ ss0=$$(/dpu storage create frontend nvme subsystem --addr=opi-spdk-server:50051 --id subsys0 --nqn "nqn.2022-09.io.spdk:opitest1") && \ ctrl0=$$(/dpu storage create frontend nvme controller tcp --addr=opi-spdk-server:50051 --id ctrl0 --ip "127.0.0.1" --port 4420 --subsystem "$$ss0") && \ diff --git a/storage/backend/nvme_controller_test.go b/storage/backend/nvme_controller_test.go index ec15b96..57e1341 100644 --- a/storage/backend/nvme_controller_test.go +++ b/storage/backend/nvme_controller_test.go @@ -175,7 +175,7 @@ func TestDeleteNvmeController(t *testing.T) { } func TestGetNvmeController(t *testing.T) { - testControllerName := "remotenvme0" + testControllerName := "remotenvmeget" testRequest := &pb.GetNvmeRemoteControllerRequest{ Name: testControllerName, } @@ -186,7 +186,6 @@ func TestGetNvmeController(t *testing.T) { tests := map[string]struct { giveClientErr error giveConnectorErr error - giveResponse *pb.NvmeRemoteController wantErr error wantRequest *pb.GetNvmeRemoteControllerRequest wantResponse *pb.NvmeRemoteController @@ -195,7 +194,6 @@ func TestGetNvmeController(t *testing.T) { "successful call": { giveConnectorErr: nil, giveClientErr: nil, - giveResponse: proto.Clone(testController).(*pb.NvmeRemoteController), wantErr: nil, wantRequest: proto.Clone(testRequest).(*pb.GetNvmeRemoteControllerRequest), wantResponse: proto.Clone(testController).(*pb.NvmeRemoteController), @@ -204,7 +202,6 @@ func TestGetNvmeController(t *testing.T) { "client err": { giveConnectorErr: nil, giveClientErr: errors.New("Some client error"), - giveResponse: nil, wantErr: errors.New("Some client error"), wantRequest: proto.Clone(testRequest).(*pb.GetNvmeRemoteControllerRequest), wantResponse: nil, @@ -213,7 +210,6 @@ func TestGetNvmeController(t *testing.T) { "connector err": { giveConnectorErr: errors.New("Some conn error"), giveClientErr: nil, - giveResponse: nil, wantErr: errors.New("Some conn error"), wantRequest: nil, wantResponse: nil, @@ -229,7 +225,7 @@ func TestGetNvmeController(t *testing.T) { mockClient := mocks.NewNvmeRemoteControllerServiceClient(t) if tt.wantRequest != nil { mockClient.EXPECT().GetNvmeRemoteController(ctx, tt.wantRequest). - Return(tt.giveResponse, tt.giveClientErr) + Return(proto.Clone(tt.wantResponse).(*pb.NvmeRemoteController), tt.giveClientErr) } connClosed := false