daos

package
v0.0.0-...-7355706 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2025 License: BSD-2-Clause-Patent Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultCartTimeout defines the default timeout for cart operations.
	DefaultCartTimeout = 60 * time.Second // Should use CRT_DEFAULT_TIMEOUT_S but it's not exported

	// MaxAttributeNameLength defines the maximum length of an attribute name.
	MaxAttributeNameLength = C.DAOS_ATTR_NAME_MAX
)
View Source
const (
	// PropEntryAllocedOID is the highest allocated OID.
	PropEntryAllocedOID = C.DAOS_PROP_ENTRY_ALLOCED_OID
	// PropEntryChecksum is the checksum property.
	PropEntryChecksum = C.DAOS_PROP_ENTRY_CKSUM
	// PropEntryChecksumSize is the checksum size property.
	PropEntryChecksumSize = C.DAOS_PROP_ENTRY_CKSUM_SIZE
	// PropEntryCompression is the compression property.
	PropEntryCompression = C.DAOS_PROP_ENTRY_COMPRESS
	// PropEntryDedupe is the dedupe property.
	PropEntryDedupe = C.DAOS_PROP_ENTRY_DEDUP
	// PropEntryDedupThreshold is the dedupe threshold property.
	PropEntryDedupeThreshold = C.DAOS_PROP_ENTRY_DEDUP_THRESHOLD
	// PropEntryECCellSize is the EC cell size property.
	PropEntryECCellSize = C.DAOS_PROP_ENTRY_EC_CELL_SZ
	// PropEntryECPerfDomainAff is the EC performance domain affinity property.
	PropEntryECPerfDomainAff = C.DAOS_PROP_ENTRY_EC_PDA
	// PropEntryEncryption is the encryption property.
	PropEntryEncryption = C.DAOS_PROP_ENTRY_ENCRYPT
	// PropEntryGlobalVersion is the global version property.
	PropEntryGlobalVersion = C.DAOS_PROP_ENTRY_GLOBAL_VERSION
	// PropEntryObjectVersion is the object layout version property.
	PropEntryObjectVersion = C.DAOS_PROP_ENTRY_OBJ_VERSION
	// PropEntryGroup is the group property.
	PropEntryGroup = C.DAOS_PROP_ENTRY_GROUP
	// PropEntryLabel is the label property.
	PropEntryLabel = C.DAOS_PROP_ENTRY_LABEL
	// PropEntryLayout is the layout property.
	PropEntryLayoutType = C.DAOS_PROP_ENTRY_LAYOUT_TYPE
	// PropEntryLayoutVersion is the layout version property.
	PropEntryLayoutVersion = C.DAOS_PROP_ENTRY_LAYOUT_VER
	// PropEntryOwner is the owner property.
	PropEntryOwner = C.DAOS_PROP_ENTRY_OWNER
	// PropEntryRedunFactor is the redundancy factor property.
	PropEntryRedunFactor = C.DAOS_PROP_ENTRY_REDUN_FAC
	// PropEntryRedunLevel is the redundancy level property.
	PropEntryRedunLevel = C.DAOS_PROP_ENTRY_REDUN_LVL
	// PropEntryRedunPerfDomainAff is the redundancy performance domain affinity property.
	PropEntryRedunPerfDomainAff = C.DAOS_PROP_ENTRY_RP_PDA
	// PropEntrySnapshotMax is the snapshot max property.
	PropEntrySnapshotMax = C.DAOS_PROP_ENTRY_SNAPSHOT_MAX
	// PropEntryServerChecksum is the server checksum property.
	PropEntryServerChecksum = C.DAOS_PROP_ENTRY_SRV_CKSUM
	// PropEntryStatus is the status property.
	PropEntryStatus = C.DAOS_PROP_ENTRY_STATUS
)
View Source
const (
	// ContainerOpenFlagReadOnly opens the container in read-only mode.
	ContainerOpenFlagReadOnly ContainerOpenFlag = C.DAOS_COO_RO
	// ContainerOpenFlagReadWrite opens the container in read-write mode.
	ContainerOpenFlagReadWrite ContainerOpenFlag = C.DAOS_COO_RW
	// ContainerOpenFlagExclusive opens the container in exclusive read-write mode.
	ContainerOpenFlagExclusive ContainerOpenFlag = C.DAOS_COO_EX
	// ContainerOpenFlagForce skips container health checks.
	ContainerOpenFlagForce ContainerOpenFlag = C.DAOS_COO_FORCE
	// ContainerOpenFlagReadOnlyMetadata skips container metadata updates.
	ContainerOpenFlagReadOnlyMetadata ContainerOpenFlag = C.DAOS_COO_RO_MDSTATS
	// ContainerOpenFlagEvict evicts the current user's open handles.
	ContainerOpenFlagEvict ContainerOpenFlag = C.DAOS_COO_EVICT
	// ContainerOpenFlagEvictAll evicts all open handles.
	ContainerOpenFlagEvictAll ContainerOpenFlag = C.DAOS_COO_EVICT_ALL

	// ContainerLayoutUnknown represents an unknown container layout.
	ContainerLayoutUnknown ContainerLayout = C.DAOS_PROP_CO_LAYOUT_UNKNOWN
	// ContainerLayoutPOSIX represents a POSIX container layout.
	ContainerLayoutPOSIX ContainerLayout = C.DAOS_PROP_CO_LAYOUT_POSIX
	// ContainerLayoutHDF5 represents an HDF5 container layout.
	ContainerLayoutHDF5 ContainerLayout = C.DAOS_PROP_CO_LAYOUT_HDF5
	// ContainerLayoutPython represents a Python container layout.
	ContainerLayoutPython ContainerLayout = C.DAOS_PROP_CO_LAYOUT_PYTHON
	// ContainerLayoutSpark represents a Spark container layout.
	ContainerLayoutSpark ContainerLayout = C.DAOS_PROP_CO_LAYOUT_SPARK
	// ContainerLayoutDatabase represents a database container layout.
	ContainerLayoutDatabase ContainerLayout = C.DAOS_PROP_CO_LAYOUT_DATABASE
	// ContainerLayoutRoot represents a root container layout.
	ContainerLayoutRoot ContainerLayout = C.DAOS_PROP_CO_LAYOUT_ROOT
	// ContainerLayoutSeismic represents a seismic container layout.
	ContainerLayoutSeismic ContainerLayout = C.DAOS_PROP_CO_LAYOUT_SEISMIC
	// ContainerLayoutMeteo represents a meteo container layout.
	ContainerLayoutMeteo ContainerLayout = C.DAOS_PROP_CO_LAYOUT_METEO
)
View Source
const (
	// UnsetLogMask defines an explicitly-unset log mask.
	UnsetLogMask = "UNSET"
	// DefaultDebugMask defines the basic debug mask.
	DefaultDebugMask = "DEBUG,MEM=ERR,OBJECT=ERR,PLACEMENT=ERR"
	// DefaultInfoMask defines the basic info mask.
	DefaultInfoMask = "INFO"
	// DefaultErrorMask defines the basic error mask.
	DefaultErrorMask = "ERROR"
)
View Source
const (
	// DefaultPoolQueryMask defines the default pool query mask.
	DefaultPoolQueryMask = PoolQueryMask(^uint64(0) &^ (C.DPI_ENGINES_ENABLED | C.DPI_ENGINES_DEAD))
	// HealthOnlyPoolQueryMask defines the mask for health-only queries.
	HealthOnlyPoolQueryMask = PoolQueryMask(^uint64(0) &^ (C.DPI_ENGINES_ENABLED | C.DPI_SPACE))

	// PoolQueryOptionSpace retrieves storage space usage as part of the pool query.
	PoolQueryOptionSpace PoolQueryOption = "space"
	// PoolQueryOptionRebuild retrieves pool rebuild status as part of the pool query.
	PoolQueryOptionRebuild PoolQueryOption = "rebuild"
	// PoolQueryOptionEnabledEngines retrieves enabled engines as part of the pool query.
	PoolQueryOptionEnabledEngines PoolQueryOption = "enabled_engines"
	// PoolQueryOptionDisabledEngines retrieves disabled engines as part of the pool query.
	PoolQueryOptionDisabledEngines PoolQueryOption = "disabled_engines"
	// PoolQueryOptionDeadEngines retrieves dead engines as part of the pool query.
	PoolQueryOptionDeadEngines PoolQueryOption = "dead_engines"

	// PoolConnectFlagReadOnly indicates that the connection is read-only.
	PoolConnectFlagReadOnly PoolConnectFlag = C.DAOS_PC_RO
	// PoolConnectFlagReadWrite indicates that the connection is read-write.
	PoolConnectFlagReadWrite PoolConnectFlag = C.DAOS_PC_RW
	// PoolConnectFlagExclusive indicates that the connection is exclusive.
	PoolConnectFlagExclusive PoolConnectFlag = C.DAOS_PC_EX
)
View Source
const (
	// PoolServiceStateCreating indicates that the pool service is being created
	PoolServiceStateCreating = PoolServiceState(mgmtpb.PoolServiceState_Creating)
	// PoolServiceStateReady indicates that the pool service is ready to be used
	PoolServiceStateReady = PoolServiceState(mgmtpb.PoolServiceState_Ready)
	// PoolServiceStateDestroying indicates that the pool service is being destroyed
	PoolServiceStateDestroying = PoolServiceState(mgmtpb.PoolServiceState_Destroying)
	// PoolServiceStateDegraded indicates that the pool service is in a degraded state
	PoolServiceStateDegraded = PoolServiceState(mgmtpb.PoolServiceState_Degraded)
	// PoolServiceStateUnknown indicates that the pool service state is unknown
	PoolServiceStateUnknown = PoolServiceState(mgmtpb.PoolServiceState_Unknown)
)
View Source
const (
	// StorageMediaTypeScm indicates that the media is storage class (persistent) memory
	StorageMediaTypeScm = StorageMediaType(mgmtpb.StorageMediaType_SCM)
	// StorageMediaTypeNvme indicates that the media is NVMe SSD
	StorageMediaTypeNvme = StorageMediaType(mgmtpb.StorageMediaType_NVME)
	// StorageMediaTypeMax indicates the end of the StorageMediaType array
	StorageMediaTypeMax = StorageMediaType(StorageMediaTypeNvme + 1)
)
View Source
const (
	// PoolRebuildStateIdle indicates that the rebuild process is idle.
	PoolRebuildStateIdle = PoolRebuildState(mgmtpb.PoolRebuildStatus_IDLE)
	// PoolRebuildStateDone indicates that the rebuild process has completed.
	PoolRebuildStateDone = PoolRebuildState(mgmtpb.PoolRebuildStatus_DONE)
	// PoolRebuildStateBusy indicates that the rebuild process is in progress.
	PoolRebuildStateBusy = PoolRebuildState(mgmtpb.PoolRebuildStatus_BUSY)
)
View Source
const (
	PoolTargetStateUnknown = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_STATE_UNKNOWN)
	// PoolTargetStateDownOut indicates the target is not available
	PoolTargetStateDownOut = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_DOWN_OUT)
	// PoolTargetStateDown indicates the target is not available, may need rebuild
	PoolTargetStateDown = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_DOWN)
	// PoolTargetStateUp indicates the target is up
	PoolTargetStateUp = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_UP)
	// PoolTargetStateUpIn indicates the target is up and running
	PoolTargetStateUpIn = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_UP_IN)
	// PoolTargetStateNew indicates the target is in an intermediate state (pool map change)
	PoolTargetStateNew = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_NEW)
	// PoolTargetStateDrain indicates the target is being drained
	PoolTargetStateDrain = PoolQueryTargetState(mgmtpb.PoolQueryTargetInfo_DRAIN)
)
View Source
const (
	// PoolPropertyMin before any pool property
	PoolPropertyMin = C.DAOS_PROP_PO_MIN
	// PoolPropertyLabel is a string that a user can associate with a pool.
	PoolPropertyLabel = C.DAOS_PROP_PO_LABEL
	// PoolPropertyACL is the Access Control List for a pool.
	PoolPropertyACL = C.DAOS_PROP_PO_ACL
	// PoolPropertyReservedSpace is the ratio of space that can be reserved
	// on each target for rebuild purposes.
	PoolPropertyReservedSpace = C.DAOS_PROP_PO_SPACE_RB
	// PoolPropertySelfHealing defines the self-healing behavior of the pool.
	PoolPropertySelfHealing = C.DAOS_PROP_PO_SELF_HEAL
	// PoolPropertySpaceReclaim defines the free space reclamation behavior of the pool.
	PoolPropertySpaceReclaim = C.DAOS_PROP_PO_RECLAIM
	// PoolPropertyOwner is the user who acts as the owner of the pool.
	PoolPropertyOwner = C.DAOS_PROP_PO_OWNER
	// PoolPropertyOwnerGroup is the group that acts as the owner of the pool.
	PoolPropertyOwnerGroup = C.DAOS_PROP_PO_OWNER_GROUP
	// PoolPropertyECCellSize is the EC Cell size.
	PoolPropertyECCellSize = C.DAOS_PROP_PO_EC_CELL_SZ
	// PoolPropertyRedunFac defines redundancy factor of the pool.
	PoolPropertyRedunFac = C.DAOS_PROP_PO_REDUN_FAC
	// PoolPropertyECPda is performance domain affinity level of EC object.
	PoolPropertyECPda = C.DAOS_PROP_PO_EC_PDA
	// PoolPropertyRPPda is performance domain affinity level of replicated object.
	PoolPropertyRPPda = C.DAOS_PROP_PO_RP_PDA
	// PoolDataThreshold is the data threshold size for a pool
	PoolDataThresh = C.DAOS_PROP_PO_DATA_THRESH
	//PoolPropertyGlobalVersion is aggregation of pool/container/object/keys version.
	PoolPropertyGlobalVersion = C.DAOS_PROP_PO_GLOBAL_VERSION
	//PoolPropertyUpgradeStatus is pool upgrade status
	PoolPropertyUpgradeStatus = C.DAOS_PROP_PO_UPGRADE_STATUS
	// PoolPropertyScrubMode Checksum scrubbing schedule
	PoolPropertyScrubMode = C.DAOS_PROP_PO_SCRUB_MODE
	// PoolPropertyScrubFreq Checksum scrubbing frequency
	PoolPropertyScrubFreq = C.DAOS_PROP_PO_SCRUB_FREQ
	// PoolPropertyScrubThresh Checksum scrubbing threshold
	PoolPropertyScrubThresh = C.DAOS_PROP_PO_SCRUB_THRESH
	// PoolPropertySvcRedunFac defines redundancy factor of the pool service.
	PoolPropertySvcRedunFac = C.DAOS_PROP_PO_SVC_REDUN_FAC
	// PoolPropertySvcList is the list of pool service replicas.
	PoolPropertySvcList = C.DAOS_PROP_PO_SVC_LIST
	// PoolPropertyCheckpointMode defines the behavior of WAL checkpoints
	PoolPropertyCheckpointMode = C.DAOS_PROP_PO_CHECKPOINT_MODE
	// PoolPropertyCheckpointFreq defines the frequency of timed WAL checkpoints
	PoolPropertyCheckpointFreq = C.DAOS_PROP_PO_CHECKPOINT_FREQ
	// PoolPropertyCheckpointThresh defines the size threshold to trigger WAL checkpoints
	PoolPropertyCheckpointThresh = C.DAOS_PROP_PO_CHECKPOINT_THRESH
	//PoolPropertyPerfDomain is pool performance domain
	PoolPropertyPerfDomain = C.DAOS_PROP_PO_PERF_DOMAIN
	//PoolPropertyReintMode is pool reintegration mode
	PoolPropertyReintMode      = C.DAOS_PROP_PO_REINT_MODE
	PoolPropertySvcOpsEnabled  = C.DAOS_PROP_PO_SVC_OPS_ENABLED
	PoolPropertySvcOpsEntryAge = C.DAOS_PROP_PO_SVC_OPS_ENTRY_AGE
)
View Source
const (
	// PoolSpaceReclaimDisabled sets the PoolPropertySpaceReclaim property to disabled.
	PoolSpaceReclaimDisabled = C.DAOS_RECLAIM_DISABLED
	// PoolSpaceReclaimLazy sets the PoolPropertySpaceReclaim property to lazy.
	PoolSpaceReclaimLazy = C.DAOS_RECLAIM_LAZY
	// PoolSpaceReclaimSnapshot sets the PoolPropertySpaceReclaim property to snapshot.
	PoolSpaceReclaimSnapshot = C.DAOS_RECLAIM_SNAPSHOT
	// PoolSpaceReclaimBatch sets the PoolPropertySpaceReclaim property to batch.
	PoolSpaceReclaimBatch = C.DAOS_RECLAIM_BATCH
	// PoolSpaceReclaimTime sets the PoolPropertySpaceReclaim property to time.
	PoolSpaceReclaimTime = C.DAOS_RECLAIM_TIME
)
View Source
const (
	// PoolSelfHealingAutoExclude sets the self-healing strategy to auto-exclude.
	PoolSelfHealingAutoExclude = C.DAOS_SELF_HEAL_AUTO_EXCLUDE
	// PoolSelfHealingAutoRebuild sets the self-healing strategy to auto-rebuild.
	PoolSelfHealingAutoRebuild = C.DAOS_SELF_HEAL_AUTO_REBUILD
	// PoolSelfHealingDelayRebuild sets the self-healing strategy to delay-rebuild.
	PoolSelfHealingDelayRebuild = C.DAOS_SELF_HEAL_DELAY_REBUILD
)
View Source
const (
	// ECCellMin defines the minimum-allowaable EC cell size.
	ECCellMin = C.DAOS_EC_CELL_MIN
	// ECCellMax defines the maximum-allowaable EC cell size.
	ECCellMax = C.DAOS_EC_CELL_MAX
	// ECCellDefault defines the default EC cell size.
	ECCellDefault = C.DAOS_EC_CELL_DEF
)
View Source
const (
	// MediaTypeScm is the media type for SCM.
	MediaTypeScm = C.DAOS_MEDIA_SCM
	// MediaTypeNvme is the media type for NVMe.
	MediaTypeNvme = C.DAOS_MEDIA_NVME
)
View Source
const (
	// PoolUpgradeStatusNotStarted indicates pool upgrading not started yet.
	PoolUpgradeStatusNotStarted = C.DAOS_UPGRADE_STATUS_NOT_STARTED
	// PoolUpgradeStatusInProgress defines pool upgrading is in progress.
	PoolUpgradeStatusInProgress = C.DAOS_UPGRADE_STATUS_IN_PROGRESS
	//PoolUpgradeStatusCompleted defines pool upgrading completed last time.
	PoolUpgradeStatusCompleted = C.DAOS_UPGRADE_STATUS_COMPLETED
	//PoolUpgradeStatusFailed defines pool upgrading operation failed.
	PoolUpgradeStatusFailed = C.DAOS_UPGRADE_STATUS_FAILED
)
View Source
const (
	// PoolRedunFacMax defines the maximum value of PoolPropertyRedunFac.
	PoolRedunFacMax = C.DAOS_PROP_PO_REDUN_FAC_MAX
	// PoolRedunFacDefault defines the default value of PoolPropertyRedunFac.
	PoolRedunFacDefault = C.DAOS_PROP_PO_REDUN_FAC_DEFAULT
	// PoolSvcRedunFacMax defines the maximum value of PoolPropertySvcRedunFac.
	PoolSvcRedunFacMax = C.DAOS_PROP_PO_SVC_REDUN_FAC_MAX
	// PoolSvcRedunFacDefault defines the default value of PoolPropertySvcRedunFac.
	PoolSvcRedunFacDefault = C.DAOS_PROP_PO_SVC_REDUN_FAC_DEFAULT
	PoolSvcOpsEntryAgeMin  = C.DAOS_PROP_PO_SVC_OPS_ENTRY_AGE_MIN
	PoolSvcOpsEntryAgeMax  = C.DAOS_PROP_PO_SVC_OPS_ENTRY_AGE_MAX
)
View Source
const (
	// DaosMdCapEnv is the name of the environment variable defining the size of a metadata pmem
	// pool/file in MiBs.
	DaosMdCapEnv = C.DAOS_MD_CAP_ENV
	// DefaultDaosMdCapSize is the default size of a metadata pmem pool/file in MiBs.
	DefaultDaosMdCapSize = C.DEFAULT_DAOS_MD_CAP_SIZE
)
View Source
const (
	PoolScrubModeOff   = C.DAOS_SCRUB_MODE_OFF
	PoolScrubModeLazy  = C.DAOS_SCRUB_MODE_LAZY
	PoolScrubModeTimed = C.DAOS_SCRUB_MODE_TIMED
)
View Source
const (
	PoolCheckpointDisabled = C.DAOS_CHECKPOINT_DISABLED
	PoolCheckpointTimed    = C.DAOS_CHECKPOINT_TIMED
	PoolCheckpointLazy     = C.DAOS_CHECKPOINT_LAZY
)
View Source
const (
	PoolPerfDomainRoot   = C.PO_COMP_TP_ROOT
	PoolPerfDomainGrp    = C.PO_COMP_TP_GRP
	PoolPerfDomainNode   = C.PO_COMP_TP_NODE
	PoolPerfDomainRank   = C.PO_COMP_TP_RANK
	PoolPerfDomainTarget = C.PO_COMP_TP_TARGET
)
View Source
const (
	PoolReintModeDataSync    = C.DAOS_REINT_MODE_DATA_SYNC
	PoolReintModeNoDataSync  = C.DAOS_REINT_MODE_NO_DATA_SYNC
	PoolReintModeIncremental = C.DAOS_REINT_MODE_INCREMENTAL
)
View Source
const (
	// ACLPrincipalMaxLen is the maximum length of a principal string.
	ACLPrincipalMaxLen = C.DAOS_ACL_MAX_PRINCIPAL_LEN
)
View Source
const (
	// MaxLabelLength is the maximum length of a label.
	MaxLabelLength = C.DAOS_PROP_LABEL_MAX_LEN
)
View Source
const (
	// ZeroHLCDate is the date of the zero HLC, as
	// defined by D_HLC_START_SEC in src/gurt/hlc.c
	ZeroHLCDate = "2021-01-01 00:00:00 +0000 UTC"
)

Variables

This section is empty.

Functions

func ACLPrincipalIsValid

func ACLPrincipalIsValid(principal string) bool

ACLPrincipalIsValid returns true if the principal is valid.

func DataThreshIsValid

func DataThreshIsValid(size uint64) bool

DataThreshIsValid verifies that the input value meets the required criteria.

func EcCellSizeIsValid

func EcCellSizeIsValid(sz uint64) bool

EcCellSizeIsValid checks EC cell Size to verify that it meets size requirements.

func EcPdaIsValid

func EcPdaIsValid(pda uint64) bool

EcPdaIsValid checks EC performance domain affinity level that it doesn't exceed max unsigned int 32 bits.

func ErrorFromRC

func ErrorFromRC(rc int) error

ErrorFromRC converts a simple DAOS return code into an error.

func GetLogMask

func GetLogMask() string

GetLogMask returns the DAOS logging mask, if set.

func InitLogging

func InitLogging(masks ...string) (func(), error)

InitLogging initializes the DAOS logging system.

func LabelIsValid

func LabelIsValid(label string) bool

LabelIsValid checks a label to verify that it meets length/content requirements.

func PoolDeprecatedProperties

func PoolDeprecatedProperties() map[string]string

func PropValIsUnset

func PropValIsUnset(val SystemPropertyValue) bool

PropValIsUnset returns a bool indicating whether or not the given value is nil or unset.

func RpPdaIsValid

func RpPdaIsValid(pda uint64) bool

RpPdaIsValid checks RP performance domain affinity level that it doesn't exceed max unsigned int 32 bits.

func SetLogMask

func SetLogMask(mask string) error

SetLogMask sets the DAOS logging mask.

func SetObjectClassHelpers

func SetObjectClassHelpers(stringer objClassIDStringer, resolver objClassNameResolver)

SetObjectClassHelpers provides a mechanism for injecting the object API methods into this package without introducing a hard dependency on libdaos. Generally only called from object.go in the api package.

func SystemNameIsValid

func SystemNameIsValid(name string) bool

SystemNameIsValid returns true if the given name is valid for a DAOS system.

Types

type Attribute

type Attribute struct {
	Name  string `json:"name"`
	Value []byte `json:"value,omitempty"`
}

Attribute is a pool or container attribute.

type AttributeList

type AttributeList []*Attribute

AttributeList is a list of attributes.

func (AttributeList) AsList

func (al AttributeList) AsList() []string

AsList returns the attributes list as a sorted list of attribute names.

func (AttributeList) AsMap

func (al AttributeList) AsMap() map[string][]byte

AsMap returns the attributes list as a map.

type BoolPropVal

type BoolPropVal bool

BoolPropVal is a boolean property value.

func NewBoolPropVal

func NewBoolPropVal(defVal bool) *BoolPropVal

NewBoolPropVal returns a new BoolPropVal initialized to a default value.

func (BoolPropVal) Choices

func (pv BoolPropVal) Choices() []string

func (*BoolPropVal) Handler

func (pv *BoolPropVal) Handler(val string) error

func (*BoolPropVal) String

func (pv *BoolPropVal) String() string

type CompPropVal

type CompPropVal struct {
	ValueSource func() string
}

CompPropVal is a computed property value that is read-only from the user perspective.

func (*CompPropVal) Choices

func (pv *CompPropVal) Choices() []string

func (*CompPropVal) Handler

func (pv *CompPropVal) Handler(string) error

func (*CompPropVal) String

func (pv *CompPropVal) String() string

type ComponentBuild

type ComponentBuild struct {
	Version   string `json:"version"`
	BuildInfo string `json:"build_info,omitempty"`
	LibPath   string `json:"lib_path,omitempty"`
}

ComponentBuild contains string representations of a component's build information.

type ContainerInfo

type ContainerInfo struct {
	PoolUUID         uuid.UUID       `json:"pool_uuid"`
	ContainerUUID    uuid.UUID       `json:"container_uuid"`
	ContainerLabel   string          `json:"container_label,omitempty"`
	LatestSnapshot   HLC             `json:"latest_snapshot"`
	RedundancyFactor uint32          `json:"redundancy_factor"`
	NumHandles       uint32          `json:"num_handles"`
	NumSnapshots     uint32          `json:"num_snapshots"`
	OpenTime         HLC             `json:"open_time"`
	CloseModifyTime  HLC             `json:"close_modify_time"`
	Type             ContainerLayout `json:"container_type"`
	Health           string          `json:"health"`
	*POSIXAttributes `json:",omitempty"`
}

ContainerInfo contains information about the Container.

func (*ContainerInfo) MarshalJSON

func (ci *ContainerInfo) MarshalJSON() ([]byte, error)

func (*ContainerInfo) Name

func (ci *ContainerInfo) Name() string

Name returns an identifier for the container (Label, if set, falling back to UUID).

func (*ContainerInfo) String

func (ci *ContainerInfo) String() string

type ContainerLayout

type ContainerLayout uint16

ContainerLayout represents the layout of a container.

func (*ContainerLayout) FromString

func (l *ContainerLayout) FromString(in string) error

FromString converts a string to a ContainerLayout.

func (ContainerLayout) MarshalJSON

func (l ContainerLayout) MarshalJSON() ([]byte, error)

func (ContainerLayout) String

func (l ContainerLayout) String() string

func (*ContainerLayout) UnmarshalJSON

func (l *ContainerLayout) UnmarshalJSON(data []byte) error

type ContainerOpenFlag

type ContainerOpenFlag uint

ContainerQueryOption is used to supply container open options.

type ContainerPropType

type ContainerPropType C.uint
const (
	ContainerPropLabel           ContainerPropType = C.DAOS_PROP_CO_LABEL
	ContainerPropLayout          ContainerPropType = C.DAOS_PROP_CO_LAYOUT_TYPE
	ContainerPropLayoutVersion   ContainerPropType = C.DAOS_PROP_CO_LAYOUT_VER
	ContainerPropChecksumEnabled ContainerPropType = C.DAOS_PROP_CO_CSUM
	ContainerPropChecksumSize    ContainerPropType = C.DAOS_PROP_CO_CSUM_CHUNK_SIZE
	ContainerPropChecksumSrvVrfy ContainerPropType = C.DAOS_PROP_CO_CSUM_SERVER_VERIFY
	ContainerPropRedunFactor     ContainerPropType = C.DAOS_PROP_CO_REDUN_FAC
	ContainerPropRedunLevel      ContainerPropType = C.DAOS_PROP_CO_REDUN_LVL
	ContainerPropMaxSnapshots    ContainerPropType = C.DAOS_PROP_CO_SNAPSHOT_MAX
	ContainerPropACL             ContainerPropType = C.DAOS_PROP_CO_ACL
	ContainerPropCompression     ContainerPropType = C.DAOS_PROP_CO_COMPRESS
	ContainerPropEncrypted       ContainerPropType = C.DAOS_PROP_CO_ENCRYPT
	ContainerPropOwner           ContainerPropType = C.DAOS_PROP_CO_OWNER
	ContainerPropGroup           ContainerPropType = C.DAOS_PROP_CO_OWNER_GROUP
	ContainerPropDedupEnabled    ContainerPropType = C.DAOS_PROP_CO_DEDUP
	ContainerPropDedupThreshold  ContainerPropType = C.DAOS_PROP_CO_DEDUP_THRESHOLD
	ContainerPropRootObjects     ContainerPropType = C.DAOS_PROP_CO_ROOTS
	ContainerPropStatus          ContainerPropType = C.DAOS_PROP_CO_STATUS
	ContainerPropHighestOid      ContainerPropType = C.DAOS_PROP_CO_ALLOCED_OID
	ContainerPropEcCellSize      ContainerPropType = C.DAOS_PROP_CO_EC_CELL_SZ
	ContainerPropEcPerfDom       ContainerPropType = C.DAOS_PROP_CO_EC_PDA
	ContainerPropEcPerfDomAff    ContainerPropType = C.DAOS_PROP_CO_RP_PDA
	ContainerPropGlobalVersion   ContainerPropType = C.DAOS_PROP_CO_GLOBAL_VERSION
	ContainerPropScubberDisabled ContainerPropType = C.DAOS_PROP_CO_SCRUBBER_DISABLED
	ContainerPropObjectVersion   ContainerPropType = C.DAOS_PROP_CO_OBJ_VERSION
	ContainerPropPerfDomain      ContainerPropType = C.DAOS_PROP_CO_PERF_DOMAIN
)

func (*ContainerPropType) FromString

func (cpt *ContainerPropType) FromString(in string) error

func (ContainerPropType) String

func (cpt ContainerPropType) String() string

type ContainerProperty

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

func (*ContainerProperty) GetString

func (p *ContainerProperty) GetString() string

func (*ContainerProperty) GetValue

func (p *ContainerProperty) GetValue() uint64

func (*ContainerProperty) GetValuePtr

func (p *ContainerProperty) GetValuePtr() unsafe.Pointer

func (*ContainerProperty) Name

func (cp *ContainerProperty) Name() string

func (*ContainerProperty) SetString

func (p *ContainerProperty) SetString(str string)

func (*ContainerProperty) SetValue

func (p *ContainerProperty) SetValue(val uint64)

func (*ContainerProperty) SetValuePtr

func (p *ContainerProperty) SetValuePtr(val unsafe.Pointer)

func (*ContainerProperty) String

func (cp *ContainerProperty) String() string

func (*ContainerProperty) Type

type ContainerPropertyList

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

func ContainerPropertyListFromPtr

func ContainerPropertyListFromPtr(ptr unsafe.Pointer) (*ContainerPropertyList, error)

func NewContainerPropertyList

func NewContainerPropertyList(count uint) (*ContainerPropertyList, error)

func (*ContainerPropertyList) AddEntryType

func (cpl *ContainerPropertyList) AddEntryType(propType ContainerPropType) error

func (*ContainerPropertyList) Free

func (pl *ContainerPropertyList) Free()

func (*ContainerPropertyList) MustAddEntryType

func (cpl *ContainerPropertyList) MustAddEntryType(propType ContainerPropType)

func (*ContainerPropertyList) Properties

func (cpl *ContainerPropertyList) Properties() (props []*ContainerProperty)

func (*ContainerPropertyList) ToPtr

func (pl *ContainerPropertyList) ToPtr() unsafe.Pointer

type EndpointLatency

type EndpointLatency struct {
	TotalRPCs  uint64  `json:"total_rpcs"`
	Min        uint64  `json:"min"`
	Max        uint64  `json:"max"`
	Sum        uint64  `json:"-"`
	SumSquares float64 `json:"-"`
	FailCount  uint64  `json:"fail_count"`
	// contains filtered or unexported fields
}

EndpointLatency represents the results of running latency tests against a single rank:target endpoint.

func (*EndpointLatency) AddValue

func (epl *EndpointLatency) AddValue(value int64)

AddValue adds a sampled latency value (or -1 to increment the failure count).

func (*EndpointLatency) Average

func (epl *EndpointLatency) Average() float64

Average returns the average latency value of successful RPCs.

func (*EndpointLatency) MarshalJSON

func (epl *EndpointLatency) MarshalJSON() ([]byte, error)

func (*EndpointLatency) PercentileBuckets

func (epl *EndpointLatency) PercentileBuckets(percentiles ...uint64) []*MetricBucket

PercentileBuckets returns a sorted slice of buckets holding percentile values.

func (*EndpointLatency) Percentiles

func (epl *EndpointLatency) Percentiles(percentiles ...uint64) ([]uint64, map[uint64]*MetricBucket)

Percentiles returns a sorted slice of bucket keys and a map of buckets holding percentile values.

func (*EndpointLatency) StdDev

func (epl *EndpointLatency) StdDev() float64

StdDev returns the standard deviation of the latency values of successful RPCs.

func (*EndpointLatency) Succeeded

func (epl *EndpointLatency) Succeeded() uint64

Succeeded returns the number of RPCs that succeeded.

type HLC

type HLC uint64

HLC is a high-resolution clock.

func NewHLC

func NewHLC(nsec int64) HLC

NewHLC creates a new HLC from the given number of nanoseconds since the Unix epoch.

func (HLC) IsZero

func (hlc HLC) IsZero() bool

func (HLC) MarshalJSON

func (hlc HLC) MarshalJSON() ([]byte, error)

func (HLC) Nanoseconds

func (hlc HLC) Nanoseconds() int64

Nanoseconds returns the HLC represented as the number of nanoseconds since the Unix epoch.

func (HLC) String

func (hlc HLC) String() string

func (HLC) ToTime

func (hlc HLC) ToTime() time.Time

func (*HLC) UnmarshalJSON

func (hlc *HLC) UnmarshalJSON(b []byte) error

type HistogramMetric

type HistogramMetric struct {
	Labels      MetricLabelMap  `json:"labels"`
	SampleCount uint64          `json:"sample_count"`
	SampleSum   float64         `json:"sample_sum"`
	Buckets     []*MetricBucket `json:"buckets"`
}

HistogramMetric represents a group of observations sorted into buckets.

func (*HistogramMetric) IsMetric

func (*HistogramMetric) IsMetric()

IsMetric identifies HistogramMetric as a Metric.

type IntPropVal

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

IntPropVal is an integer property value. It may be used to store a signed 64-bit integer value.

func NewIntPropVal

func NewIntPropVal(defVal int64, choices ...int64) *IntPropVal

NewIntPropVal returns a new IntPropVal initialized to a default value.

func (*IntPropVal) Choices

func (pv *IntPropVal) Choices() []string

func (*IntPropVal) Handler

func (pv *IntPropVal) Handler(val string) error

func (*IntPropVal) String

func (pv *IntPropVal) String() string

func (*IntPropVal) Value

func (pv *IntPropVal) Value() int64

type Metric

type Metric interface {
	IsMetric()
}

Metric is an interface implemented by all metric types.

type MetricBucket

type MetricBucket struct {
	Label           string  `json:"label"`
	CumulativeCount uint64  `json:"cumulative_count"`
	UpperBound      float64 `json:"upper_bound"`
}

MetricBucket represents a bucket for observations to be sorted into.

func (*MetricBucket) MarshalJSON

func (mb *MetricBucket) MarshalJSON() ([]byte, error)

func (*MetricBucket) UnmarshalJSON

func (mb *MetricBucket) UnmarshalJSON(data []byte) error

type MetricLabelMap

type MetricLabelMap map[string]string

MetricLabelMap is the set of key-value label pairs.

func (MetricLabelMap) Keys

func (m MetricLabelMap) Keys() []string

Keys gets the sorted list of label keys.

type MetricSet

type MetricSet struct {
	Name        string     `json:"name"`
	Description string     `json:"description"`
	Type        MetricType `json:"type"`
	Metrics     []Metric   `json:"metrics"`
}

MetricSet is a group of related metrics.

func (*MetricSet) MarshalJSON

func (ms *MetricSet) MarshalJSON() ([]byte, error)

MarshalJSON marshals the MetricSet to JSON.

func (*MetricSet) UnmarshalJSON

func (ms *MetricSet) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the MetricSet from JSON.

type MetricType

type MetricType uint32

MetricType defines the different types of metrics.

const (
	MetricTypeUnknown MetricType = iota
	MetricTypeGeneric
	MetricTypeCounter
	MetricTypeGauge
	MetricTypeSummary
	MetricTypeHistogram
)

func (MetricType) String

func (t MetricType) String() string

type ObjectClass

type ObjectClass C.daos_oclass_id_t

ObjectClass represents an object class.

func (*ObjectClass) FromString

func (oc *ObjectClass) FromString(name string) error

FromString resolves a string to an ObjectClass.

func (ObjectClass) MarshalJSON

func (oc ObjectClass) MarshalJSON() ([]byte, error)

func (ObjectClass) String

func (oc ObjectClass) String() string

type POSIXAttributes

type POSIXAttributes struct {
	ChunkSize       uint64      `json:"chunk_size,omitempty"`
	ObjectClass     ObjectClass `json:"object_class,omitempty"`
	DirObjectClass  ObjectClass `json:"dir_object_class,omitempty"`
	FileObjectClass ObjectClass `json:"file_object_class,omitempty"`
	ConsistencyMode uint32      `json:"cons_mode,omitempty"`
	Hints           string      `json:"hints,omitempty"`
}

POSIXAttributes contains extended information about POSIX-layout containers.

type PoolConnectFlag

type PoolConnectFlag uint

PoolConnectFlag represents DAOS pool connect options.

type PoolInfo

type PoolInfo struct {
	QueryMask        PoolQueryMask        `json:"query_mask"`
	State            PoolServiceState     `json:"state"`
	UUID             uuid.UUID            `json:"uuid"`
	Label            string               `json:"label,omitempty"`
	TotalTargets     uint32               `json:"total_targets"`
	ActiveTargets    uint32               `json:"active_targets"`
	TotalEngines     uint32               `json:"total_engines"`
	DisabledTargets  uint32               `json:"disabled_targets"`
	Version          uint32               `json:"version"`
	ServiceLeader    uint32               `json:"svc_ldr"`
	ServiceReplicas  []ranklist.Rank      `json:"svc_reps,omitempty"`
	Rebuild          *PoolRebuildStatus   `json:"rebuild"`
	TierStats        []*StorageUsageStats `json:"tier_stats"`
	EnabledRanks     *ranklist.RankSet    `json:"enabled_ranks,omitempty"`
	DisabledRanks    *ranklist.RankSet    `json:"disabled_ranks,omitempty"`
	DeadRanks        *ranklist.RankSet    `json:"dead_ranks,omitempty"`
	PoolLayoutVer    uint32               `json:"pool_layout_ver"`
	UpgradeLayoutVer uint32               `json:"upgrade_layout_ver"`
	MemFileBytes     uint64               `json:"mem_file_bytes"`
	MdOnSsdActive    bool                 `json:"md_on_ssd_active"`
}

PoolInfo contains information about the pool.

func (*PoolInfo) MarshalJSON

func (pi *PoolInfo) MarshalJSON() ([]byte, error)

func (*PoolInfo) Name

func (pi *PoolInfo) Name() string

Name retrieves effective name for pool from either label or UUID.

func (*PoolInfo) RebuildState

func (pi *PoolInfo) RebuildState() string

RebuildState returns a string representation of the pool rebuild state.

func (*PoolInfo) Usage

func (pi *PoolInfo) Usage() []*PoolTierUsage

Usage returns a slice of PoolTierUsage objects describing the pool's storage usage in a simpler format.

type PoolPropHandler

type PoolPropHandler struct {
	Property PoolProperty
	// contains filtered or unexported fields
}

func (*PoolPropHandler) GetProperty

func (pph *PoolPropHandler) GetProperty(name string) *PoolProperty

func (*PoolPropHandler) Values

func (pph *PoolPropHandler) Values() []string

type PoolProperty

type PoolProperty struct {
	Number      uint32            `json:"-"`
	Name        string            `json:"name"`
	Description string            `json:"description"`
	Value       PoolPropertyValue `json:"value"`
	// contains filtered or unexported fields
}

PoolProperty contains a name/value pair representing a pool property.

func (*PoolProperty) MarshalJSON

func (p *PoolProperty) MarshalJSON() (_ []byte, err error)

func (*PoolProperty) SetValue

func (p *PoolProperty) SetValue(strVal string) error

func (*PoolProperty) String

func (p *PoolProperty) String() string

func (*PoolProperty) StringValue

func (p *PoolProperty) StringValue() string

type PoolPropertyMap

type PoolPropertyMap map[string]*PoolPropHandler

func PoolProperties

func PoolProperties() PoolPropertyMap

PoolProperties returns a map of property names to handlers for processing property values.

func (PoolPropertyMap) GetProperty

func (m PoolPropertyMap) GetProperty(name string) (*PoolProperty, error)

GetProperty returns a *PoolProperty for the property name, if valid.

func (PoolPropertyMap) Keys

func (m PoolPropertyMap) Keys() []string

type PoolPropertyValue

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

PoolPropertyValue encapsulates the logic for storing a string or uint64 property value.

func (*PoolPropertyValue) GetNumber

func (ppv *PoolPropertyValue) GetNumber() (uint64, error)

GetNumber returns the numeric value set for the property, or an error if the value is not a number.

func (*PoolPropertyValue) IsSet

func (ppv *PoolPropertyValue) IsSet() bool

func (*PoolPropertyValue) SetNumber

func (ppv *PoolPropertyValue) SetNumber(numVal uint64)

SetNumber sets the property value to a number.

func (*PoolPropertyValue) SetString

func (ppv *PoolPropertyValue) SetString(strVal string)

SetString sets the property value to a string.

func (*PoolPropertyValue) String

func (ppv *PoolPropertyValue) String() string

type PoolQueryMask

type PoolQueryMask C.uint64_t

PoolQueryMask implements a bitmask for pool query options.

func MustNewPoolQueryMask

func MustNewPoolQueryMask(options ...PoolQueryOption) (mask PoolQueryMask)

MustNewPoolQueryMask returns a PoolQueryMask initialized with the specified options. NB: If an error occurs due to an invalid option, it panics.

func (*PoolQueryMask) ClearAll

func (pqm *PoolQueryMask) ClearAll()

ClearAll clears the pool query mask of all pool query options.

func (*PoolQueryMask) ClearOptions

func (pqm *PoolQueryMask) ClearOptions(options ...PoolQueryOption) error

ClearOptions clears the pool query mask of the specified options.

func (PoolQueryMask) HasOption

func (pqm PoolQueryMask) HasOption(option PoolQueryOption) bool

HasOption returns true if the pool query mask includes the specified option.

func (PoolQueryMask) MarshalJSON

func (pqm PoolQueryMask) MarshalJSON() ([]byte, error)

func (*PoolQueryMask) SetAll

func (pqm *PoolQueryMask) SetAll()

SetAll sets the pool query mask to include all pool query options.

func (*PoolQueryMask) SetOptions

func (pqm *PoolQueryMask) SetOptions(options ...PoolQueryOption) error

SetOptions sets the pool query mask to include the specified options.

func (PoolQueryMask) String

func (pqm PoolQueryMask) String() string

func (*PoolQueryMask) UnmarshalJSON

func (pqm *PoolQueryMask) UnmarshalJSON(data []byte) error

type PoolQueryOption

type PoolQueryOption string

PoolQueryOption is used to supply pool query options.

func (PoolQueryOption) String

func (pqo PoolQueryOption) String() string

type PoolQueryTargetInfo

type PoolQueryTargetInfo struct {
	Type          PoolQueryTargetType  `json:"target_type"`
	State         PoolQueryTargetState `json:"target_state"`
	Space         []*StorageUsageStats `json:"space"`
	MemFileBytes  uint64               `json:"mem_file_bytes"`
	MdOnSsdActive bool                 `json:"md_on_ssd_active"`
}

PoolQueryTargetInfo contains information about a single target

type PoolQueryTargetState

type PoolQueryTargetState int32

func (PoolQueryTargetState) MarshalJSON

func (pqts PoolQueryTargetState) MarshalJSON() ([]byte, error)

func (PoolQueryTargetState) String

func (pqts PoolQueryTargetState) String() string

type PoolQueryTargetType

type PoolQueryTargetType int32

func (PoolQueryTargetType) MarshalJSON

func (pqtt PoolQueryTargetType) MarshalJSON() ([]byte, error)

func (PoolQueryTargetType) String

func (ptt PoolQueryTargetType) String() string

type PoolRebuildState

type PoolRebuildState int32

PoolRebuildState indicates the current state of the pool rebuild process.

func (PoolRebuildState) MarshalJSON

func (prs PoolRebuildState) MarshalJSON() ([]byte, error)

func (PoolRebuildState) String

func (prs PoolRebuildState) String() string

func (*PoolRebuildState) UnmarshalJSON

func (prs *PoolRebuildState) UnmarshalJSON(data []byte) error

type PoolRebuildStatus

type PoolRebuildStatus struct {
	Status       int32            `json:"status"`
	State        PoolRebuildState `json:"state"`
	Objects      uint64           `json:"objects"`
	Records      uint64           `json:"records"`
	TotalObjects uint64           `json:"total_objects"`
}

PoolRebuildStatus contains detailed information about the pool rebuild process.

type PoolServiceState

type PoolServiceState uint

PoolServiceState is used to represent the state of the pool service

func (PoolServiceState) MarshalJSON

func (pss PoolServiceState) MarshalJSON() ([]byte, error)

func (PoolServiceState) String

func (pss PoolServiceState) String() string

func (*PoolServiceState) UnmarshalJSON

func (pss *PoolServiceState) UnmarshalJSON(data []byte) error

type PoolTierUsage

type PoolTierUsage struct {
	// TierName identifies a pool's storage tier.
	TierName string `json:"tier_name"`
	// Size is the total number of bytes in the pool tier.
	Size uint64 `json:"size"`
	// Free is the number of free bytes in the pool tier.
	Free uint64 `json:"free"`
	// Imbalance is the percentage imbalance of pool tier usage
	// across all the targets.
	Imbalance uint32 `json:"imbalance"`
}

PoolTierUsage describes usage of a single pool storage tier in a simpler format.

type QuantileMap

type QuantileMap map[float64]float64

QuantileMap is the set of quantile measurements.

func (QuantileMap) Keys

func (m QuantileMap) Keys() []float64

Keys gets the sorted list of quantile keys.

func (QuantileMap) MarshalJSON

func (m QuantileMap) MarshalJSON() ([]byte, error)

MarshalJSON marshals the QuantileMap into JSON.

func (QuantileMap) UnmarshalJSON

func (m QuantileMap) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals the QuantileMap from JSON.

type RankURI

type RankURI struct {
	Rank uint32 `json:"rank"`
	URI  string `json:"uri"`
}

RankURI expresses a rank-to-fabric-URI mapping.

type SelfTestConfig

type SelfTestConfig struct {
	GroupName       string             `json:"group_name"`
	MasterEndpoints []SelfTestEndpoint `json:"master_endpoints,omitempty"`
	EndpointRanks   []ranklist.Rank    `json:"endpoint_ranks"`
	EndpointTags    []uint32           `json:"endpoint_tags"`
	Repetitions     uint               `json:"repetitions"`
	SendSizes       []uint64           `json:"send_sizes"`
	ReplySizes      []uint64           `json:"reply_sizes"`
	BufferAlignment int16              `json:"buffer_alignment"`
	MaxInflightRPCs uint               `json:"max_inflight_rpcs"`
}

SelfTestConfig defines the parameters for a set of self_test runs.

func (*SelfTestConfig) Copy

func (cfg *SelfTestConfig) Copy() *SelfTestConfig

Copy returns a copy of the configuration.

func (*SelfTestConfig) SetDefaults

func (cfg *SelfTestConfig) SetDefaults() error

SetDefaults replaces unset parameters with default values.

func (*SelfTestConfig) Validate

func (cfg *SelfTestConfig) Validate() error

Validate checks the configuration for validity.

type SelfTestEndpoint

type SelfTestEndpoint struct {
	Rank ranklist.Rank
	Tag  uint32
}

SelfTestEndpoint represents a rank:target test endpoint.

func (SelfTestEndpoint) String

func (ste SelfTestEndpoint) String() string

type SelfTestResult

type SelfTestResult struct {
	MasterEndpoint  SelfTestEndpoint                      `json:"-"`
	TargetEndpoints []SelfTestEndpoint                    `json:"-"`
	Repetitions     uint                                  `json:"repetitions"`
	SendSize        uint64                                `json:"send_size"`
	ReplySize       uint64                                `json:"reply_size"`
	BufferAlignment int16                                 `json:"buffer_alignment"`
	Duration        time.Duration                         `json:"duration"`
	MasterLatency   *EndpointLatency                      `json:"master_latency"`
	TargetLatencies map[SelfTestEndpoint]*EndpointLatency `json:"-"`
}

SelfTestResult represents the results of a single self_test run.

func (*SelfTestResult) AddTargetLatency

func (str *SelfTestResult) AddTargetLatency(rank ranklist.Rank, tag uint32, value int64)

AddTargetLatency adds a latency value for a target endpoint.

func (*SelfTestResult) MarshalJSON

func (str *SelfTestResult) MarshalJSON() ([]byte, error)

func (*SelfTestResult) RPCBandwidth

func (str *SelfTestResult) RPCBandwidth() float64

RPCBandwidth calculates the bytes per second value based on the number of RPCs sent for the duration of the test.

func (*SelfTestResult) RPCThroughput

func (str *SelfTestResult) RPCThroughput() float64

RPCThroughput calculates the number of RPCs per second.

func (*SelfTestResult) TargetRanks

func (str *SelfTestResult) TargetRanks() (ranks []ranklist.Rank)

TargetRanks returns a slice of target ranks in the same order as the configured target endpoints.

type SimpleMetric

type SimpleMetric struct {
	Labels MetricLabelMap `json:"labels"`
	Value  float64        `json:"value"`
}

SimpleMetric is a specific metric with a value.

func (*SimpleMetric) IsMetric

func (*SimpleMetric) IsMetric()

IsMetric identifies SimpleMetric as a Metric.

type Status

type Status int32

Status is a status code in the set defined by the DAOS data plane.

const (
	// Success indicates no error
	Success Status = 0
	// NoPermission indicates that access to a resource was denied
	NoPermission Status = -C.DER_NO_PERM
	// NoHandle indicates the handle was invalid
	NoHandle Status = -C.DER_NO_HDL
	// InvalidInput indicates an input was invalid
	InvalidInput Status = -C.DER_INVAL
	// Exists indicates the entity already exists
	Exists Status = -C.DER_EXIST
	// Nonexistent indicates the entity does not exist
	Nonexistent Status = -C.DER_NONEXIST
	// Unreachable indicates a node was unreachable
	Unreachable Status = -C.DER_UNREACH
	// NoSpace indicates there was not enough storage space
	NoSpace Status = -C.DER_NOSPACE
	// Already indicates the operation was already done
	Already Status = -C.DER_ALREADY
	// NoMemory indicates the system ran out of memory
	NoMemory Status = -C.DER_NOMEM
	// NotImpl indicates the requested functionality is not implemented
	NotImpl Status = -C.DER_NOSYS
	// TimedOut indicates the operation timed out
	TimedOut Status = -C.DER_TIMEDOUT
	// Busy indicates the system was busy and didn't process the request
	Busy Status = -C.DER_BUSY
	// TryAgain indicates the operation failed, but should be tried again
	TryAgain Status = -C.DER_AGAIN
	// ProtocolError indicates incompatibility in communications protocols
	ProtocolError Status = -C.DER_PROTO
	// NotInit indicates something in the system wasn't initialized
	NotInit Status = -C.DER_UNINIT
	// BufTooSmall indicates a provided buffer was too small
	BufTooSmall Status = -C.DER_TRUNC
	// StructTooSmall indicates data could not fit in the provided structure
	StructTooSmall Status = -C.DER_OVERFLOW
	// Canceled indicates the operation was canceled
	Canceled Status = -C.DER_CANCELED
	// OutOfGroup indicates that a rank wasn't found in the group
	OutOfGroup Status = -C.DER_OOG
	// MercuryError indicates that there was an error in the Mercury transport layer
	MercuryError Status = -C.DER_HG
	// Unregistered indicates that a requested RPC was not registered
	Unregistered Status = -C.DER_UNREG
	// AddrStringFailed indicates that an address string couldn't be generated
	AddrStringFailed Status = -C.DER_ADDRSTR_GEN
	// PMIXError indicates an error in the PMIX layer
	PMIXError Status = -C.DER_PMIX
	// IVCallback indicates that the IV callback cannot be handled locally
	IVCallback Status = -C.DER_IVCB_FORWARD
	// MiscError indicates an unspecified error
	MiscError Status = -C.DER_MISC
	// BadPath indicates that a bad file or directory path was provided
	BadPath Status = -C.DER_BADPATH
	// NotDir indicates that the path is not to a directory
	NotDir Status = -C.DER_NOTDIR
	// CorpcIncomplete indicates that corpc failed
	CorpcIncomplete Status = -C.DER_CORPC_INCOMPLETE
	// NoRASRank indicates that no rank is subscribed to RAS
	NoRASRank Status = -C.DER_NO_RAS_RANK
	// NotAttached indicates that a service group is not attached
	NotAttached Status = -C.DER_NOTATTACH
	// Mismatch indicates a version mismatch
	Mismatch Status = -C.DER_MISMATCH
	// Excluded indicates that the rank was excluded
	Excluded Status = -C.DER_EXCLUDED
	// NoReply indicates that there was no reply to an RPC
	NoReply Status = -C.DER_NOREPLY
	// DenialOfService indicates that there was a denial of service
	DenialOfService Status = -C.DER_DOS
	// BadTarget indicates that the target was wrong for the RPC
	BadTarget Status = -C.DER_BAD_TARGET
	// GroupVersionMismatch indicates that group versions didn't match
	GroupVersionMismatch Status = -C.DER_GRPVER
	// MercuryFatalError indicates a fatal (non-retryable) Mercury error
	MercuryFatalError Status = -C.DER_HG_FATAL
	// NoService indicates the pool service is not up and didn't process the pool request
	NoService Status = -C.DER_NO_SERVICE
)
const (
	// IOError indicates a generic IO error
	IOError Status = -C.DER_IO
	// FreeMemError indicates an error freeing memory
	FreeMemError Status = -C.DER_FREE_MEM
	// NoEntry indicates that the entry was not found
	NoEntry Status = -C.DER_ENOENT
	// UnknownType indicates that the entity type was unknown
	UnknownType Status = -C.DER_NOTYPE
	// UnknownSchema indicates that the entity schema was unknown
	UnknownSchema Status = -C.DER_NOSCHEMA
	// NotLocal indicates that the entity was not local
	NotLocal Status = -C.DER_NOLOCAL
	// Stale indicates that a resource was stale
	Stale Status = -C.DER_STALE
	// NotLeader indicates that the replica is not the service leader
	NotLeader Status = -C.DER_NOTLEADER
	// TargetCreateError indicates that target creation failed
	TargetCreateError Status = -C.DER_TGT_CREATE
	// EpochReadOnly indicates that the epoch couldn't be modified
	EpochReadOnly Status = -C.DER_EP_RO
	// EpochRecycled indicates that the epoch was recycled due to age
	EpochRecycled Status = -C.DER_EP_OLD
	// KeyTooBig indicates that the key is too big
	KeyTooBig Status = -C.DER_KEY2BIG
	// RecordTooBig indicates that the record is too big
	RecordTooBig Status = -C.DER_REC2BIG
	// IOInvalid indicates a mismatch between IO buffers and object extents
	IOInvalid Status = -C.DER_IO_INVAL
	// EventQueueBusy indicates that the event queue is busy
	EventQueueBusy Status = -C.DER_EQ_BUSY
	// DomainMismatch indicates that there was a mismatch of domains in cluster components
	DomainMismatch Status = -C.DER_DOMAIN
	// Shutdown indicates that the service should shut down
	Shutdown Status = -C.DER_SHUTDOWN
	// InProgress indicates that the operation is in progress
	InProgress Status = -C.DER_INPROGRESS
	// NotApplicable indicates that the operation is not applicable
	NotApplicable Status = -C.DER_NOTAPPLICABLE
	// NotReplica indicates that the requested component is not a service replica
	NotReplica Status = -C.DER_NOTREPLICA
	// ChecksumError indicates a checksum error
	ChecksumError Status = -C.DER_CSUM
	// ControlIncompatible indicates that one or more control plane components are incompatible
	ControlIncompatible Status = -C.DER_CONTROL_INCOMPAT
	// NoCert indicates that one or more configured certificates could not be accessed.
	NoCert Status = -C.DER_NO_CERT
	// BadCert indicates that an invalid certificate was detected.
	BadCert Status = -C.DER_BAD_CERT
	// RedundancyFactorExceeded indicates that the maximum number of failed components was exceeded.
	RedundancyFactorExceeded Status = -C.DER_RF
	// AgentCommFailed indicates that client/agent communication failed.
	AgentCommFailed Status = -C.DER_AGENT_COMM
)

func (Status) Error

func (ds Status) Error() string

func (Status) Int32

func (ds Status) Int32() int32

type StorageMediaType

type StorageMediaType int32

StorageMediaType indicates the type of storage.

func (StorageMediaType) MarshalJSON

func (smt StorageMediaType) MarshalJSON() ([]byte, error)

func (StorageMediaType) String

func (smt StorageMediaType) String() string

func (*StorageMediaType) UnmarshalJSON

func (smt *StorageMediaType) UnmarshalJSON(data []byte) error

type StorageTargetUsage

type StorageTargetUsage struct {
	Total     uint64           `json:"total"`
	Free      uint64           `json:"free"`
	MediaType StorageMediaType `json:"media_type"`
}

StorageTargetUsage represents DAOS target storage usage

type StorageUsageStats

type StorageUsageStats struct {
	Total     uint64           `json:"total"`
	Free      uint64           `json:"free"`
	Min       uint64           `json:"min"`
	Max       uint64           `json:"max"`
	Mean      uint64           `json:"mean"`
	MediaType StorageMediaType `json:"media_type"`
}

StorageUsageStats represents raw DAOS storage usage statistics.

type StringPropVal

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

StringPropVal is a string-based property value.

func NewStringPropVal

func NewStringPropVal(defVal string, choices ...string) *StringPropVal

NewStringPropVal returns a new StringPropVal initialized to a default value, with an optional set of allowable values.

func (*StringPropVal) Choices

func (pv *StringPropVal) Choices() []string

func (*StringPropVal) Handler

func (pv *StringPropVal) Handler(val string) error

func (*StringPropVal) String

func (pv *StringPropVal) String() string

type SummaryMetric

type SummaryMetric struct {
	Labels      MetricLabelMap `json:"labels"`
	SampleCount uint64         `json:"sample_count"`
	SampleSum   float64        `json:"sample_sum"`
	Quantiles   QuantileMap    `json:"quantiles"`
}

SummaryMetric represents a group of observations.

func (*SummaryMetric) IsMetric

func (*SummaryMetric) IsMetric()

IsMetric identifies SummaryMetric as a Metric.

func (*SummaryMetric) UnmarshalJSON

func (m *SummaryMetric) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshals a SummaryMetric from JSON.

type SystemHealthInfo

type SystemHealthInfo struct {
	SystemInfo         *SystemInfo                    `json:"system_info"`
	ComponentBuildInfo map[string]ComponentBuild      `json:"component_build_info"`
	Pools              map[uuid.UUID]*PoolInfo        `json:"pools"`
	Containers         map[uuid.UUID][]*ContainerInfo `json:"pool_containers,omitempty"`
}

SystemHealthInfo provides a top-level structure to hold system health information.

type SystemInfo

type SystemInfo struct {
	Name                string     `json:"system_name"`
	Provider            string     `json:"fabric_provider"`
	AgentPath           string     `json:"agent_path"`
	RankURIs            []*RankURI `json:"rank_uris"`
	AccessPointRankURIs []*RankURI `json:"access_point_rank_uris"`
}

SystemInfo represents information about the connected system.

func (*SystemInfo) AccessPoints

func (si *SystemInfo) AccessPoints() []string

AccessPoints returns a string slice representation of the system access points.

type SystemProperty

type SystemProperty struct {
	Key         SystemPropertyKey
	Value       SystemPropertyValue
	Description string
}

SystemProperty represents a key/value pair associated with a system property.

func (*SystemProperty) MarshalJSON

func (sp *SystemProperty) MarshalJSON() ([]byte, error)

func (*SystemProperty) String

func (sp *SystemProperty) String() string

type SystemPropertyKey

type SystemPropertyKey int

SystemProperty defines a type to be used to represent DAOS system property keys.

const (

	// SystemPropertyDaosVersion retrieves the DAOS version.
	SystemPropertyDaosVersion SystemPropertyKey
	// SystemPropertyDaosSystem retrieves the DAOS system name.
	SystemPropertyDaosSystem
	// SystemPropertyPoolScrubMode sets or retrieves the scrubbing mode for each pool in the system.
	SystemPropertyPoolScrubMode
	// SystemPropertyPoolScrubThresh sets or retrieves the scrubbing error threshold for each pool in the system.
	SystemPropertyPoolScrubThresh
)

NB: System properties are not tied to engine constants, but are defined here for consistency.

func (*SystemPropertyKey) FromString

func (sp *SystemPropertyKey) FromString(val string) error

FromString initializes a SystemPropertyKey from a string.

func (SystemPropertyKey) IsValid

func (sp SystemPropertyKey) IsValid() bool

IsValid returns a boolean indicating whether or not the system property key is valid.

func (SystemPropertyKey) String

func (sp SystemPropertyKey) String() string

type SystemPropertyMap

type SystemPropertyMap map[SystemPropertyKey]SystemProperty

SystemPropertyMap is a map of SystemPropertyKey to SystemProperty.

func SystemProperties

func SystemProperties() SystemPropertyMap

SystemProperties returns the map of standard system properties.

func (SystemPropertyMap) Add

func (spm SystemPropertyMap) Add(prop SystemProperty) error

Add adds a SystemProperty to the map.

func (SystemPropertyMap) Get

func (spm SystemPropertyMap) Get(strKey string) (*SystemProperty, bool)

Get returns the SystemProperty associated with the given key, if found.

func (SystemPropertyMap) Iter

func (spm SystemPropertyMap) Iter() <-chan *SystemProperty

Iter returns a channel to be used to iterate over the SystemPropertyMap, sorted by keys.

func (SystemPropertyMap) Keys

func (spm SystemPropertyMap) Keys() []string

Keys returns a sorted slice of key strings.

func (SystemPropertyMap) UpdateCompPropVal

func (spm SystemPropertyMap) UpdateCompPropVal(key SystemPropertyKey, sourceFn func() string) error

UpdateCompPropVal updates the value source function for a computed property value.

type SystemPropertyValue

type SystemPropertyValue interface {
	Handler(val string) error
	Choices() []string
	String() string
	// contains filtered or unexported methods
}

SystemPropertyValue defines an interface to be implemented by all system property value types.

func NewCompPropVal

func NewCompPropVal(valueSource func() string) SystemPropertyValue

NewCompPropVal returns a new CompPropVal initialized with a value source.

func UnsetPropVal

func UnsetPropVal() SystemPropertyValue

UnsetPropVal returns a SystemPropertyValue that can be used to indicate that a property is not set.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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