diff --git a/devstack/lib/barbican b/devstack/lib/barbican index 798743fb2..5daa6cf17 100644 --- a/devstack/lib/barbican +++ b/devstack/lib/barbican @@ -25,6 +25,12 @@ XTRACE=$(set +o | grep xtrace) set +o xtrace +# PyKMIP configuration +PYKMIP_SERVER_KEY=${PYKMIP_SERVER_KEY:-$INT_CA_DIR/private/pykmip-server.key} +PYKMIP_SERVER_CERT=${PYKMIP_SERVER_CERT:-$INT_CA_DIR/pykmip-server.crt} +PYKMIP_CLIENT_KEY=${PYKMIP_CLIENT_KEY:-$INT_CA_DIR/private/pykmip-client.key} +PYKMIP_CLIENT_CERT=${PYKMIP_CLIENT_CERT:-$INT_CA_DIR/pykmip-client.crt} +PYKMIP_CA_PATH=${PYKMIP_CA_PATH:-$INT_CA_DIR/ca-chain.pem} # Functions # --------- @@ -355,6 +361,59 @@ function create_barbican_accounts { } +# PyKMIP functions +# ---------------- + +# install_pykmip - install the PyKMIP python module +# create keys and certificate for server +function install_pykmip { + pip_install 'pykmip' + + if is_service_enabled pykmip-server; then + [ ! -d ${PYKMIP_CONF_DIR} ] && sudo mkdir -p ${PYKMIP_CONF_DIR} + sudo chown ${USER} ${PYKMIP_CONF_DIR} + [ ! -d ${PYKMIP_LOG_DIR} ] && sudo mkdir -p ${PYKMIP_LOG_DIR} + sudo chown ${USER} ${PYKMIP_LOG_DIR} + + init_CA + if [ ! -e ${PYKMIP_SERVER_KEY} ]; then + make_cert ${INT_CA_DIR} 'pykmip-server' 'pykmip-server' + chmod 400 ${PYKMIP_SERVER_KEY} + fi + if [ ! -e ${PYKMIP_CLIENT_KEY} ]; then + make_cert ${INT_CA_DIR} 'pykmip-client' 'pykmip-client' + chmod 400 ${PYKMIP_CLIENT_KEY} + fi + + if [ ! -e ${PYKMIP_CONF} ]; then + cat > ${PYKMIP_CONF} <=3.6 # Apache-2.0 hacking<0.11,>=0.10.0 mock>=1.2 # BSD oslotest>=1.10.0 # Apache-2.0 -pykmip>=0.4.0 # Apache 2.0 License +pykmip>=0.5.0 # Apache 2.0 License testrepository>=0.0.18 # Apache-2.0/BSD testtools>=1.4.0 # MIT fixtures<2.0,>=1.3.1 # Apache-2.0/BSD diff --git a/tox.ini b/tox.ini index dfa9345ba..ee9e09d0e 100644 --- a/tox.ini +++ b/tox.ini @@ -116,6 +116,7 @@ setenv = OS_TEST_PATH={toxinidir}/functionaltests commands = /usr/bin/find . -type f -name "*.pyc" -delete /bin/bash {toxinidir}/functionaltests/pretty_tox.sh '{posargs}' +passenv = KMIP_PLUGIN_ENABLED [flake8] exclude = .git,.idea,.tox,bin,dist,debian,rpmbuild,tools,*.egg-info,*.eggs,*openstack/common,contrib,