From f2c343dae4d3d60111236648ee804d060dc6e0e8 Mon Sep 17 00:00:00 2001 From: Yujun Zhang Date: Wed, 24 May 2017 10:19:48 +0800 Subject: [PATCH] Create devstack plugin for osprofiler configuration Change-Id: Ifd6f90ea1d39d7385f1ab099bc7b0b2ed59efac5 Signed-off-by: Yujun Zhang --- devstack/README.rst | 27 ++++++++++++++++ devstack/plugin.sh | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++ devstack/settings | 3 ++ 3 files changed, 122 insertions(+) create mode 100644 devstack/README.rst create mode 100644 devstack/plugin.sh create mode 100644 devstack/settings diff --git a/devstack/README.rst b/devstack/README.rst new file mode 100644 index 00000000..cd836f13 --- /dev/null +++ b/devstack/README.rst @@ -0,0 +1,27 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) 2017 OPNFV. + +==================================== +Enabling OPNFV Doctor using DevStack +==================================== + +This directory contains the files necessary to run OpenStack with enabled +OPNFV Doctor in DevStack. + +To configure DevStack to enable OPNFV Doctor edit +``${DEVSTACK_DIR}/local.conf`` file and add:: + + enable_plugin aodh http://git.openstack.org/openstack/aodh + enable_plugin panko https://git.openstack.org/openstack/panko + enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer + enable_plugin osprofiler https://git.openstack.org/openstack/osprofiler + enable_plugin doctor https://git.opnfv.org/doctor + +to the ``[[local|localrc]]`` section. + +.. note:: The order of enabling plugins matters. + +Run DevStack as normal:: + + $ ./stack.sh diff --git a/devstack/plugin.sh b/devstack/plugin.sh new file mode 100644 index 00000000..a7f6a63b --- /dev/null +++ b/devstack/plugin.sh @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# Defaults +# -------- + +CONF_FILES=( + $CINDER_CONF + $HEAT_CONF + $KEYSTONE_CONF + $NOVA_CONF + $NEUTRON_CONF + $GLANCE_API_CONF + $GLANCE_REGISTRY_CONF +# Supported by osprofiler but not used in doctor at the moment +# $TROVE_CONF +# $TROVE_CONDUCTOR_CONF +# $TROVE_GUESTAGENT_CONF +# $TROVE_TASKMANAGER_CONF +# $SENLIN_CONF +# $MAGNUM_CONF +# $ZUN_CONF +) + +function install_doctor { + # no-op + : +} + +function configure_doctor { + for conf in ${CONF_FILES[@]}; do + if [ -f $conf ] + then + iniset $conf profiler enabled true + iniset $conf profiler trace_sqlalchemy true + iniset $conf profiler hmac_keys $(iniget $conf profiler hmac_keys),${DOCTOR_HMAC_KEYS:=doctor} + iniset $conf profiler connection_string ${OSPROFILER_CONNECTION_STRING:=redis://127.0.0.1:6379} + fi + done +} + +function init_doctor { + # no-op + : +} + +# check for service enabled +if is_service_enabled doctor; then + + if [[ "$1" == "stack" && "$2" == "pre-install" ]]; then + # Set up system services + echo_summary "Configuring system services Doctor" + # install_package cowsay + + elif [[ "$1" == "stack" && "$2" == "install" ]]; then + # Perform installation of service source + echo_summary "Installing Doctor" + install_doctor + + elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then + # Configure after the other layer 1 and 2 services have been configured + echo_summary "Configuring Doctor" + configure_doctor + + elif [[ "$1" == "stack" && "$2" == "extra" ]]; then + # Initialize and start the doctor service + echo_summary "Initializing Doctor" + init_doctor + fi + + if [[ "$1" == "unstack" ]]; then + # Shut down doctor services + # no-op + : + fi + + if [[ "$1" == "clean" ]]; then + # Remove state and transient data + # Remember clean.sh first calls unstack.sh + # no-op + : + fi +fi + diff --git a/devstack/settings b/devstack/settings new file mode 100644 index 00000000..83e02e35 --- /dev/null +++ b/devstack/settings @@ -0,0 +1,3 @@ +# setting file for doctor + +enable_service doctor -- 2.16.6