Merge pull request #142 from dmend/management
Added management api and version resource
This commit is contained in:
commit
592d406c6e
@ -57,3 +57,13 @@ def create_main_app(global_config, **local_conf):
|
|||||||
api.add_route('/{0}'.format(performance_uri), performance)
|
api.add_route('/{0}'.format(performance_uri), performance)
|
||||||
|
|
||||||
return wsgi_app
|
return wsgi_app
|
||||||
|
|
||||||
|
|
||||||
|
def create_admin_app(global_config, **local_conf):
|
||||||
|
config.parse_args()
|
||||||
|
|
||||||
|
versions = res.VersionResource()
|
||||||
|
wsgi_app = api = falcon.API()
|
||||||
|
api.add_route('/', versions)
|
||||||
|
|
||||||
|
return wsgi_app
|
@ -5,13 +5,12 @@
|
|||||||
PKG=barbican
|
PKG=barbican
|
||||||
|
|
||||||
# For local development, set VENV_PYTHON equal to the path to your virtual environment's site-packages location
|
# For local development, set VENV_PYTHON equal to the path to your virtual environment's site-packages location
|
||||||
VENV=.venv
|
VENV=${VENV:-.venv}
|
||||||
VENV_PYTHON=./$VENV/lib/python2.7/site-packages
|
VENV_HOME=${VENV_HOME:-$PWD}
|
||||||
|
VENV_PYTHON=$VENV_HOME/$VENV/lib/python2.7/site-packages
|
||||||
|
|
||||||
PATH=/opt/uwsgi:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/etc/$PKG:$PATH
|
|
||||||
PKG_DIR=/etc/$PKG
|
PKG_DIR=/etc/$PKG
|
||||||
CONF_FILE=$PKG_DIR/barbican-api.ini
|
CONF_FILE=$PKG_DIR/barbican-api.conf
|
||||||
PASTE_FILE=$PKG_DIR/barbican-api-paste.ini
|
|
||||||
POLICY_FILE=$PKG_DIR/policy.json
|
POLICY_FILE=$PKG_DIR/policy.json
|
||||||
SIGNING_DIR=$PKG_DIR/cache/
|
SIGNING_DIR=$PKG_DIR/cache/
|
||||||
OPTS='--daemonize /var/log/barbican/uwsgi.log'
|
OPTS='--daemonize /var/log/barbican/uwsgi.log'
|
||||||
@ -19,10 +18,10 @@ OPTS='--daemonize /var/log/barbican/uwsgi.log'
|
|||||||
# Configure for a local deployment environment:
|
# Configure for a local deployment environment:
|
||||||
if [ ! -f $CONF_FILE ];
|
if [ ! -f $CONF_FILE ];
|
||||||
then
|
then
|
||||||
CONF_FILE=./etc/$PKG/barbican-api.ini
|
PKG_DIR=$PWD/etc/$PKG
|
||||||
|
CONF_FILE=./etc/$PKG/barbican-api.conf
|
||||||
PYTHONPATH=$VENV_PYTHON:$PYTHONPATH
|
PYTHONPATH=$VENV_PYTHON:$PYTHONPATH
|
||||||
PASTE_FILE=$PWD/etc/$PKG/barbican-api-paste.ini
|
OPTS='-H '$VENV_HOME/$VENV
|
||||||
OPTS='-H ./'$VENV
|
|
||||||
|
|
||||||
# Copy conf file to home directory so oslo.config can find it
|
# Copy conf file to home directory so oslo.config can find it
|
||||||
LOCAL_CONF_FILE=~/barbican-api.conf
|
LOCAL_CONF_FILE=~/barbican-api.conf
|
||||||
@ -34,17 +33,17 @@ fi
|
|||||||
|
|
||||||
# TODO: This is breaking deployment...need to analyze.
|
# TODO: This is breaking deployment...need to analyze.
|
||||||
#if [ ! -f $POLICY_FILE ];
|
#if [ ! -f $POLICY_FILE ];
|
||||||
#then
|
#then
|
||||||
# LOCAL_POLICY_FILE=./etc/$PKG/policy.json
|
# LOCAL_POLICY_FILE=./etc/$PKG/policy.json
|
||||||
# mkdir -p $PKG_DIR
|
# mkdir -p $PKG_DIR
|
||||||
# sudo cp $LOCAL_POLICY_FILE POLICY_FILE
|
# sudo cp $LOCAL_POLICY_FILE POLICY_FILE
|
||||||
#fi
|
#fi
|
||||||
#
|
#
|
||||||
#if [ ! -f $SIGNING_DIR ];
|
#if [ ! -f $SIGNING_DIR ];
|
||||||
#then
|
#then
|
||||||
# echo "making "$SIGNING_DIR
|
# echo "making "$SIGNING_DIR
|
||||||
# sudo mkdir -p $SIGNING_DIR
|
# sudo mkdir -p $SIGNING_DIR
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
echo 'Running barbican-api uwsgi process, using init file here: ' $CONF_FILE
|
echo 'Running Barbican uWSGI Emperor '$PKG_DIR/vassals
|
||||||
uwsgi --paste config:$PASTE_FILE --ini $CONF_FILE $OPTS
|
uwsgi --master --emperor $PKG_DIR/vassals $OPTS
|
94
debian/barbican-api.init
vendored
94
debian/barbican-api.init
vendored
@ -1,94 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
### BEGIN INIT INFO
|
|
||||||
# Provides: barbican-api
|
|
||||||
# Required-Start: $network $local_fs $remote_fs $syslog
|
|
||||||
# Required-Stop: $remote_fs
|
|
||||||
# Default-Start: 2 3 4 5
|
|
||||||
# Default-Stop: 0 1 6
|
|
||||||
# Short-Description: Barbican API server
|
|
||||||
# Description: Frontend Barbican API server
|
|
||||||
### END INIT INFO
|
|
||||||
|
|
||||||
# Author: John Wood <john.wood@rackspace.com>
|
|
||||||
|
|
||||||
# PATH should only include /usr/* if it runs after the mountnfs.sh script
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
|
||||||
DESC="Key Management Service API"
|
|
||||||
NAME=barbican-api
|
|
||||||
DAEMON=/usr/bin/barbican-api
|
|
||||||
PIDFILE=/var/run/$NAME.pid
|
|
||||||
SCRIPTNAME=/etc/init.d/$NAME
|
|
||||||
|
|
||||||
# Exit if the package is not installed
|
|
||||||
[ -x $DAEMON ] || exit 0
|
|
||||||
|
|
||||||
# Read configuration variable file if it is present
|
|
||||||
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
|
|
||||||
|
|
||||||
. /lib/lsb/init-functions
|
|
||||||
|
|
||||||
do_start()
|
|
||||||
{
|
|
||||||
start-stop-daemon --start --background --quiet --chuid barbican:barbican --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \
|
|
||||||
|| return 1
|
|
||||||
start-stop-daemon --start --background --quiet --chuid barbican:barbican --make-pidfile --pidfile $PIDFILE --startas $DAEMON \
|
|
||||||
|| return 2
|
|
||||||
}
|
|
||||||
|
|
||||||
do_stop()
|
|
||||||
{
|
|
||||||
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
|
|
||||||
RETVAL="$?"
|
|
||||||
rm -f $PIDFILE
|
|
||||||
|
|
||||||
# TBD: HACK ALERT! Need to figure out why uwsgi spawns a separate process!
|
|
||||||
killall -s SIGKILL uwsgi
|
|
||||||
|
|
||||||
return "$RETVAL"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
start)
|
|
||||||
log_daemon_msg "Starting $DESC" "$NAME"
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0|1) log_end_msg 0 ;;
|
|
||||||
2) log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
stop)
|
|
||||||
log_daemon_msg "Stopping $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1) log_end_msg 0 ;;
|
|
||||||
2) log_end_msg 1 ;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
status)
|
|
||||||
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
|
|
||||||
;;
|
|
||||||
restart|force-reload)
|
|
||||||
log_daemon_msg "Restarting $DESC" "$NAME"
|
|
||||||
do_stop
|
|
||||||
case "$?" in
|
|
||||||
0|1)
|
|
||||||
do_start
|
|
||||||
case "$?" in
|
|
||||||
0) log_end_msg 0 ;;
|
|
||||||
1) log_end_msg 1 ;; # Old process is still running
|
|
||||||
*) log_end_msg 1 ;; # Failed to start
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# Failed to stop
|
|
||||||
log_end_msg 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
:
|
|
5
debian/barbican-api.install
vendored
5
debian/barbican-api.install
vendored
@ -1,4 +1,5 @@
|
|||||||
etc/barbican/barbican-api-paste.ini etc/barbican
|
etc/barbican/barbican-api-paste.ini etc/barbican
|
||||||
|
etc/barbican/barbican-admin-paste.ini etc/barbican
|
||||||
etc/barbican/barbican-api.conf etc/barbican
|
etc/barbican/barbican-api.conf etc/barbican
|
||||||
etc/barbican/barbican-api.ini etc/barbican
|
etc/barbican/vassals/barbican-api.ini etc/barbican/vassals
|
||||||
usr/bin/barbican-api
|
etc/barbican/vassals/barbican-admin.ini etc/barbican/vassals
|
||||||
|
7
debian/barbican-api.upstart
vendored
Normal file
7
debian/barbican-api.upstart
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# Barbican script
|
||||||
|
|
||||||
|
description "Barbican Key Management APIs"
|
||||||
|
start on runlevel [2345]
|
||||||
|
stop on runlevel [06]
|
||||||
|
|
||||||
|
exec uwsgi --master --die-on-term --emperor /etc/barbican/vassals --daemonize /var/log/barbican/uwsgi.log
|
8
etc/barbican/barbican-admin-paste.ini
Normal file
8
etc/barbican/barbican-admin-paste.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[pipeline:main]
|
||||||
|
pipeline = unauthenticated-context admin
|
||||||
|
|
||||||
|
[app:admin]
|
||||||
|
paste.app_factory = barbican.api.app:create_admin_app
|
||||||
|
|
||||||
|
[filter:unauthenticated-context]
|
||||||
|
paste.filter_factory = barbican.api.middleware.context:UnauthenticatedContextMiddleware.factory
|
@ -1,11 +0,0 @@
|
|||||||
[uwsgi]
|
|
||||||
socket = :9311
|
|
||||||
protocol = http
|
|
||||||
processes = 1
|
|
||||||
master = true
|
|
||||||
vaccum = true
|
|
||||||
no-default-app = true
|
|
||||||
memory-report = true
|
|
||||||
|
|
||||||
pythonpath = /etc/barbican
|
|
||||||
module = barbican.api.app:application
|
|
8
etc/barbican/vassals/barbican-admin.ini
Normal file
8
etc/barbican/vassals/barbican-admin.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[uwsgi]
|
||||||
|
socket = :9312
|
||||||
|
protocol = http
|
||||||
|
processes = 1
|
||||||
|
vacuum = true
|
||||||
|
no-default-app = true
|
||||||
|
memory-report = true
|
||||||
|
paste = config:/etc/barbican/barbican-admin-paste.ini
|
8
etc/barbican/vassals/barbican-api.ini
Normal file
8
etc/barbican/vassals/barbican-api.ini
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[uwsgi]
|
||||||
|
socket = :9311
|
||||||
|
protocol = http
|
||||||
|
processes = 1
|
||||||
|
vacuum = true
|
||||||
|
no-default-app = true
|
||||||
|
memory-report = true
|
||||||
|
paste = config:/etc/barbican/barbican-api-paste.ini
|
Loading…
Reference in New Issue
Block a user