Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CA-46110 Tab completion on xe-switch-network-backend #1069

Merged
merged 1 commit into from
Mar 18, 2013
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions scripts/OMakefile
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,9 @@ install:
mkdir -p $(DESTDIR)$(HOOKSDIR)/host-post-declare-dead
$(IPROG) 10resetvdis $(DESTDIR)$(HOOKSDIR)/host-post-declare-dead
$(IPROG) pci-info $(DESTDIR)$(LIBEXECDIR)
mkdir -p $(DESTDIR)/etc/bash_completion.d
$(IPROG) xe-switch-network-backend-bash-completion $(DESTDIR)/etc/bash_completion.d/xe-switch-network-backend
$(IPROG) xe-switch-network-backend $(DESTDIR)$(BINDIR)

sdk-install: install
mkdir -p $(SDK)
Expand Down
72 changes: 72 additions & 0 deletions scripts/xe-switch-network-backend
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/sh
#########################################################################
# Script to switch between Linux Bridge network stack and OpenvSwitch
#
# Usage:
# xe-switch-network-backend <option>
#
# where <option> is either:
# bridge - Linux standard Bridge network stack
# openvswitch - OpenvSwitch stack
#
#########################################################################

set -e

if [ $# -ne 1 ] ; then
echo "Need bridge or openvswitch..."
exit 1
fi

source /etc/xensource-inventory

new=$1
case $new in
bridge) ;;
vswitch|openvswitch) ;;
*)
echo "Mode must be \"bridge\" or \"vswitch\""
exit 1
esac

if [ X"$new" = Xvswitch ] ; then
new="openvswitch"
fi

curr=$(cat /etc/xensource/network.conf)
if [ X"$curr" = Xvswitch ] ; then
new="openvswitch"
fi


echo "Cleaning up old ifcfg files"
for i in /etc/sysconfig/network-scripts/ifcfg-* ; do
if [ "$i" = "/etc/sysconfig/network-scripts/ifcfg-lo" ] ; then
continue
fi
echo " Remove... $(basename $i)"
rm $i
done


BLACKLIST=/etc/modprobe.d/blacklist-bridge
if [ "$new" = "openvswitch" ] ; then
# Add blacklist of bridge module so it can't be loaded.
echo "install bridge /bin/true" > $BLACKLIST
elif [ -e $BLACKLIST ] ; then
# Remove blacklist of bridge.
rm $BLACKLIST
fi

if [ "$new" = "openvswitch" ] ; then
echo "Enabling openvswitch daemon"
chkconfig --add openvswitch
else
echo "Disabling openvswitch daemon"
chkconfig --del openvswitch
fi

echo "Configure system for $new networking"
echo $new > /etc/xensource/network.conf

echo "You *MUST* now reboot your system" 1>&2
16 changes: 16 additions & 0 deletions scripts/xe-switch-network-backend-bash-completion
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#xe-switch-network-backend tab completion

_xe-switch-network-backend()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="bridge openvswitch"

if [[ ${cur} == * ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _xe-switch-network-backend xe-switch-network-backend
2 changes: 2 additions & 0 deletions xapi.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,8 @@ rm -rf $RPM_BUILD_ROOT
@OPTDIR@/bin/xe-set-iscsi-iqn
@OPTDIR@/bin/xe-toolstack-restart
@OPTDIR@/bin/xe-xentrace
@OPTDIR@/bin/xe-switch-network-backend
/etc/bash_completion.d/xe-switch-network-backend
@OPTDIR@/bin/xsh
/etc/xensource/bugtool/xapi.xml
/etc/xensource/bugtool/xapi/stuff.xml
Expand Down