Documentation ¶
Overview ¶
Package device defines interfaces for configuration of the Vanadium device manager. The subdirectories implement the v.io/v23/services/device interfaces.
The device manager is a server that is expected to run on every Vanadium-enabled device, and it handles both device management and management of the applications running on the device.
The device manager is responsible for installing, updating, and launching applications. It therefore sets up a footprint on the local filesystem, both to maintain its internal state, and to provide applications with their own private workspaces.
The device manager is responsible for updating itself. The mechanism to do so is implementation-dependent, though each device manager expects to be supplied with the file path of a symbolic link file, which the device manager will then update to point to the updated version of itself before terminating itself. The device manager should therefore be launched via this symbolic link to enable auto-updates. To enable updates, in addition to the symbolic link path, the device manager needs to be told what its application metadata is (such as command-line arguments and environment variables, i.e. the application envelope defined in the v.io/v23/services/application package), as well as the object name for where it can fetch an updated envelope, and the local filesystem path for its previous version (for rollbacks).
Finally, the device manager needs to know its own object name, so it can pass that along to the applications that it starts.
The impl subpackage contains the implementation of the device manager service.
The config subpackage encapsulates the configuration settings that form the device manager service's 'contract' with its environment.
The deviced subpackage contains the main driver.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ConfigDesc rpc.InterfaceDesc = descConfig
ConfigDesc describes the Config interface.
Functions ¶
This section is empty.
Types ¶
type ConfigClientMethods ¶
type ConfigClientMethods interface { // Set sets the value for key. Set(_ *context.T, key string, value string, _ ...rpc.CallOpt) error }
ConfigClientMethods is the client interface containing Config methods.
Config is an RPC API to the config service.
type ConfigClientStub ¶
type ConfigClientStub interface { ConfigClientMethods rpc.UniversalServiceMethods }
ConfigClientStub adds universal methods to ConfigClientMethods.
func ConfigClient ¶
func ConfigClient(name string) ConfigClientStub
ConfigClient returns a client stub for Config.
type ConfigServerMethods ¶
type ConfigServerMethods interface { // Set sets the value for key. Set(_ *context.T, _ rpc.ServerCall, key string, value string) error }
ConfigServerMethods is the interface a server writer implements for Config.
Config is an RPC API to the config service.
type ConfigServerStub ¶
type ConfigServerStub interface { ConfigServerStubMethods // Describe the Config interfaces. Describe__() []rpc.InterfaceDesc }
ConfigServerStub adds universal methods to ConfigServerStubMethods.
func ConfigServer ¶
func ConfigServer(impl ConfigServerMethods) ConfigServerStub
ConfigServer returns a server stub for Config. It converts an implementation of ConfigServerMethods into an object that may be used by rpc.Server.
type ConfigServerStubMethods ¶
type ConfigServerStubMethods ConfigServerMethods
ConfigServerStubMethods is the server interface containing Config methods, as expected by rpc.Server. There is no difference between this interface and ConfigServerMethods since there are no streaming methods.
Directories ¶
Path | Synopsis |
---|---|
Claimable is a server that implements the Claimable interface from v.io/v23/services/device.
|
Claimable is a server that implements the Claimable interface from v.io/v23/services/device. |
Command device facilitates interaction with the Vanadium device manager.
|
Command device facilitates interaction with the Vanadium device manager. |
Command deviced is used to launch, configure and manage the deviced daemon, which implements the v.io/v23/services/device interfaces.
|
Command deviced is used to launch, configure and manage the deviced daemon, which implements the v.io/v23/services/device interfaces. |
internal/installer
Package installer contains logic responsible for managing the device manager server, including setting it up / tearing it down, and starting / stopping it.
|
Package installer contains logic responsible for managing the device manager server, including setting it up / tearing it down, and starting / stopping it. |
internal/starter
Package starter provides a single function that starts up servers for a mounttable and a device manager that is mounted on it.
|
Package starter provides a single function that starts up servers for a mounttable and a device manager that is mounted on it. |
internal/versioning
Package versioning handles device manager versioning.
|
Package versioning handles device manager versioning. |
Command inithelper manages services for a variety of platforms and init systems, such as upstart, systemd etc.
|
Command inithelper manages services for a variety of platforms and init systems, such as upstart, systemd etc. |
internal
|
|
config
Package config handles configuration state passed across instances of the device manager.
|
Package config handles configuration state passed across instances of the device manager. |
errors
Package errors defines the error ids that are shared between server and client-side.
|
Package errors defines the error ids that are shared between server and client-side. |
sysinit
Package sysinit provides config generation for a variety of platforms and "init" systems such as upstart, systemd etc.
|
Package sysinit provides config generation for a variety of platforms and "init" systems such as upstart, systemd etc. |
Command restarter runs a child command and optionally restarts it depending on the setting of the --restart-exit-code flag.
|
Command restarter runs a child command and optionally restarts it depending on the setting of the --restart-exit-code flag. |
Command suidhelper runs the provided command as the specified user identity.
|
Command suidhelper runs the provided command as the specified user identity. |