vmware-nsx/devstack/plugin.sh
Adit Sarfaty ab6f32c12b TVD: Support TVD devstack with disabled plugins
When using the TVD plugin, sometimes nsx-v or nsx-v3 are not configured.
This patch ensures that the devstack cleanup will clean only the relevant
NSX backend, to avoid errors in the logs.
And also that the devstack configuration will skip unconfigured plugins

Change-Id: I27ad52ea9a4052c0b8f3d1ea4d485fcc44b19f6d
2018-03-18 08:08:56 +00:00

107 lines
4.5 KiB
Bash

#!/bin/bash
# Copyright 2015 VMware, Inc.
#
# All Rights Reserved
#
# 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.
GITDIR['vmware-nsxlib']=$DEST/vmware-nsxlib
GITREPO['vmware-nsxlib']=${NSXLIB_REPO:-${GIT_BASE}/openstack/vmware-nsxlib.git}
GITBRANCH['vmware-nsxlib']=${NSXLIB_BRANCH:-master}
dir=${GITDIR['vmware-nsx']}/devstack
if [[ "$1" == "stack" && "$2" == "install" ]]; then
if use_library_from_git 'vmware-nsxlib'; then
git_clone_by_name 'vmware-nsxlib'
setup_dev_lib 'vmware-nsxlib'
fi
setup_develop ${GITDIR['vmware-nsx']}
fi
if [[ $Q_PLUGIN == 'vmware_nsx_v' ]]; then
source $dir/lib/vmware_nsx_v
if [[ "$1" == "unstack" ]]; then
db_connection=$(iniget $NEUTRON_CONF database connection)
python $dir/tools/nsxv_cleanup.py --vsm-ip ${NSXV_MANAGER_URI/https:\/\/} --user $NSXV_USER --password $NSXV_PASSWORD --db-connection $db_connection
elif [[ "$1" == "clean" ]]; then
if is_service_enabled q-svc || is_service_enabled neutron-api; then
python $dir/tools/nsxv_cleanup.py --vsm-ip ${NSXV_MANAGER_URI/https:\/\/} --user $NSXV_USER --password $NSXV_PASSWORD
fi
fi
elif [[ $Q_PLUGIN == 'vmware_nsx' ]]; then
source $dir/lib/vmware_nsx
if [[ "$1" == "stack" && "$2" == "post-config" ]]; then
init_vmware_nsx
elif [[ "$1" == "stack" && "$2" == "extra" ]]; then
check_vmware_nsx
elif [[ "$1" == "unstack" ]]; then
stop_vmware_nsx
fi
elif [[ $Q_PLUGIN == 'vmware_nsx_v3' ]]; then
source $dir/lib/vmware_nsx_v3
if [[ "$1" == "stack" && "$2" == "post-config" ]]; then
init_vmware_nsx_v3
elif [[ "$1" == "unstack" ]]; then
db_connection=$(iniget $NEUTRON_CONF database connection)
stop_vmware_nsx_v3
# only clean up when q-svc (legacy support) or neutron-api is enabled
if is_service_enabled q-svc || is_service_enabled neutron-api; then
NSX_MANAGER=${NSX_MANAGERS:-$NSX_MANAGER}
IFS=','
NSX_MANAGER=($NSX_MANAGER)
unset IFS
python $dir/tools/nsxv3_cleanup.py --mgr-ip $NSX_MANAGER --user $NSX_USER --password $NSX_PASSWORD --db-connection $db_connection
fi
elif [[ "$1" == 'clean' ]]; then
if is_service_enabled q-svc || is_service_enabled neutron-api; then
python $dir/tools/nsxv3_cleanup.py --mgr-ip $NSX_MANAGER --user $NSX_USER --password $NSX_PASSWORD
fi
fi
elif [[ $Q_PLUGIN == 'vmware_nsx_tvd' ]]; then
source $dir/lib/vmware_nsx_tvd
if [[ "$1" == "stack" && "$2" == "post-config" ]]; then
init_vmware_nsx_tvd
elif [[ "$1" == "unstack" ]]; then
db_connection=$(iniget $NEUTRON_CONF database connection)
stop_vmware_nsx_tvd
# only clean up when q-svc (legacy support) or neutron-api is enabled
if is_service_enabled q-svc || is_service_enabled neutron-api; then
NSX_MANAGER=${NSX_MANAGERS:-$NSX_MANAGER}
IFS=','
NSX_MANAGER=($NSX_MANAGER)
unset IFS
if [[ "$NSX_MANAGER" != "" ]]; then
python $dir/tools/nsxv3_cleanup.py --mgr-ip $NSX_MANAGER --user $NSX_USER --password $NSX_PASSWORD --db-connection $db_connection
fi
if [[ "$NSXV_MANAGER_URI" != "" ]]; then
python $dir/tools/nsxv_cleanup.py --vsm-ip ${NSXV_MANAGER_URI/https:\/\/} --user $NSXV_USER --password $NSXV_PASSWORD --db-connection $db_connection
fi
fi
elif [[ "$1" == 'clean' ]]; then
if is_service_enabled q-svc || is_service_enabled neutron-api; then
if [[ "$NSX_MANAGER" != "" ]]; then
python $dir/tools/nsxv3_cleanup.py --mgr-ip $NSX_MANAGER --user $NSX_USER --password $NSX_PASSWORD
fi
if [[ "$NSXV_MANAGER_URI" != "" ]]; then
python $dir/tools/nsxv_cleanup.py --vsm-ip ${NSXV_MANAGER_URI/https:\/\/} --user $NSXV_USER --password $NSXV_PASSWORD
fi
fi
fi
elif [[ $Q_PLUGIN == 'vmware_dvs' ]]; then
source $dir/lib/vmware_dvs
fi