nfs

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2024 License: MIT Imports: 3 Imported by: 1

Documentation

Overview

Package nfs from common/admin contains a set of APIs used to interact with and administer NFS support for ceph clusters.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Admin

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

Admin is used to administer ceph nfs features.

func NewFromConn

func NewFromConn(conn ccom.RadosCommander) *Admin

NewFromConn creates an new management object from a preexisting rados connection. The existing connection can be rados.Conn or any type implementing the RadosCommander interface.

func (*Admin) CreateCephFSExport

func (nfsa *Admin) CreateCephFSExport(spec CephFSExportSpec) (
	*ExportResult, error)

CreateCephFSExport will create a new NFS export for a CephFS file system.

Similar To:

ceph nfs export create cephfs

func (*Admin) ExportInfo

func (nfsa *Admin) ExportInfo(clusterID, pseudoPath string) (ExportInfo, error)

ExportInfo will return a structure describing the export specified by it's pseudo-path.

Similar To:

ceph nfs export info

func (*Admin) ListDetailedExports

func (nfsa *Admin) ListDetailedExports(clusterID string) ([]ExportInfo, error)

ListDetailedExports will return a list of exports with details.

Similar To:

ceph nfs export ls --detailed

func (*Admin) RemoveExport

func (nfsa *Admin) RemoveExport(clusterID, pseudoPath string) error

RemoveExport will remove an NFS export based on the pseudo-path of the export.

Similar To:

ceph nfs export rm

type CephFSExportSpec

type CephFSExportSpec struct {
	FileSystemName string     `json:"fsname"`
	ClusterID      string     `json:"cluster_id"`
	PseudoPath     string     `json:"pseudo_path"`
	Path           string     `json:"path,omitempty"`
	ReadOnly       bool       `json:"readonly"`
	ClientAddr     []string   `json:"client_addr,omitempty"`
	Squash         SquashMode `json:"squash,omitempty"`
	SecType        []SecType  `json:"sectype,omitempty"`
}

CephFSExportSpec is used to specify the parameters used to create a new CephFS based export.

type ClientInfo

type ClientInfo struct {
	Addresses  []string   `json:"addresses"`
	AccessType string     `json:"access_type"`
	Squash     SquashMode `json:"squash"`
}

ClientInfo describes per-client parameters of an export.

type ExportInfo

type ExportInfo struct {
	ExportID      int64        `json:"export_id"`
	Path          string       `json:"path"`
	ClusterID     string       `json:"cluster_id"`
	PseudoPath    string       `json:"pseudo"`
	AccessType    string       `json:"access_type"`
	Squash        SquashMode   `json:"squash"`
	SecurityLabel bool         `json:"security_label"`
	Protocols     []int        `json:"protocols"`
	Transports    []string     `json:"transports"`
	FSAL          FSALInfo     `json:"fsal"`
	Clients       []ClientInfo `json:"clients"`
	SecType       []SecType    `json:"sectype"`
}

ExportInfo describes an NFS export.

type ExportResult

type ExportResult struct {
	Bind           string `json:"bind"`
	FileSystemName string `json:"fs"`
	Path           string `json:"path"`
	ClusterID      string `json:"cluster"`
	Mode           string `json:"mode"`
}

ExportResult is returned along with newly created exports.

type FSALInfo

type FSALInfo struct {
	Name           string `json:"name"`
	UserID         string `json:"user_id"`
	FileSystemName string `json:"fs_name"`
}

FSALInfo describes NFS-Ganesha specific FSAL properties of an export.

type SecType

type SecType string

SecType indicates the kind of security/authentication to be used by an export.

const (
	SysSec   SecType = "sys"
	NoneSec  SecType = "none"
	Krb5Sec  SecType = "krb5"
	Krb5iSec SecType = "krb5i"
	Krb5pSec SecType = "krb5p"
)

src: https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/config_samples/export.txt

type SquashMode

type SquashMode string

SquashMode indicates the kind of user-id squashing performed on an export.

const (
	// NoneSquash performs no id squashing.
	NoneSquash SquashMode = "None"
	// RootSquash performs squashing of root user (with any gid).
	RootSquash SquashMode = "Root"
	// AllSquash performs squashing of all users.
	AllSquash SquashMode = "All"
	// RootIDSquash performs squashing of root uid/gid.
	RootIDSquash SquashMode = "RootId"
	// NoRootSquash is equivalent to NoneSquash
	NoRootSquash = NoneSquash
	// Unspecifiedquash
	Unspecifiedquash SquashMode = ""
)

src: https://github.com/nfs-ganesha/nfs-ganesha/blob/next/src/config_samples/export.txt

Jump to

Keyboard shortcuts

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