add option for default handling, use 'delete' as default
This commit is contained in:
parent
9607c61390
commit
164f97734b
@ -26,11 +26,12 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint")
|
||||
nodeID = flag.String("nodeid", "", "node id")
|
||||
mountPermissions = flag.Uint64("mount-permissions", 0, "mounted folder permissions")
|
||||
driverName = flag.String("drivername", nfs.DefaultDriverName, "name of the driver")
|
||||
workingMountDir = flag.String("working-mount-dir", "/tmp", "working directory for provisioner to mount nfs shares temporarily")
|
||||
endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint")
|
||||
nodeID = flag.String("nodeid", "", "node id")
|
||||
mountPermissions = flag.Uint64("mount-permissions", 0, "mounted folder permissions")
|
||||
driverName = flag.String("drivername", nfs.DefaultDriverName, "name of the driver")
|
||||
workingMountDir = flag.String("working-mount-dir", "/tmp", "working directory for provisioner to mount nfs shares temporarily")
|
||||
defaultOnDeletePolicy = flag.String("default-ondelete-policy", "delete", "default policy for deleting subdirectories when deleting a volume")
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -50,11 +51,12 @@ func main() {
|
||||
|
||||
func handle() {
|
||||
driverOptions := nfs.DriverOptions{
|
||||
NodeID: *nodeID,
|
||||
DriverName: *driverName,
|
||||
Endpoint: *endpoint,
|
||||
MountPermissions: *mountPermissions,
|
||||
WorkingMountDir: *workingMountDir,
|
||||
NodeID: *nodeID,
|
||||
DriverName: *driverName,
|
||||
Endpoint: *endpoint,
|
||||
MountPermissions: *mountPermissions,
|
||||
WorkingMountDir: *workingMountDir,
|
||||
DefaultOnDeletePolicy: *defaultOnDeletePolicy,
|
||||
}
|
||||
d := nfs.NewDriver(&driverOptions)
|
||||
d.Run(false)
|
||||
|
||||
@ -99,6 +99,7 @@ func (cs *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
|
||||
case paramServer:
|
||||
case paramShare:
|
||||
case paramSubDir:
|
||||
case paramOnDelete:
|
||||
case pvcNamespaceKey:
|
||||
case pvcNameKey:
|
||||
case pvNameKey:
|
||||
@ -115,7 +116,7 @@ func (cs *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
|
||||
}
|
||||
}
|
||||
|
||||
nfsVol, err := newNFSVolume(name, reqCapacity, parameters)
|
||||
nfsVol, err := newNFSVolume(name, reqCapacity, parameters, cs.Driver.defaultOnDeletePolicy)
|
||||
if err != nil {
|
||||
return nil, status.Error(codes.InvalidArgument, err.Error())
|
||||
}
|
||||
@ -190,6 +191,10 @@ func (cs *ControllerServer) DeleteVolume(ctx context.Context, req *csi.DeleteVol
|
||||
}
|
||||
}
|
||||
|
||||
if nfsVol.onDelete == "" {
|
||||
nfsVol.onDelete = cs.Driver.defaultOnDeletePolicy
|
||||
}
|
||||
|
||||
deleteSubdirOnVolumeDelete := nfsVol.onDelete != "retain"
|
||||
|
||||
if deleteSubdirOnVolumeDelete {
|
||||
@ -377,7 +382,7 @@ func (cs *ControllerServer) copyVolume(ctx context.Context, req *csi.CreateVolum
|
||||
}
|
||||
|
||||
// newNFSVolume Convert VolumeCreate parameters to an nfsVolume
|
||||
func newNFSVolume(name string, size int64, params map[string]string) (*nfsVolume, error) {
|
||||
func newNFSVolume(name string, size int64, params map[string]string, defaultOnDeletePolicy string) (*nfsVolume, error) {
|
||||
var server, baseDir, subDir, onDelete string
|
||||
subDirReplaceMap := map[string]string{}
|
||||
|
||||
@ -421,7 +426,11 @@ func newNFSVolume(name string, size int64, params map[string]string) (*nfsVolume
|
||||
}
|
||||
|
||||
if onDelete == "" {
|
||||
vol.onDelete = "delete"
|
||||
if defaultOnDeletePolicy == "" {
|
||||
vol.onDelete = "delete"
|
||||
} else {
|
||||
vol.onDelete = defaultOnDeletePolicy
|
||||
}
|
||||
} else {
|
||||
if (onDelete != "retain") && (onDelete != "delete") {
|
||||
return nil, fmt.Errorf("%v is not a valid value for %v", onDelete, paramOnDelete)
|
||||
|
||||
@ -661,7 +661,7 @@ func TestNewNFSVolume(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, test := range cases {
|
||||
vol, err := newNFSVolume(test.name, test.size, test.params)
|
||||
vol, err := newNFSVolume(test.name, test.size, test.params, "delete")
|
||||
if !reflect.DeepEqual(err, test.expectErr) {
|
||||
t.Errorf("[test: %s] Unexpected error: %v, expected error: %v", test.desc, err, test.expectErr)
|
||||
}
|
||||
|
||||
@ -27,20 +27,22 @@ import (
|
||||
|
||||
// DriverOptions defines driver parameters specified in driver deployment
|
||||
type DriverOptions struct {
|
||||
NodeID string
|
||||
DriverName string
|
||||
Endpoint string
|
||||
MountPermissions uint64
|
||||
WorkingMountDir string
|
||||
NodeID string
|
||||
DriverName string
|
||||
Endpoint string
|
||||
MountPermissions uint64
|
||||
WorkingMountDir string
|
||||
DefaultOnDeletePolicy string
|
||||
}
|
||||
|
||||
type Driver struct {
|
||||
name string
|
||||
nodeID string
|
||||
version string
|
||||
endpoint string
|
||||
mountPermissions uint64
|
||||
workingMountDir string
|
||||
name string
|
||||
nodeID string
|
||||
version string
|
||||
endpoint string
|
||||
mountPermissions uint64
|
||||
workingMountDir string
|
||||
defaultOnDeletePolicy string
|
||||
|
||||
//ids *identityServer
|
||||
ns *NodeServer
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user