Tools for writing OpenStack Snap packages
Go to file
zhouxinyong 310ccc5a8a Fix author-email in setup.cfg
Change-Id: Ifa378c502197d6f2f7785a8f073718ebcffea958
2019-01-24 11:07:46 +08:00
doc/source Add some basic unit tests 2016-11-21 12:29:29 +00:00
releasenotes Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
snap_openstack Add automatic setup of REQUESTS_CA_BUNDLE 2017-10-26 09:39:42 +01:00
.coveragerc Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.gitignore Fixup jinja2 loader configuration 2016-11-10 09:58:20 +00:00
.gitreview Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.mailmap Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
.testr.conf Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
babel.cfg Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
CONTRIBUTING.rst Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
HACKING.rst Update HACKING format 2016-11-10 12:43:45 +00:00
LICENSE Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
MANIFEST.in Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
README.rst Tweak README 2016-11-10 12:18:22 +00:00
requirements.txt Add locking to enable single process code execution 2017-03-22 16:40:21 +00:00
setup.cfg Fix author-email in setup.cfg 2019-01-24 11:07:46 +08:00
setup.py Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
test-requirements.txt Initial Cookiecutter Commit. 2016-11-09 16:22:37 +00:00
tox.ini Add automatic setup of REQUESTS_CA_BUNDLE 2017-10-26 09:39:42 +01: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