function usage(){
echo -e "usage: ${BASH_SOURCE[0]} [OPTIONS] <action>\n test openmano using openvim as a VIM"
echo -e " the OPENVIM_HOST, OPENVIM_PORT shell variables indicate openvim location"
+ echo -e " by default localhost:9080"
echo -e " <action> is a list of the following items (by default 'reset create delete')"
echo -e " reset reset the openmano database content"
echo -e " create creates items"
echo -e " -h --help shows this help"
echo -e " --insert-bashrc insert the created tenant,datacenter variables at"
echo -e " ~/.bashrc to be available by openmano CLI"
- echo -e " --init-openvim if openvim runs locally, an init is called to clean openvim database"
- echo -e " and add fake hosts"
+ echo -e " --init-openvim if openvim runs locally, an init is called to clean openvim"
+ echo -e " database and add fake hosts"
}
function is_valid_uuid(){
}
#detect if is called with a source to use the 'exit'/'return' command for exiting
-[[ ${BASH_SOURCE[0]} != $0 ]] && _exit="return" || _exit="exit"\1a
+[[ ${BASH_SOURCE[0]} != $0 ]] && _exit="return" || _exit="exit"
-#check openvim client variables are set
-fail=""
-[[ -z $OPENVIM_HOST ]] && echo "OPENVIM_HOST variable not defined" >&2 && fail=1
-[[ -z $OPENVIM_PORT ]] && echo "OPENVIM_PORT variable not defined" >&2 && fail=1
-[[ -n $fail ]] && $_exit 1
#check correct arguments
force=""
action_list=""
insert_bashrc=""
init_openvim=""
-for param in $*
+
+while [[ $# -gt 0 ]]
do
- if [[ $param == reset ]] || [[ $param == create ]] || [[ $param == delete ]]
- then
- action_list="$action_list $param"
- elif [[ $param == -h ]] || [[ $param == --help ]]
- then
- usage
- $_exit 0
- elif [[ $param == -f ]] || [[ $param == --force ]]
- then
- force="-f"
- elif [[ $param == --insert-bashrc ]]
+ argument="$1"
+ shift
+ if [[ $argument == reset ]] || [[ $argument == create ]] || [[ $argument == delete ]]
then
- insert_bashrc=y
- elif [[ $param == --init-openvim ]]
+ action_list="$action_list $argument"
+ continue
+ #short options
+ elif [[ ${argument:0:1} == "-" ]] && [[ ${argument:1:1} != "-" ]] && [[ ${#argument} -ge 2 ]]
then
- init_openvim=y
- else
- echo "invalid argument '$param'? Type -h for help" >&2 && $_exit 1
+ index=0
+ while index=$((index+1)) && [[ $index -lt ${#argument} ]]
+ do
+ [[ ${argument:$index:1} == h ]] && usage && $_exit 0
+ [[ ${argument:$index:1} == f ]] && force="-f" && continue
+ echo "invalid option '${argument:$index:1}'? Type -h for help" >&2 && $_exit 1
+ done
+ continue
fi
+ #long options
+ [[ $argument == --help ]] && usage && $_exit 0
+ [[ $argument == --force ]] && force="-f" && continue
+ [[ $argument == --insert-bashrc ]] && insert_bashrc="--insert-bashrc" && continue
+ [[ $argument == --init-openvim ]] && init_openvim="y" && continue
+ echo "invalid argument '$argument'? Type -h for help" >&2 && $_exit 1
done
DIRNAME=$(dirname $(readlink -f ${BASH_SOURCE[0]}))
DIRmano=$(dirname $DIRNAME)
DIRscript=${DIRmano}/scripts
+export OPENMANO_HOST=localhost
+export OPENMANO_PORT=9090
+[[ -n "$insert_bashrc" ]] && echo -e "\nexport OPENMANO_HOST=localhost" >> ~/.bashrc
+[[ -n "$insert_bashrc" ]] && echo -e "\nexport OPENMANO_PORT=9090" >> ~/.bashrc
+
+
#by default action should be reset and create
[[ -z $action_list ]] && action_list="reset create delete"
-[[ -z $init_openvim ]] || initopenvim $force || echo "WARNING openvim cannot be initialized. The rest of test can fail!"
+[[ -z $init_openvim ]] || initopenvim $force $insert_bashrc || echo "WARNING openvim cannot be initialized. The rest of test can fail!"
+
+#check openvim client variables are set
+#fail=""
+#[[ -z $OPENVIM_HOST ]] && echo "OPENVIM_HOST variable not defined" >&2 && fail=1
+#[[ -z $OPENVIM_PORT ]] && echo "OPENVIM_PORT variable not defined" >&2 && fail=1
+#[[ -n $fail ]] && $_exit 1
+
for action in $action_list
do
then
#ask for confirmation if argument is not -f --force
+ force_=y
[[ -z $force ]] && read -e -p "WARNING: reset openmano database, content will be lost!!! Continue(y/N) " force_
[[ $force_ != y ]] && [[ $force_ != yes ]] && echo "aborted!" && $_exit
echo "Stopping openmano"
$DIRscript/service-openmano.sh mano stop
echo "Initializing openmano database"
- $DIRmano/database_utils/init_mano_db.sh -u mano -p manopw
+ $DIRmano/database_utils/init_mano_db.sh -u mano -p manopw --createdb
echo "Starting openmano"
$DIRscript/service-openmano.sh mano start
echo
#check a valid uuid is obtained
! is_valid_uuid $nfvotenant && echo "FAIL" && echo " $result" && $_exit 1
export OPENMANO_TENANT=$nfvotenant
- [[ $insert_bashrc == y ]] && echo -e "\nexport OPENMANO_TENANT=$nfvotenant" >> ~/.bashrc
+ [[ -n "$insert_bashrc" ]] && echo -e "\nexport OPENMANO_TENANT=$nfvotenant" >> ~/.bashrc
echo $nfvotenant
printf "%-50s" "Creating datacenter 'TEST-dc' in openmano:"
! is_valid_uuid $datacenter && echo "FAIL" && echo " $result" && $_exit 1
echo $datacenter
export OPENMANO_DATACENTER=$datacenter
- [[ $insert_bashrc == y ]] && echo -e "\nexport OPENMANO_DATACENTER=$datacenter" >> ~/.bashrc
+ [[ -n "$insert_bashrc" ]] && echo -e "\nexport OPENMANO_DATACENTER=$datacenter" >> ~/.bashrc
printf "%-50s" "Attaching openmano tenant to the datacenter:"
result=`${DIRmano}/openmano datacenter-attach TEST-dc`
printf "%-50s" "Updating external nets in openmano: "
result=`${DIRmano}/openmano datacenter-netmap-delete -f --all`
[[ $? != 0 ]] && echo "FAIL" && echo " $result" && $_exit 1
- result=`${DIRmano}/openmano datacenter-netmap-upload -f`
+ result=`${DIRmano}/openmano datacenter-netmap-import -f`
[[ $? != 0 ]] && echo "FAIL" && echo " $result" && $_exit 1
echo OK