ampache #3

Description

This charm deploys ampache media streaming server. https://github.com/ampache/ampache.


Overview

This is the base layer for all charms built using layers. It
provides all of the standard Juju hooks and runs the
charms.reactive.main loop for them. It also bootstraps the
charm-helpers and charms.reactive libraries and all of their
dependencies for use by the charm.

Usage

To create a charm layer using this base layer, you need only include it in
a layer.yaml file:

includes: ['layer:basic']

This will fetch this layer from interfaces.juju.solutions and incorporate
it into your charm layer. You can then add handlers under the reactive/
directory. Note that any file under reactive/ will be expected to
contain handlers, whether as Python decorated functions or executables
using the external handler protocol.

You can also define Python libraries under lib/charms/X where X is a
package under the charms. namespace for your charm. See PyPI
for what packages already exist under the charms. namespace.

Hooks

This layer provides hooks that other layers can react to using the decorators
of the charms.reactive library:

  • config-changed
  • install
  • leader-elected
  • leader-settings-changed
  • start
  • stop
  • upgrade-charm
  • update-status

Other hooks are not implemented at this time. A new layer can implement storage
or relation hooks in their own layer by putting them in the hooks directory.

Note: Because update-status is invoked every 5 minutes, you should take
care to ensure that your reactive handlers only invoke expensive operations
when absolutely necessary. It is recommended that you use helpers like
[@only_once][], [@when_file_changed][], and [data_changed][] to ensure
that handlers run only when necessary.

Layer Configuration

This layer does not currently support any configuration.

Reactive States

This layer currently does not set any reactive states.

Actions

This layer currently does not define any actions.