object

package
v0.0.0-...-0a8b275 Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2024 License: Apache-2.0 Imports: 106 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultNodeMaxParallel = 10
)

Variables

View Source
var (
	ErrInvalidNode = errors.New("invalid node")
	ErrDisabled    = errors.New("object instance is disabled")
)
View Source
var (
	KeystoreErrExist    = errors.New("key already exists")
	KeystoreErrKeyEmpty = errors.New("key is empty")
	KeystoreErrNotExist = errors.New("key does not exist")
)
View Source
var (
	ErrNodeCollectorConfig       = errors.New("collector is not configured: empty configuration keyword node.dbopensvc")
	ErrNodeCollectorUnregistered = errors.New("this node is not registered. try 'om node register'")
)
View Source
var (
	ErrVIPScope = errors.New("vip scope")
)

VIP returns the VIP from cluster config

View Source
var ErrWrongType = errors.New("wrong type provided for interface")

Functions

func EncapNodes

func EncapNodes(o Core) ([]string, error)

func GetClusterConfig

func GetClusterConfig() (cluster.Config, error)

GetClusterConfig returns the cached config data if any, or load the cache and return the cached config data.

func GetSecEncryptDecrypter

func GetSecEncryptDecrypter() (encryptDecrypter, error)

func InitData

func InitData()

InitData reset package objects data, it can be used for tests.

func New

func New(p naming.Path, opts ...funcopt.O) (any, error)

New allocates a new kinded object

func NewCfg

func NewCfg(path naming.Path, opts ...funcopt.O) (*cfg, error)

NewCfg allocates a cfg kind object.

func NewList

func NewList(paths naming.Paths, opts ...funcopt.O) ([]any, error)

func NewSec

func NewSec(path naming.Path, opts ...funcopt.O) (*sec, error)

NewSec allocates a sec kind object.

func NewSvc

func NewSvc(path naming.Path, opts ...funcopt.O) (*svc, error)

NewSvc allocates a svc kind object.

func NewUsr

func NewUsr(path naming.Path, opts ...funcopt.O) (*usr, error)

NewUsr allocates a usr kind object.

func NewVol

func NewVol(path naming.Path, opts ...funcopt.O) (*vol, error)

NewVol allocates a vol kind object.

func SetClusterConfig

func SetClusterConfig() (cluster.Config, error)

SetClusterConfig refreshes the config data cache and returns the new config data.

func WithConfigData

func WithConfigData(b any) funcopt.O

WithConfigData sets configuration overriding what is installed in the config file Useful for testing volatile services.

func WithConfigFile

func WithConfigFile(s string) funcopt.O

WithConfigFile sets a non-standard configuration location.

func WithLogger

func WithLogger(s *plog.Logger) funcopt.O

WithLogger let the factory user decide what kind of logging he wants

func WithVolatile

func WithVolatile(s bool) funcopt.O

WithVolatile makes sure not data is ever written by the object.

Types

type Actor

type Actor interface {
	Core

	PG() *pg.Config
	IsVolatile() bool
	ResourceSets() resourceset.L
	ResourceByID(rid string) resource.Driver
	GetActionResDeps() *actionresdeps.Store
	ConfigureResources()
	IsDisabled() bool

	Boot(context.Context) error
	Restart(context.Context) error
	Run(context.Context) error
	Shutdown(context.Context) error
	Start(context.Context) error
	StartStandby(context.Context) error
	Stop(context.Context) error
	PRStart(context.Context) error
	PRStop(context.Context) error
	Provision(context.Context) error
	Unprovision(context.Context) error
	SetProvisioned(context.Context) error
	SetUnprovisioned(context.Context) error
	SyncFull(context.Context) error
	SyncResync(context.Context) error
	SyncUpdate(context.Context) error
	Enter(context.Context, string) error

	PrintSchedule() schedule.Table
	PushResInfo(context.Context) (resource.Infos, error)

	HardAffinity() []string
	HardAntiAffinity() []string
	SoftAffinity() []string
	SoftAntiAffinity() []string
	// contains filtered or unexported methods
}

Actor is implemented by object kinds supporting start, stop, ...

func NewActor

func NewActor(p naming.Path, opts ...funcopt.O) (Actor, error)

NewActor returns a Actor interface from an object path

type Ccfg

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

Ccfg is the clusterwide configuration store.

The content is the same as node.conf, and is overriden by the definition found in node.conf.

func NewCluster

func NewCluster(opts ...funcopt.O) (*Ccfg, error)

func (*Ccfg) App

func (t *Ccfg) App() string

func (*Ccfg) CleanPG

func (t *Ccfg) CleanPG(ctx context.Context)

func (*Ccfg) Cluster

func (t *Ccfg) Cluster() (*Ccfg, error)

Cluster returns a cached Ccfg struct pointer. If none is already cached, allocate a new Ccfg{} and cache it.

func (*Ccfg) Config

func (t *Ccfg) Config() *xconfig.T

func (*Ccfg) ConfigFile

func (t *Ccfg) ConfigFile() string

ConfigFile returns the absolute path of an opensvc object configuration file.

func (*Ccfg) DRPNodes

func (t *Ccfg) DRPNodes() ([]string, error)

DRPNodes implements DRPNodes() ([]string, error) to retrieve cluster drpnodes from config cluster.drpnodes This is required because embedded implementation from core is not valid for ccfg

func (*Ccfg) Delete

func (t *Ccfg) Delete(ctx context.Context) error

func (*Ccfg) DeleteSection

func (t *Ccfg) DeleteSection(ctx context.Context, rids ...string) error

DeleteSection deletes a resource section from object.

TODO: Fix/verify following doc If no resource selector is set, remove all etc, var and log file belonging to the object.

If a resource selector is set, only delete the corresponding sections in the configuration file.

func (*Ccfg) Dereference

func (t *Ccfg) Dereference(ref string) (string, error)

func (*Ccfg) DiscardAndEditConfig

func (t *Ccfg) DiscardAndEditConfig() error

func (*Ccfg) Doc

func (t *Ccfg) Doc(drvStr, kwStr string, depth int) (string, error)

func (*Ccfg) Domain

func (t *Ccfg) Domain() string

func (*Ccfg) EditConfig

func (t *Ccfg) EditConfig() error

func (*Ccfg) Env

func (t *Ccfg) Env() string

func (*Ccfg) Eval

func (t *Ccfg) Eval(k key.T) (interface{}, error)

Eval returns a keyword value

func (*Ccfg) EvalAs

func (t *Ccfg) EvalAs(k key.T, impersonate string) (interface{}, error)

func (*Ccfg) EvalConfig

func (t *Ccfg) EvalConfig() (rawconfig.T, error)

func (*Ccfg) EvalConfigAs

func (t *Ccfg) EvalConfigAs(nodename string) (rawconfig.T, error)

func (*Ccfg) FQDN

func (t *Ccfg) FQDN() string

func (*Ccfg) FlexMax

func (t *Ccfg) FlexMax() (int, error)

func (*Ccfg) FlexMin

func (t *Ccfg) FlexMin() (int, error)

func (*Ccfg) FlexTarget

func (t *Ccfg) FlexTarget() (int, error)

func (*Ccfg) FreshStatus

func (t *Ccfg) FreshStatus(ctx context.Context) (instance.Status, error)

func (*Ccfg) Get

func (t *Ccfg) Get(k key.T) (interface{}, error)

Get returns a keyword value

func (*Ccfg) ID

func (t *Ccfg) ID() uuid.UUID

func (*Ccfg) IsVolatile

func (t *Ccfg) IsVolatile() bool

func (*Ccfg) KeywordLookup

func (t *Ccfg) KeywordLookup(k key.T, sectionType string) keywords.Keyword

func (*Ccfg) List

func (t *Ccfg) List() (string, error)

List returns the stringified path as data

func (*Ccfg) Log

func (t *Ccfg) Log() *plog.Logger

func (*Ccfg) LogDir

func (t *Ccfg) LogDir() string

func (*Ccfg) MonitorStatus

func (t *Ccfg) MonitorStatus(ctx context.Context) (instance.Status, error)

func (*Ccfg) Name

func (t *Ccfg) Name() string

func (*Ccfg) NewCompliance

func (t *Ccfg) NewCompliance() (*compliance.T, error)

func (*Ccfg) Node

func (t *Ccfg) Node() (*Node, error)

Node returns a cached Node struct pointer. If none is already cached, allocate a new Node{} and cache it.

func (*Ccfg) Nodes

func (t *Ccfg) Nodes() ([]string, error)

Nodes implements Nodes() ([]string, error) to retrieve cluster nodes from config cluster.nodes This is required because embedded implementation from core is not valid for ccfg

func (*Ccfg) Orchestrate

func (t *Ccfg) Orchestrate() string

func (*Ccfg) Path

func (t *Ccfg) Path() naming.Path

func (*Ccfg) Peers

func (t *Ccfg) Peers() ([]string, error)

func (*Ccfg) Placement

func (t *Ccfg) Placement() placement.Policy

func (*Ccfg) PostCommit

func (t *Ccfg) PostCommit() error

func (*Ccfg) PrintConfig

func (t *Ccfg) PrintConfig() (rawconfig.T, error)

PrintConfig gets a keyword value

func (*Ccfg) Priority

func (t *Ccfg) Priority() priority.T

func (*Ccfg) Progress

func (t *Ccfg) Progress(ctx context.Context, cols ...any)

func (*Ccfg) ProgressKey

func (t *Ccfg) ProgressKey() []string

func (*Ccfg) RecoverAndEditConfig

func (t *Ccfg) RecoverAndEditConfig() error

func (*Ccfg) Set

func (t *Ccfg) Set(ctx context.Context, kops ...keyop.T) error

Set changes or adds a keyword and its value in the configuration file.

func (*Ccfg) SetPostCommit

func (t *Ccfg) SetPostCommit(fn func() error)

func (*Ccfg) SetVolatile

func (t *Ccfg) SetVolatile(v bool)

func (*Ccfg) Status

func (t *Ccfg) Status(ctx context.Context) (instance.Status, error)

func (*Ccfg) String

func (t *Ccfg) String() string

func (*Ccfg) TmpDir

func (t *Ccfg) TmpDir() string

func (*Ccfg) Topology

func (t *Ccfg) Topology() topology.T

func (*Ccfg) Unset

func (t *Ccfg) Unset(ctx context.Context, kws ...key.T) error

Unset unsets keywords

func (*Ccfg) Update

func (t *Ccfg) Update(ctx context.Context, deleteSections []string, unsetKeys []key.T, keyOps []keyop.T) (err error)

Update updates applies configurations changes in the configuration file.

func (*Ccfg) ValidateConfig

func (t *Ccfg) ValidateConfig(ctx context.Context) (xconfig.Alerts, error)

ValidateConfig validates the configuration

func (*Ccfg) VarDir

func (t *Ccfg) VarDir() string

type Cfg

type Cfg interface {
	Keystore
}

Cfg is the cfg-kind object.

These objects are unencrypted key-value store. Values can be binary or text.

A Key can be installed as a file in a Vol, then exposed to apps and containers. A Key can be exposed as a environment variable for apps and containers. A Signal can be sent to consumer processes upon exposed key value changes.

type Configurer

type Configurer interface {
	ConfigFile() string
	Config() *xconfig.T
	EditConfig() error
	RecoverAndEditConfig() error
	DiscardAndEditConfig() error
	PrintConfig() (rawconfig.T, error)
	EvalConfig() (rawconfig.T, error)
	EvalConfigAs(string) (rawconfig.T, error)
	Eval(key.T) (interface{}, error)
	EvalAs(key.T, string) (interface{}, error)
	Get(key.T) (interface{}, error)
	ValidateConfig(context.Context) (xconfig.Alerts, error)
	DeleteSection(context.Context, ...string) error
	Delete(context.Context) error
	Set(context.Context, ...keyop.T) error
	Update(context.Context, []string, []key.T, []keyop.T) error
	Unset(context.Context, ...key.T) error
	Doc(string, string, int) (string, error)
}

Configurer is implemented by object kinds supporting get, set, unset, eval, edit, ...

func NewConfigurer

func NewConfigurer(p naming.Path, opts ...funcopt.O) (Configurer, error)

NewConfigurer returns a Configurer interface from an object path

type Core

type Core interface {
	Configurer

	Nodes() ([]string, error)
	Path() naming.Path
	FQDN() string

	FreshStatus(context.Context) (instance.Status, error)
	MonitorStatus(context.Context) (instance.Status, error)
	Status(context.Context) (instance.Status, error)
	// contains filtered or unexported methods
}

Core is implemented by all object kinds.

func NewCore

func NewCore(p naming.Path, opts ...funcopt.O) (Core, error)

NewCore returns a Core interface from an object path

type Data

type Data[T Dataer] struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

Data defines a shared holder for all objects Dataer

var (
	// StatusData is the package data holder for all objects statuses
	StatusData *Data[Status]
)

func NewData

func NewData[T Dataer]() *Data[T]

func (*Data[T]) Get

func (c *Data[T]) Get(p naming.Path) *T

func (*Data[T]) GetAll

func (c *Data[T]) GetAll() []DataElement[T]

func (*Data[T]) GetPaths

func (c *Data[T]) GetPaths() naming.Paths

func (*Data[T]) Set

func (c *Data[T]) Set(p naming.Path, v *T)

func (*Data[T]) Unset

func (c *Data[T]) Unset(p naming.Path)

type DataElement

type DataElement[T Dataer] struct {
	Path  naming.Path
	Value *T
}

type Dataer

type Dataer interface {
	Status
}

type Digest

type Digest struct {
	IsCompat  bool                `json:"is_compat"`
	Instances instance.StatesList `json:"instances"`
	Object    Status              `json:"object"`
	Path      naming.Path         `json:"path"`
}

Digest is a composite extract of different parts of the cluster status.

func NewStatus

func NewStatus() *Digest

NewStatus allocates and return a struct to host an objet full state dataset.

func (Digest) LoadTreeNode

func (t Digest) LoadTreeNode(head *tree.Node, nodes []string)

LoadTreeNode add the tree nodes representing the type instance into another.

func (Digest) Render

func (t Digest) Render(nodes []string) string

Render returns a human friendy string representation of the type instance.

func (Digest) Tree

func (t Digest) Tree(nodes []string) *tree.Tree

Tree returns a tree loaded with the type instance.

type Keystore

type Keystore interface {
	Core

	AddKey(name string, b []byte) error
	ChangeKey(name string, b []byte) error
	DecodeKey(name string) ([]byte, error)
	EditKey(name string) error
	InstallKey(name string) error
	InstallKeyTo(string, string, *os.FileMode, *os.FileMode, string, string) error
	RemoveKey(name string) error
	RenameKey(name, to string) error

	HasKey(name string) bool
	AllKeys() ([]string, error)
	MatchingKeys(string) ([]string, error)

	TransactionAddKey(name string, b []byte) error
	TransactionChangeKey(name string, b []byte) error
	TransactionRemoveKey(name string) error
	TransactionRenameKey(name, to string) error
}

Keystore is the base interface of sec, cfg and usr objects

func NewKeystore

func NewKeystore(p naming.Path, opts ...funcopt.O) (Keystore, error)

NewKeystore returns a Keystore interface from an object path

type Node

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

Node is the node struct.

func NewNode

func NewNode(opts ...funcopt.O) (*Node, error)

NewNode allocates a node.

func (Node) App

func (t Node) App() string

func (*Node) Array

func (t *Node) Array(name string) array.Driver

func (*Node) Arrays

func (t *Node) Arrays() []array.Driver

func (*Node) CNIConfig

func (t *Node) CNIConfig() (string, error)

func (*Node) CNIPlugins

func (t *Node) CNIPlugins() (string, error)

func (Node) Checks

func (t Node) Checks() (check.ResultSet, error)

Checks finds and runs the check drivers. Results are aggregated and sent to the collector.

func (*Node) ClusterConfigFile

func (t *Node) ClusterConfigFile() string

func (*Node) Collector3RestAPIURL

func (t *Node) Collector3RestAPIURL() (*url.URL, error)

func (*Node) CollectorClient

func (t *Node) CollectorClient() (*httphelper.T, error)

CollectorClient returns new client collector from config

func (Node) CollectorComplianceClient

func (t Node) CollectorComplianceClient() (*collector.Client, error)

func (Node) CollectorFeedClient

func (t Node) CollectorFeedClient() (*collector.Client, error)

func (Node) CollectorInitClient

func (t Node) CollectorInitClient() (*collector.Client, error)

func (*Node) CollectorRestAPIClient

func (t *Node) CollectorRestAPIClient() *http.Client

func (*Node) CollectorRestAPIURL

func (t *Node) CollectorRestAPIURL() (*url.URL, error)

func (Node) Config

func (t Node) Config() *xconfig.T

func (*Node) ConfigFile

func (t *Node) ConfigFile() string

func (*Node) DNSUDSDir

func (t *Node) DNSUDSDir() string

func (Node) DRPNodes

func (t Node) DRPNodes() ([]string, error)

func (Node) DeleteSection

func (t Node) DeleteSection(s ...string) error

DeleteSection removes sections from node config

func (Node) Dereference

func (t Node) Dereference(ref string) (string, error)

func (Node) DiscardAndEditConfig

func (t Node) DiscardAndEditConfig() error

func (*Node) Doc

func (t *Node) Doc(drvStr, kwStr string, depth int) (string, error)

func (Node) Drivers

func (t Node) Drivers() (interface{}, error)

Drivers returns the builtin drivers list

func (Node) EditConfig

func (t Node) EditConfig() error

func (Node) EncapNodes

func (t Node) EncapNodes() ([]string, error)

func (Node) Env

func (t Node) Env() string

func (*Node) Eval

func (t *Node) Eval(ctx context.Context, kw string) (interface{}, error)

Eval returns a keyword evaluated value

func (*Node) EvalAs

func (t *Node) EvalAs(ctx context.Context, kw string, impersonate string) (interface{}, error)

EvalAs returns a keyword evaluated value, as if the evaluator was another node

func (*Node) EvalConfig

func (t *Node) EvalConfig() (rawconfig.T, error)

func (*Node) EvalConfigAs

func (t *Node) EvalConfigAs(impersonate string) (rawconfig.T, error)

func (Node) Exists

func (t Node) Exists() bool

func (Node) ForceSysreport

func (t Node) ForceSysreport() error

func (*Node) Freeze

func (t *Node) Freeze() error

Freeze creates a persistant flag file that prevents orchestration of the object instance.

func (*Node) Frozen

func (t *Node) Frozen() time.Time

Frozen returns the unix timestamp of the last freeze.

func (*Node) Get

func (t *Node) Get(ctx context.Context, kw string) (interface{}, error)

Get returns a keyword unevaluated value

func (Node) ID

func (t Node) ID() uuid.UUID

func (Node) IsVolatile

func (t Node) IsVolatile() bool

func (Node) KeywordLookup

func (t Node) KeywordLookup(k key.T, sectionType string) keywords.Keyword

func (*Node) Labels

func (t *Node) Labels() map[string]string

func (*Node) ListArrays

func (t *Node) ListArrays() []string

func (*Node) ListPools

func (t *Node) ListPools() []string

func (Node) LoadDisks

func (t Node) LoadDisks() (disks.Disks, error)

func (Node) LoadPatch

func (t Node) LoadPatch() ([]patches.Patch, error)

func (Node) LoadPkg

func (t Node) LoadPkg() ([]packages.Pkg, error)

func (Node) LoadSystem

func (t Node) LoadSystem() (asset.Data, error)

func (Node) Log

func (t Node) Log() *plog.Logger

func (*Node) LogDir

func (t *Node) LogDir() string

func (Node) MergedConfig

func (t Node) MergedConfig() *xconfig.T

func (*Node) Nameservers

func (t *Node) Nameservers() ([]string, error)

func (Node) NewCompliance

func (t Node) NewCompliance() (*compliance.T, error)

func (Node) Nodes

func (t Node) Nodes() ([]string, error)

func (Node) PRKey

func (t Node) PRKey() (string, error)

PRKey returns the SCSI3-PR key stored as node.prkey in the node config. It sets a new key if not found.

func (*Node) Pools

func (t *Node) Pools() []pool.Pooler

func (Node) PostCommit

func (t Node) PostCommit() error

func (Node) PrintCapabilities

func (t Node) PrintCapabilities() (capabilities.L, error)

PrintCapabilities load and return node capabilities

func (*Node) PrintConfig

func (t *Node) PrintConfig() (rawconfig.T, error)

PrintConfig gets a keyword value

func (*Node) PrintSchedule

func (t *Node) PrintSchedule() schedule.Table

PrintSchedule display the object scheduling table

func (Node) PushAsset

func (t Node) PushAsset() (asset.Data, error)

PushAsset assembles the asset inventory data. Each entry value comes from: * overrides (in config) * probes * default (code)

func (Node) PushDisks

func (t Node) PushDisks() (disks.Disks, error)

func (Node) PushPatch

func (t Node) PushPatch() ([]patches.Patch, error)

func (Node) PushPkg

func (t Node) PushPkg() ([]packages.Pkg, error)

func (Node) RecoverAndEditConfig

func (t Node) RecoverAndEditConfig() error

func (Node) Register

func (t Node) Register(user, password, app string) error

Register logs in to the collector using the provided user credentials.

If the node is not already known to the collector, a new node uuid is generated by the collector and stored by the agent in the node config as a node.uuid key.

If user credentials are given, the POST /register collector handler is used, and the app code is supported. If no user credentials are given, the "register_node" jsonrpc handler is used, and app code is ignored.

If app is not set, the node is added to any app under the user's responsibility.

func (Node) ScanCapabilities

func (t Node) ScanCapabilities() (capabilities.L, error)

ScanCapabilities scan node capabilities and return new capabilities

func (*Node) Schedules

func (t *Node) Schedules() schedule.Table

func (*Node) Set

func (t *Node) Set(ctx context.Context, kops ...keyop.T) error

Set sets a keyword value

func (*Node) SetVolatile

func (t *Node) SetVolatile(v bool)

func (*Node) ShowPools

func (t *Node) ShowPools() pool.StatusList

func (*Node) ShowPoolsByName

func (t *Node) ShowPoolsByName(name string) pool.StatusList

func (Node) String

func (t Node) String() string

func (Node) Sysreport

func (t Node) Sysreport() error

Sysreport sends an archive of modified files the agent is configured to track, and the list of files deleted since the last call.

The collector is in charge of versioning this information and of reporting on changes.

func (*Node) TmpDir

func (t *Node) TmpDir() string

func (*Node) Unfreeze

func (t *Node) Unfreeze() error

Unfreeze removes the persistant flag file that prevents orchestration of the object instance.

func (*Node) Unset

func (t *Node) Unset(ctx context.Context, kws ...key.T) error

Unset removes keywords from node config

func (*Node) Update

func (t *Node) Update(ctx context.Context, deleteSections []string, unsetKeys []key.T, keyOps []keyop.T) (err error)

Update updates applies configurations changes in the configuration file.

func (*Node) ValidateConfig

func (t *Node) ValidateConfig() (xconfig.Alerts, error)

ValidateConfig node configuration

func (*Node) VarDir

func (t *Node) VarDir() string

type Sec

type Sec interface {
	Keystore
	SecureKeystore
}

Sec is the sec-kind object.

These objects are encrypted key-value store. Values can be binary or text.

A Key can be installed as a file in a Vol, then exposed to apps and containers. A Key can be exposed as a environment variable for apps and containers. A Signal can be sent to consumer processes upon exposed key value changes.

type SecureKeystore

type SecureKeystore interface {
	GenCert() error
	PKCS() ([]byte, error)
}

SecureKeystore is implemented by encrypting Keystore object kinds (usr, sec).

type Status

type Status struct {
	Avail            status.T         `json:"avail"`
	FlexTarget       int              `json:"flex_target,omitempty"`
	FlexMin          int              `json:"flex_min,omitempty"`
	FlexMax          int              `json:"flex_max,omitempty"`
	Frozen           string           `json:"frozen"`
	Orchestrate      string           `json:"orchestrate"`
	Overall          status.T         `json:"overall"`
	PlacementPolicy  placement.Policy `json:"placement_policy"`
	PlacementState   placement.State  `json:"placement_state"`
	Priority         priority.T       `json:"priority"`
	Provisioned      provisioned.T    `json:"provisioned"`
	Scope            []string         `json:"scope"`
	Topology         topology.T       `json:"topology"`
	UpInstancesCount int              `json:"up_instances_count"`

	// Volume specific
	Pool *string `json:"pool,omitempty"`
	Size *int64  `json:"size,omitempty"`

	UpdatedAt time.Time `json:"updated_at"`
}

Status contains the object states obtained via aggregation of all instances states. It exists when an instance config exists somewhere

func (*Status) DeepCopy

func (s *Status) DeepCopy() *Status

type Svc

type Svc interface {
	Actor

	EncapNodes() ([]string, error)
}

Svc is the svc-kind object.

These objects contain front facing resources like app and containers.

type Usr

type Usr interface {
	Sec
}

Usr is the usr-kind object.

These objects contain a opensvc api user grants and credentials. They are required for basic, session and x509 api access, but not for OpenID access (where grants are embedded in the trusted token)

type UsrDB

type UsrDB struct{}

UsrDB implements UserGrants to authenticate user and get its grants

func (*UsrDB) UserGrants

func (_ *UsrDB) UserGrants(username, password string) ([]string, error)

UserGrants returns grants for username if username and password match existing usr object

type Vol

type Vol interface {
	Actor
	Head() string
	Device() *device.T
	HoldersExcept(ctx context.Context, p naming.Path) naming.Paths
}

Vol is the vol-kind object.

These objects contain cluster-dependent fs, disk and sync resources.

They are created by feeding a volume resource configuration (cluster independant) to a pool.

Source Files

Jump to

Keyboard shortcuts

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