diff --git a/devstack/plugin.sh b/devstack/plugin.sh index a48f9676..5095fd08 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -74,7 +74,7 @@ if is_service_enabled kuryr-libnetwork; then else echo -n "${KURYR_CONFIG} and the default config missing. Auto generating and copying one... " cd ${KURYR_HOME} - oslo-config-generator --config-file=${KURYR_CONFIG_GENERATOR} + tools/generate_config_file_samples.sh sudo cp ${KURYR_DEFAULT_CONFIG}.sample ${KURYR_DEFAULT_CONFIG} sudo cp ${KURYR_DEFAULT_CONFIG} ${KURYR_CONFIG} cd - diff --git a/devstack/settings b/devstack/settings index 026ed78b..9efd62f2 100644 --- a/devstack/settings +++ b/devstack/settings @@ -2,8 +2,6 @@ KURYR_HOME=${KURYR_HOME:-$DEST/kuryr-libnetwork} KURYR_ACTIVATOR_FILENAME=kuryr.spec KURYR_DEFAULT_ACTIVATOR=${KURYR_HOME}/etc/${KURYR_ACTIVATOR_FILENAME} -KURYR_CONFIG_GENERATOR_FILENAME=kuryr-config-generator.conf -KURYR_CONFIG_GENERATOR=${KURYR_HOME}/etc/${KURYR_CONFIG_GENERATOR_FILENAME} # See libnetwork's plugin discovery mechanism: # https://github.com/docker/docker/blob/c4d45b6a29a91f2fb5d7a51ac36572f2a9b295c6/docs/extend/plugin_api.md#plugin-discovery diff --git a/etc/kuryr-config-generator.conf b/etc/oslo-config-generator/kuryr.conf similarity index 100% rename from etc/kuryr-config-generator.conf rename to etc/oslo-config-generator/kuryr.conf diff --git a/tools/generate_config_file_samples.sh b/tools/generate_config_file_samples.sh new file mode 100755 index 00000000..114953a0 --- /dev/null +++ b/tools/generate_config_file_samples.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +set -e + +GEN_CMD=oslo-config-generator +SCRIPT_PATH=$(dirname "$(readlink -f "$0")") +DIST_PATH=$(dirname "$SCRIPT_PATH") + +prerequisites() ( + if ! command -v "$GEN_CMD" > /dev/null; then + echo "ERROR: $GEN_CMD not installed on the system." + return 1 + fi + + if ! [ -f "${DIST_PATH}/kuryr_libnetwork.egg-info/entry_points.txt" ]; then + curr_dir=$(pwd) + cd "${DIST_PATH}" + python setup.py egg_info # Generate entrypoints for config generation + cd "${curr_dir}" + fi + + return 0 +) + +generate() ( + curr_dir=$(pwd) + cd "${DIST_PATH}" + # Set PYTHONPATH so that it will use the generated egg-info + PYTHONPATH=. find "etc/oslo-config-generator" -type f -exec "$GEN_CMD" --config-file="{}" \; + cd "${curr_dir}" +) + + +prerequisites +rc=$? +if [ $rc -ne 0 ]; then + exit $rc +fi + +generate + +set -x