James Page ba1ecfee7b Always execute copyfiles and template directives
Targets for copyfiles and template directives should be considered
as owned by the snap, and as a result should always be executed,
irrespective of whether the target file exists or not.

This ensures that any use of {{ snap }} is current, and that changes
to templates in the snap are reflected on refresh.

Execute copyfiles prior to template rendering to ensure templated
files overwrite any files copied as a copyfiles target.

Change-Id: I97bf668cc86099227670a00defd4ee3c36b58ed7
2017-05-18 13:52:56 +01:00
2016-11-21 12:29:29 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-10 09:58:20 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-10 12:43:45 +00:00
2016-11-09 16:22:37 +00:00
2016-11-09 16:22:37 +00:00
2016-11-10 12:18:22 +00:00
2016-11-10 09:18:28 +00:00
2016-11-09 16:22:37 +00:00
2016-11-21 12:29:29 +00:00

snap.openstack

Helpers for writing Snaps for OpenStack

This project provides a wrapper for automatically wrapping openstack commands in snaps, building out appropriate Oslo configuration and logging options on the command line.

This wrapper is used by including a snap-openstack.yaml configuration file into the root of a snap.

Setup is executed for all entry points prior to execution snap-openstack will assure that templated files are in place and that any directory structure in $SNAP_COMMON is created.

setup:
  dirs:
    - "{snap_common}/etc/nova.conf.d"
    - "{snap_common}/etc/nova"
    - "{snap_common}/logs"
  templates:
    "nova-snap.conf.j2": "{snap_common}/etc/nova.conf.d/nova-snap.conf"

snap-openstack.yaml should also declare entry points for the snap:

entry_points:
  nova-manage:
    binary: nova-manage
    config-files:
      - "{snap}/etc/nova/nova.conf"
      - "{snap_common}/etc/nova/nova.conf"
    config-dirs:
      - "{snap_common}/etc/nova.conf.d"
    log-file: "{snap_common}/logs/nova-manage.log"

Executes the following:

nova-manage --config-file=$SNAP/etc/nova/nova,conf \
            --config-file=$SNAP_COMMON/etc/nova/nova.conf \
            --config-dir=$SNAP_COMMON/etc/nova.conf.d \
            --log-file=$SNAP_COMMON/logs/nova-manage.log

entry points are designed to be executed from the snapcraft.yaml apps section using:

command: snap-openstack nova-manage

any additional arguments provided will be passed to the underlying binary.

Features

  • Support for classic mode snap use
Description
Tools for writing OpenStack Snap packages
Readme 348 KiB
Languages
Python 99.1%
reStructuredText 0.9%