Fixes bug 905344
Change-Id: I844a90246bace792d293ef2df9504fb654104e4b
| ... | ... |
@@ -88,6 +88,13 @@ function apt_get() {
|
| 88 | 88 |
--option "Dpkg::Options::=--force-confold" --assume-yes "$@" |
| 89 | 89 |
} |
| 90 | 90 |
|
| 91 |
+# Check to see if we are already running a stack.sh |
|
| 92 |
+if screen -ls | egrep -q "[0-9].stack"; then |
|
| 93 |
+ echo "You are already running a stack.sh session." |
|
| 94 |
+ echo "To rejoin this session type 'screen -x stack'." |
|
| 95 |
+ echo "To destroy this session, kill the running screen." |
|
| 96 |
+ exit 1 |
|
| 97 |
+fi |
|
| 91 | 98 |
|
| 92 | 99 |
# OpenStack is designed to be run as a regular user (Horizon will fail to run |
| 93 | 100 |
# as root, since apache refused to startup serve content from root user). If |
| ... | ... |
@@ -165,6 +172,7 @@ ENABLED_SERVICES=${ENABLED_SERVICES:-g-api,g-reg,key,n-api,n-cpu,n-net,n-sch,n-v
|
| 165 | 165 |
# Name of the lvm volume group to use/create for iscsi volumes |
| 166 | 166 |
VOLUME_GROUP=${VOLUME_GROUP:-nova-volumes}
|
| 167 | 167 |
VOLUME_NAME_PREFIX=${VOLUME_NAME_PREFIX:-volume-}
|
| 168 |
+INSTANCE_NAME_PREFIX=${INSTANCE_NAME_PREFIX:-instance-}
|
|
| 168 | 169 |
|
| 169 | 170 |
# Nova hypervisor configuration. We default to libvirt whth **kvm** but will |
| 170 | 171 |
# drop back to **qemu** if we are unable to load the kvm module. Stack.sh can |
| ... | ... |
@@ -733,6 +741,18 @@ if [[ "$ENABLED_SERVICES" =~ "n-api" ]]; then |
| 733 | 733 |
sed -e "s,%SERVICE_TOKEN%,$SERVICE_TOKEN,g" -i $NOVA_DIR/bin/nova-api-paste.ini |
| 734 | 734 |
fi |
| 735 | 735 |
|
| 736 |
+# Helper to clean iptables rules |
|
| 737 |
+function clean_iptables() {
|
|
| 738 |
+ # Delete rules |
|
| 739 |
+ sudo iptables -S -v | sed "s/-c [0-9]* [0-9]* //g" | grep "nova" | grep "\-A" | sed "s/-A/-D/g" | awk '{print "sudo iptables",$0}' | bash
|
|
| 740 |
+ # Delete nat rules |
|
| 741 |
+ sudo iptables -S -v -t nat | sed "s/-c [0-9]* [0-9]* //g" | grep "nova" | grep "\-A" | sed "s/-A/-D/g" | awk '{print "sudo iptables -t nat",$0}' | bash
|
|
| 742 |
+ # Delete chains |
|
| 743 |
+ sudo iptables -S -v | sed "s/-c [0-9]* [0-9]* //g" | grep "nova" | grep "\-N" | sed "s/-N/-X/g" | awk '{print "sudo iptables",$0}' | bash
|
|
| 744 |
+ # Delete nat chains |
|
| 745 |
+ sudo iptables -S -v -t nat | sed "s/-c [0-9]* [0-9]* //g" | grep "nova" | grep "\-N" | sed "s/-N/-X/g" | awk '{print "sudo iptables -t nat",$0}' | bash
|
|
| 746 |
+} |
|
| 747 |
+ |
|
| 736 | 748 |
if [[ "$ENABLED_SERVICES" =~ "n-cpu" ]]; then |
| 737 | 749 |
|
| 738 | 750 |
# Virtualization Configuration |
| ... | ... |
@@ -796,13 +816,24 @@ if [[ "$ENABLED_SERVICES" =~ "n-cpu" ]]; then |
| 796 | 796 |
fi |
| 797 | 797 |
fi |
| 798 | 798 |
|
| 799 |
+ # Clean iptables from previous runs |
|
| 800 |
+ clean_iptables |
|
| 801 |
+ |
|
| 802 |
+ # Destroy old instances |
|
| 803 |
+ instances=`virsh list | grep $INSTANCE_NAME_PREFIX | cut -d " " -f3` |
|
| 804 |
+ if [ ! $instances = "" ]; then |
|
| 805 |
+ echo $instances | xargs -n1 virsh destroy |
|
| 806 |
+ echo $instances | xargs -n1 virsh undefine |
|
| 807 |
+ fi |
|
| 808 |
+ |
|
| 799 | 809 |
# Clean out the instances directory. |
| 800 | 810 |
sudo rm -rf $NOVA_DIR/instances/* |
| 801 | 811 |
fi |
| 802 | 812 |
|
| 803 | 813 |
if [[ "$ENABLED_SERVICES" =~ "n-net" ]]; then |
| 804 |
- # delete traces of nova networks from prior runs |
|
| 814 |
+ # Delete traces of nova networks from prior runs |
|
| 805 | 815 |
sudo killall dnsmasq || true |
| 816 |
+ clean_iptables |
|
| 806 | 817 |
rm -rf $NOVA_DIR/networks |
| 807 | 818 |
mkdir -p $NOVA_DIR/networks |
| 808 | 819 |
fi |
| ... | ... |
@@ -1012,6 +1043,7 @@ add_nova_flag "--public_interface=$PUBLIC_INTERFACE" |
| 1012 | 1012 |
add_nova_flag "--vlan_interface=$VLAN_INTERFACE" |
| 1013 | 1013 |
add_nova_flag "--sql_connection=$BASE_SQL_CONN/nova" |
| 1014 | 1014 |
add_nova_flag "--libvirt_type=$LIBVIRT_TYPE" |
| 1015 |
+add_nova_flag "--instance_name_template=${INSTANCE_NAME_PREFIX}%08x"
|
|
| 1015 | 1016 |
if [[ "$ENABLED_SERVICES" =~ "openstackx" ]]; then |
| 1016 | 1017 |
add_nova_flag "--osapi_extension=nova.api.openstack.v2.contrib.standard_extensions" |
| 1017 | 1018 |
add_nova_flag "--osapi_extension=extensions.admin.Admin" |