Skip to content

Commit

Permalink
CR
Browse files Browse the repository at this point in the history
  • Loading branch information
budevg committed Nov 25, 2024
1 parent 79349c7 commit 30825c9
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 31 deletions.
2 changes: 1 addition & 1 deletion cloud/blockstore/tests/csi_driver/e2e_tests_nfs/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def test_volume_lifecycle_local_fs():
pod_names = ["example-pod-1", "example-pod-2"]
pod_ids = ["deadbeef1", "deadbeef2"]

env, run = csi.init(vm_mode="mount", local_fs_ids=[fs_name])
env, run = csi.init(vm_mode=True, local_fs_ids=[fs_name])
try:
env.csi.create_volume(name=fs_name, size=fs_size, is_nfs=True)
env.csi.stage_volume(fs_name, "mount", is_nfs=True)
Expand Down
6 changes: 3 additions & 3 deletions cloud/blockstore/tests/csi_driver/lib/csi_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def _controller_run(self, *args):
def create_volume(self, name: str, size: int, is_nfs: bool = False):
args = ["createvolume", "--name", name, "--size", str(size)]
if is_nfs:
args += ["--nfs-backend"]
args += ["--backend", "nfs"]

return self._controller_run(*args)

Expand All @@ -177,7 +177,7 @@ def delete_volume(self, name: str):
def stage_volume(self, volume_id: str, access_type: str, is_nfs: bool = False):
args = ["stagevolume", "--volume-id", volume_id, "--access-type", access_type]
if is_nfs:
args += ["--nfs-backend"]
args += ["--backend", "nfs"]

return self._node_run(*args)

Expand Down Expand Up @@ -218,7 +218,7 @@ def publish_volume(
args += ["--volume-mount-group", volume_mount_group]

if is_nfs:
args += ["--nfs-backend"]
args += ["--backend", "nfs"]

return self._node_run(*args)

Expand Down
69 changes: 42 additions & 27 deletions cloud/blockstore/tools/csi_driver/client/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"context"
"encoding/json"
"errors"
"fmt"
"log"
"net"
Expand All @@ -17,6 +18,28 @@ import (

////////////////////////////////////////////////////////////////////////////////

type BackendValue string

func (b *BackendValue) String() string {
return string(*b)
}

func (b *BackendValue) Set(val string) error {
switch val {
case "nbs", "nfs":
*b = BackendValue(val)
return nil
default:
return errors.New(`must be one of "nbs", "nfs"`)
}
}

func (b *BackendValue) Type() string {
return "string"
}

////////////////////////////////////////////////////////////////////////////////

func dialGrpcContext(
ctx context.Context,
endpoint string,
Expand Down Expand Up @@ -67,7 +90,7 @@ func newControllerClient(
func newCreateVolumeCommand(endpoint *string) *cobra.Command {
var name string
var size int64
var nfsBackend bool
backend := BackendValue("nbs")
cmd := cobra.Command{
Use: "createvolume",
Short: "Send create volume request to the controller",
Expand All @@ -93,9 +116,8 @@ func newCreateVolumeCommand(endpoint *string) *cobra.Command {
},
},
}
parameters := make(map[string]string)
if nfsBackend {
parameters["backend"] = "nfs"
parameters := map[string]string{
"backend": string(backend),
}

response, err := client.CreateVolume(
Expand Down Expand Up @@ -146,11 +168,10 @@ func newCreateVolumeCommand(endpoint *string) *cobra.Command {
0,
"The size of the disk in bytes",
)
cmd.Flags().BoolVar(
&nfsBackend,
"nfs-backend",
false,
"Use nfs backend",
cmd.Flags().Var(
&backend,
"backend",
"Specify backend to use [nfs, nbs]",
)
err := cmd.MarkFlagRequired("name")
if err != nil {
Expand Down Expand Up @@ -238,7 +259,7 @@ func getTargetPath(podId string, volumeId string, accessType string) string {

func newNodeStageVolumeCommand(endpoint *string) *cobra.Command {
var volumeId, stagingTargetPath, accessType string
var nfsBackend bool
backend := BackendValue("nbs")
cmd := cobra.Command{
Use: "stagevolume",
Short: "Send stage volume request to the CSI node",
Expand All @@ -255,9 +276,7 @@ func newNodeStageVolumeCommand(endpoint *string) *cobra.Command {

volumeContext := map[string]string{
"instanceId": "example-instance-id",
}
if nfsBackend {
volumeContext["backend"] = "nfs"
"backend": string(backend),
}

accessMode := csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER
Expand Down Expand Up @@ -296,11 +315,10 @@ func newNodeStageVolumeCommand(endpoint *string) *cobra.Command {
"mount",
"mount or block access type",
)
cmd.Flags().BoolVar(
&nfsBackend,
"nfs-backend",
false,
"Use nfs backend",
cmd.Flags().Var(
&backend,
"backend",
"Specify backend to use [nfs, nbs]",
)
err := cmd.MarkFlagRequired("volume-id")
if err != nil {
Expand All @@ -314,7 +332,7 @@ func newPublishVolumeCommand(endpoint *string) *cobra.Command {
var accessType string
var readOnly bool
var volumeMountGroup string
var nfsBackend bool
backend := BackendValue("nbs")
cmd := cobra.Command{
Use: "publishvolume",
Short: "Send publish volume request to the CSI node",
Expand All @@ -338,9 +356,7 @@ func newPublishVolumeCommand(endpoint *string) *cobra.Command {
"storage.kubernetes.io/csiProvisionerIdentity": "someIdentity",
"instanceId": "example-instance-id",
"fsType": fsType,
}
if nfsBackend {
volumeContext["backend"] = "nfs"
"backend": string(backend),
}

accessMode := csi.VolumeCapability_AccessMode_SINGLE_NODE_WRITER
Expand Down Expand Up @@ -409,11 +425,10 @@ func newPublishVolumeCommand(endpoint *string) *cobra.Command {
"",
"fs group id",
)
cmd.Flags().BoolVar(
&nfsBackend,
"nfs-backend",
false,
"Use nfs bacend",
cmd.Flags().Var(
&backend,
"backend",
"Specify backend to use [nfs, nbs]",
)

err := cmd.MarkFlagRequired("volume-id")
Expand Down

0 comments on commit 30825c9

Please sign in to comment.