func newNFSSnapshot()

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
}