in pkg/nfs/controllerserver.go [635:668]
func newNFSSnapshot(name string, params map[string]string, vol *nfsVolume) (*nfsSnapshot, error) {
server := vol.server
baseDir := vol.baseDir
for k, v := range params {
switch strings.ToLower(k) {
case paramServer:
server = v
case paramShare:
baseDir = v
default:
return nil, status.Errorf(codes.InvalidArgument, fmt.Sprintf("invalid parameter %q in snapshot storage class", k))
}
}
if server == "" {
return nil, fmt.Errorf("%v is a required parameter", paramServer)
}
snapshot := &nfsSnapshot{
server: server,
baseDir: baseDir,
uuid: name,
}
if vol.subDir != "" {
snapshot.src = vol.subDir
}
if vol.uuid != "" {
snapshot.src = vol.uuid
}
if snapshot.src == "" {
return nil, fmt.Errorf("missing required source volume name")
}
snapshot.id = getSnapshotIDFromNfsSnapshot(snapshot)
return snapshot, nil
}