From b6367aeb802a0032ff08bbf96af590c91c52d43e Mon Sep 17 00:00:00 2001 From: Markos Chandras Date: Wed, 19 Sep 2018 16:28:10 +0100 Subject: xci: Add ability to pass command line options to xci-deploy.sh We now support multiple PDF files so instead of introducing another env variable, we can simply pass this information as command line arguments to xci-deploy.sh. We can extend the script to allow more options line verbosity, scenario name, functest details etc so we can get rid of multiple env variables. Change-Id: I6c4a8d6e8b70e91746a659de923fee19019ed5e0 Signed-off-by: Markos Chandras --- xci/files/xci-lib.sh | 29 +++++++++++++++++++++++++++++ xci/playbooks/dynamic_inventory.py | 4 ++-- xci/xci-deploy.sh | 5 +++++ 3 files changed, 36 insertions(+), 2 deletions(-) diff --git a/xci/files/xci-lib.sh b/xci/files/xci-lib.sh index 064b9f68..2f360e44 100644 --- a/xci/files/xci-lib.sh +++ b/xci/files/xci-lib.sh @@ -10,6 +10,35 @@ # Avoid double sourcing the file [[ -n ${XCI_LIB_SOURCED:-} ]] && return 0 || export XCI_LIB_SOURCED=1 +function usage() { + echo " +Usage: $(basename ${0}) [-i ] [-p ] + + -h: This message + -i: Installer Descriptor File (IDF). (Default ${XCI_PATH}/xci/var/idf.yml) + -p: Pod Descriptor File (PDF). (Default ${XCI_PATH}/xci/var/pdf.yml) + " + exit 0 +} + +function parse_cmdline_opts() { + IDF=${XCI_PATH}/xci/var/idf.yml + PDF=${XCI_PATH}/xci/var/pdf.yml + + while getopts ":hi:p:" o; do + case "${o}" in + i) IDF="${OPTARG}" ;; + p) PDF="${OPTARG}" ;; + h) usage ;; + *) echo "ERROR: Invalid option '-${OPTARG}'"; usage ;; + esac + done + + # Do all the exports + export PDF=$(realpath ${PDF}) + export IDF=$(realpath ${IDF}) +} + function bootstrap_xci_env() { # Declare our virtualenv export XCI_VENV=${XCI_PATH}/venv/ diff --git a/xci/playbooks/dynamic_inventory.py b/xci/playbooks/dynamic_inventory.py index 9a1624b0..f6e93398 100755 --- a/xci/playbooks/dynamic_inventory.py +++ b/xci/playbooks/dynamic_inventory.py @@ -74,8 +74,8 @@ class XCIInventory(object): self.args = parser.parse_args() def read_pdf_idf(self): - pdf_file = os.path.dirname(os.path.realpath(__file__)) + "/../var/pdf.yml" - idf_file = os.path.dirname(os.path.realpath(__file__)) + "/../var/idf.yml" + pdf_file = os.environ['PDF'] + idf_file = os.environ['IDF'] nodes = [] host_networks = {} diff --git a/xci/xci-deploy.sh b/xci/xci-deploy.sh index c1654151..d9c41968 100755 --- a/xci/xci-deploy.sh +++ b/xci/xci-deploy.sh @@ -49,6 +49,11 @@ for local_user_var in ${user_local_dev_vars[@]}; do done unset user_local_dev_vars local_user_var +# +# Parse command line options +# +parse_cmdline_opts $* + # # Bootstrap environment for XCI Deployment # -- cgit 1.2.3-korg