filesystem

package
v2.0.0-alpha.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2023 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ValidatePathWindows

func ValidatePathWindows(path string) error

Types

type CreateSymlinkRequest

type CreateSymlinkRequest struct {
	// The path of the existing directory to be linked.
	// All special characters allowed by Windows in path names will be allowed
	// except for restrictions noted below. For details, please check:
	// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
	//
	// Restrictions:
	// Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
	// The path prefix needs needs to match the paths specified as
	// kubelet-csi-plugins-path parameter of csi-proxy.
	// UNC paths of the form "\\server\share\path\file" are not allowed.
	// All directory separators need to be backslash character: "\".
	// Characters: .. / : | ? * in the path are not allowed.
	// source_path cannot already exist in the host filesystem.
	// Maximum path length will be capped to 260 characters.
	SourcePath string

	// Target path is the location of the new directory entry to be created in the host's filesystem.
	// All special characters allowed by Windows in path names will be allowed
	// except for restrictions noted below. For details, please check:
	// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
	//
	// Restrictions:
	// Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
	// The path prefix needs to match the paths specified as
	// kubelet-pod-path parameter of csi-proxy.
	// UNC paths of the form "\\server\share\path\file" are not allowed.
	// All directory separators need to be backslash character: "\".
	// Characters: .. / : | ? * in the path are not allowed.
	// target_path needs to exist as a directory in the host that is empty.
	// target_path cannot be a symbolic link.
	// Maximum path length will be capped to 260 characters.
	TargetPath string
}

type CreateSymlinkResponse

type CreateSymlinkResponse struct {
}

type Filesystem

type Filesystem struct {
	// contains filtered or unexported fields
}

func New

func New(hostAPI filesystemapi.HostAPI) (*Filesystem, error)
func (f *Filesystem) CreateSymlink(ctx context.Context, request *CreateSymlinkRequest) (*CreateSymlinkResponse, error)
func (f *Filesystem) IsSymlink(ctx context.Context, request *IsSymlinkRequest) (*IsSymlinkResponse, error)

func (*Filesystem) Mkdir

func (f *Filesystem) Mkdir(ctx context.Context, request *MkdirRequest) (*MkdirResponse, error)

func (*Filesystem) PathExists

func (f *Filesystem) PathExists(ctx context.Context, request *PathExistsRequest) (*PathExistsResponse, error)

PathExists checks if the given path exists on the host.

func (*Filesystem) PathValid

func (f *Filesystem) PathValid(ctx context.Context, request *PathValidRequest) (*PathValidResponse, error)

func (*Filesystem) Rmdir

func (f *Filesystem) Rmdir(ctx context.Context, request *RmdirRequest) (*RmdirResponse, error)

func (*Filesystem) RmdirContents

func (f *Filesystem) RmdirContents(ctx context.Context, request *RmdirContentsRequest) (*RmdirContentsResponse, error)

type Interface

type Interface interface {
	// CreateSymlink creates a symbolic link called target_path that points to source_path
	// in the host filesystem (target_path is the name of the symbolic link created,
	// source_path is the existing path).
	CreateSymlink(context.Context, *CreateSymlinkRequest) (*CreateSymlinkResponse, error)

	// IsSymlink checks if a given path is a symlink.
	IsSymlink(context.Context, *IsSymlinkRequest) (*IsSymlinkResponse, error)

	// Mkdir creates a directory at the requested path in the host filesystem.
	Mkdir(context.Context, *MkdirRequest) (*MkdirResponse, error)

	// PathExists checks if the requested path exists in the host filesystem.
	PathExists(context.Context, *PathExistsRequest) (*PathExistsResponse, error)

	// PathValid checks if the given path is accessible.
	PathValid(context.Context, *PathValidRequest) (*PathValidResponse, error)

	// Rmdir removes the directory at the requested path in the host filesystem.
	// This may be used for unlinking a symlink created through CreateSymlink.
	Rmdir(context.Context, *RmdirRequest) (*RmdirResponse, error)

	// RmdirContents removes the contents of a directory in the host filesystem.
	// Unlike Rmdir it won't delete the requested path, it'll only delete its contents.
	RmdirContents(context.Context, *RmdirContentsRequest) (*RmdirContentsResponse, error)
}

type IsSymlinkRequest

type IsSymlinkRequest struct {
	// The path whose existence as a symlink we want to check in the host's filesystem
	Path string
}

type IsSymlinkResponse

type IsSymlinkResponse struct {
	// Indicates whether the path in IsSymlinkRequest is a symlink
	IsSymlink bool
}

type MkdirRequest

type MkdirRequest struct {
	// The path to create in the host's filesystem.
	// All special characters allowed by Windows in path names will be allowed
	// except for restrictions noted below. For details, please check:
	// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
	// Non-existent parent directories in the path will be automatically created.
	// Directories will be created with Read and Write privileges of the Windows
	// User account under which csi-proxy is started (typically LocalSystem).
	//
	// Restrictions:
	// Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
	// Depending on the context parameter of this function, the path prefix needs
	// to match the paths specified either as kubelet-csi-plugins-path
	// or as kubelet-pod-path parameters of csi-proxy.
	// The path parameter cannot already exist on host filesystem.
	// UNC paths of the form "\\server\share\path\file" are not allowed.
	// All directory separators need to be backslash character: "\".
	// Characters: .. / : | ? * in the path are not allowed.
	// Maximum path length will be capped to 260 characters.
	Path string
}

type MkdirResponse

type MkdirResponse struct {
}

type PathExistsRequest

type PathExistsRequest struct {
	// The path whose existence we want to check in the host's filesystem
	Path string
}

type PathExistsResponse

type PathExistsResponse struct {
	// Indicates whether the path in PathExistsRequest exists in the host's filesystem
	Exists bool
}

type PathValidRequest

type PathValidRequest struct {
	// The path whose validity we want to check in the host's filesystem
	Path string
}

type PathValidResponse

type PathValidResponse struct {
	// Indicates whether the path in PathValidRequest is a valid path
	Valid bool
}

type RmdirContentsRequest

type RmdirContentsRequest struct {
	// The path to remove in the host's filesystem.
	// All special characters allowed by Windows in path names will be allowed
	// except for restrictions noted below. For details, please check:
	// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
	//
	// Restrictions:
	// Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
	// Depending on the context parameter of this function, the path prefix needs
	// to match the paths specified either as kubelet-csi-plugins-path
	// or as kubelet-pod-path parameters of csi-proxy.
	// UNC paths of the form "\\server\share\path\file" are not allowed.
	// All directory separators need to be backslash character: "\".
	// Characters: .. / : | ? * in the path are not allowed.
	// Path cannot be a file of type symlink.
	// Maximum path length will be capped to 260 characters.
	Path string
}

type RmdirContentsResponse

type RmdirContentsResponse struct {
}

type RmdirRequest

type RmdirRequest struct {
	// The path to remove in the host's filesystem.
	// All special characters allowed by Windows in path names will be allowed
	// except for restrictions noted below. For details, please check:
	// https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
	//
	// Restrictions:
	// Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted.
	// Depending on the context parameter of this function, the path prefix needs
	// to match the paths specified either as kubelet-csi-plugins-path
	// or as kubelet-pod-path parameters of csi-proxy.
	// UNC paths of the form "\\server\share\path\file" are not allowed.
	// All directory separators need to be backslash character: "\".
	// Characters: .. / : | ? * in the path are not allowed.
	// Path cannot be a file of type symlink.
	// Maximum path length will be capped to 260 characters.
	Path string

	// Force remove all contents under path (if any).
	Force bool
}

type RmdirResponse

type RmdirResponse struct {
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL