juju: github.com/juju/juju/service/snap Index | Files

package snap

import "github.com/juju/juju/service/snap"

Package snap is a minimal service.Service implementation, derived from the on service/upstart package.


Package Files



const (
    // Command is a path to the snap binary, or to one that can be detected by os.Exec
    Command = "snap"

func IsRunning Uses

func IsRunning() (bool, error)

IsRunning indicates whether Snap is currently running on the system. When the snap command (normally installed to /usr/bin/snap) cannot be detected, IsRunning returns (false, nil). Other errors result in (false, err).

func ListCommand Uses

func ListCommand() string

ListCommand returns a command that will be interpreted by a shell to produce a list of currently-installed services that are managed by snap.

func ListServices Uses

func ListServices() ([]string, error)

ListServices returns a list of services that are being managed by snap.

func SetSnapConfig Uses

func SetSnapConfig(snap string, key string, value string) error

SetSnapConfig sets a snap's key to value.

type App Uses

type App struct {
    Name               string
    ConfinementPolicy  string
    Channel            string
    BackgroundServices []BackgroundService
    Prerequisites      []App

App is a wrapper around a single snap

func NewApp Uses

func NewApp(name string) App

func (*App) StartCommands Uses

func (a *App) StartCommands(executable string) []string

StartCommands returns a list if shell commands that should be executed (in order) to start App and its background services. executeable is a path to the snap executable. If the app has prerequisite applications defined, then take care to call StartCommands on those apps also.

func (*App) Validate Uses

func (a *App) Validate() error

type BackgroundService Uses

type BackgroundService struct {
    // name is the name of the service, without the snap name.
    // For example , for the`juju-db.daemon` service, use the name `daemon`.
    Name string

    // enableAtStartup determines whether services provided
    // by the snap should be started with the `--enable` flag
    EnableAtStartup bool

BackgroundService represents the a service that snaps define. For example, the multipass snap includes the libvirt-bin and multipassd background services.

func (*BackgroundService) Validate Uses

func (backgroundService *BackgroundService) Validate() error

Validate checks that the construction parameters of backgroundService are valid. Successful validation returns nil.

type Service Uses

type Service struct {
    // contains filtered or unexported fields

Service is a type for services that are being managed by snapd as snaps.

func NewService Uses

func NewService(mainSnap string, serviceName string, conf common.Conf, snapPath string, Channel string, ConfinementPolicy string, backgroundServices []BackgroundService, prerequisites []App) (Service, error)

NewService returns a new Service defined by `conf`, with the name `serviceName`. The Service abstracts service(s) provided by a snap.

`serviceName` defaults to `snapName`. These two parameters are distinct to allow for a file path to provided as a `mainSnap`, implying that a local snap will be installed by snapd.

If no BackgroundServices are provided, Service will wrap all of the snap's background services.

func NewServiceFromName Uses

func NewServiceFromName(name string, conf common.Conf) (Service, error)

NewServiceFromName returns a service that manages all of a snap's services as if they were a single service. NewServiceFromName uses the name parameter to fetch and install a snap with a matching name, then uses default policies for the installation. To install a snap with --classic confinement, or via --edge, --candidate or --beta, then create the Service via another method.

func (Service) Conf Uses

func (s Service) Conf() common.Conf

Conf returns the service's configuration.

Conf is part of the service.Service interface.

func (Service) Exists Uses

func (s Service) Exists() (bool, error)

Exists is not implemented for snaps.

Exists is part of the service.Service interface.

func (Service) Install Uses

func (s Service) Install() error

Install installs the snap and its background services.

Install is part of the service.Service interface.

func (Service) InstallCommands Uses

func (s Service) InstallCommands() ([]string, error)

InstallCommands returns a slice of shell commands that is executed independently, in serial, by a shell. When the final command returns with a 0 exit code, the installation will be deemed to have been successful.

InstallCommands is part of the service.Service interface

func (Service) Installed Uses

func (s Service) Installed() (bool, error)

Installed returns true if the service has been successfully installed.

Installed is part of the service.Service interface.

func (Service) Name Uses

func (s Service) Name() string

Name returns the service's name. It should match snap's naming conventions, e.g. <snap> for all services provided by <snap> and `<snap>.<app>` for a specific service under the snap's control.For example, the `juju-db` snap provides a `daemon` service. Its name is `juju-db.daemon`.

Name is part of the service.Service interface

func (Service) Remove Uses

func (s Service) Remove() error

Remove uninstalls a service, . Returns nil when the underlying call to `snap remove <service-name>` exits with error code 0.

Remove is part of the service.ServiceActions interface.

func (*Service) Restart Uses

func (s *Service) Restart() error

Restart restarts the service, or starts if it's not currently running.

Restart is part of the service.RestartableService interface

func (Service) Running Uses

func (s Service) Running() (bool, error)

Running returns (true, nil) when snap indicates that service is currently active.

func (Service) Start Uses

func (s Service) Start() error

Start starts the service, returning nil when successful. If the service is already running, Start does not restart it.

Start is part of the service.ServiceActions interface

func (Service) StartCommands Uses

func (s Service) StartCommands() ([]string, error)

StartCommands returns a slice of strings. that are shell commands to be executed by a shell which start the service.

func (Service) Stop Uses

func (s Service) Stop() error

Stop stops a running service. Returns nil when the underlying call to `snap stop <service-name>` exits with error code 0.

Stop is part of the service.ServiceActions interface.

func (Service) Validate Uses

func (s Service) Validate() error

Validate validates that snap.Service has been correctly configured. Validate returns nil when successful and an error when successful.

Package snap imports 10 packages (graph) and is imported by 6 packages. Updated 2019-05-12. Refresh now. Tools for package owners.