-#!/bin/bash -ex
+#!/bin/bash
+set -ex
PACKAGE=$1
UBUNTU=false
FAILURE=false
FAILED_TESTS=""
+SERVICE_STARTED=false
PLATFORM=$(python -mplatform)
TOKEN=$(openssl rand -hex 10)
MYSQL_PASS=mysql_pass
NEUTRON_AUTH="--os-username neutron --os-password neutron --os-tenant-name neutron --os-auth-url http://127.0.0.1:35357/v2.0"
CORE_PLUGIN="neutron.plugins.ml2.plugin.Ml2Plugin"
-if [[ $PLATFORM =~ Ubuntu ]]
-then UBUNTU=true
-else
- #Tests for RPM packages are disabled
- #until migration to CentOS 7 is completed
- echo "RPM tests are temporarily disabled"
- exit 0
-fi
+if [[ $PLATFORM =~ Ubuntu ]]; then UBUNTU=true; fi
if [ -z $PACKAGE ]; then echo "Package for testing is not specified"; exit 1; fi
echo "127.0.10.1 $(hostname)" >> /etc/hosts
then
echo "mysql-server mysql-server/root_password select $MYSQL_PASS" | debconf-set-selections
echo "mysql-server mysql-server/root_password_again select $MYSQL_PASS" | debconf-set-selections
- apt-get install -y --force-yes rabbitmq-server mysql-server mysql-client-core-5.5 python-mysqldb keystone bridge-utils
+ apt-get install -y --force-yes rabbitmq-server mysql-server mysql-client-core-5.5 python-mysqldb keystone
else
- yum install -y openstack-keystone rabbitmq-server mysql-server MySQL-client python-oslo-utils bridge-utils
+ #yum install -y openstack-keystone rabbitmq-server mysql-server MySQL-client python-oslo-utils
+ yum install -y openstack-keystone rabbitmq-server python-oslo-utils
+ #CentOS 7 temporary workaround
+ yum install -y http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
+ yum install -y mysql-community-server mysql-community-client
#Install some plugins because they are required for db-migration scripts (bug #1371184)
#Ubuntu neutron-server package include them
- yum install -y openstack-neutron-bigswitch openstack-neutron-brocade openstack-neutron-cisco openstack-neutron-hyperv openstack-neutron-vmware openstack-neutron-openvswitch \
- openstack-neutron-linuxbridge openstack-neutron-metaplugin openstack-neutron-mellanox openstack-neutron-nec openstack-neutron-nuage
+ #yum install -y openstack-neutron-bigswitch openstack-neutron-brocade openstack-neutron-cisco openstack-neutron-hyperv openstack-neutron-vmware openstack-neutron-openvswitch \
+ # openstack-neutron-ryu openstack-neutron-linuxbridge openstack-neutron-metaplugin openstack-neutron-mellanox openstack-neutron-nec openstack-neutron-nuage
fi
}
fi
}
+setup_rabbitmq () {
+ #Setup firewall on CentOS 7
+ if ! $UBUNTU ; then
+ firewall-cmd --permanent --add-port=5672/tcp
+ firewall-cmd --reload
+ setsebool -P nis_enabled 1
+ fi
+
+ restart_service rabbitmq-server
+ if [ $? -ne 0 ]; then
+ echo "RabbitMQ server failed to start"
+ cat /var/log/rabbitmq/startup_err
+ cat /var/log/rabbitmq/startup_log
+ fi
+}
+
setup_database() {
#Setup databases
- service mysql restart || service mysqld restart
+ restart_service mysql
if ! $UBUNTU
then
mysqladmin -u root password $MYSQL_PASS
fi
+ mysql -uroot -p$MYSQL_PASS -Bse "drop database if exists keystone"
+ mysql -uroot -p$MYSQL_PASS -Bse "drop database if exists neutron"
mysql -uroot -p$MYSQL_PASS -Bse "create database keystone"
mysql -uroot -p$MYSQL_PASS -Bse "create database neutron"
mysql -uroot -p$MYSQL_PASS -Bse "GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'neutron'"
then
service keystone restart
else
- service openstack-keystone start
+ systemctl restart openstack-keystone
fi
sleep 10
#Setup Neutron credentials
[database]
connection = mysql://neutron:neutron@127.0.0.1/neutron?charset=utf8
[service_providers]
-service_provider=LOADBALANCER:Haproxy:neutron.services.loadbalancer.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default
-service_provider=VPN:openswan:neutron.services.vpn.service_drivers.ipsec.IPsecVPNDriver:default
EOF
cat > /etc/neutron/l3_agent.ini << EOF
fi
touch /etc/neutron/plugin.ini
- for i in {1..5}
- do
- service rabbitmq-server restart
- if [ $? -eq 0 ]; then break; fi
- echo "RabbitMQ server failed to start"
- cat /var/log/rabbitmq/startup_err
- cat /var/log/rabbitmq/startup_log
- done
-
- #br-int is required for OVS agent
- brctl addbr br-int
+ setup_rabbitmq
}
upgrade_neutron_db () {
}
start_neutron_server () {
- service neutron-server restart
+ restart_service neutron-server
# Sleep is to let Neutron server successfully reconnect to AMQP
sleep 10
}
try () {
TEST_FUNCTION=$1
+ SERVICE_STARTED=false
for i in {1..5}
do
FAILURE=false
done
}
+restart_service () {
+ local SERVICE=$1
+ if $UBUNTU; then
+ service $SERVICE restart
+ else
+ systemctl restart $SERVICE
+ fi
+}
+
check_neutron_server() {
#Execute tests
neutron $NEUTRON_AUTH net-create mynet1
}
check_neutron_openvswitch () {
-
# Workaround for bug #1371184
if ! $UBUNTU
then
chown root:neutron /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
fi
- if ! $UBUNTU
- then
- service openvswitch start
- service neutron-openvswitch-agent start
- else
- service openvswitch-switch restart
- service neutron-plugin-openvswitch-agent restart
+
+ if ! $SERVICE_STARTED ; then
+ if $UBUNTU; then
+ restart_service openvswitch-switch
+ restart_service neutron-plugin-openvswitch-agent
+ else
+ restart_service openvswitch
+ restart_service neutron-openvswitch-agent
+ fi
+ SERVICE_STARTED=true
fi
+
sleep 10
STATUS=$(neutron $NEUTRON_AUTH agent-list | grep "Open vSwitch agent" | awk -F "|" '{print $5}' | tr -d " ")
if [ "$STATUS" != ":-)" ]; then echo "OVS agent check failed"; FAILURE=true; fi
}
check_neutron_l3_agent () {
-
- service neutron-l3-agent restart
+ if ! $SERVICE_STARTED ; then
+ restart_service neutron-l3-agent
+ SERVICE_STARTED=true
+ fi
#This sleep here and in other functions is intended to let the agent add information to the queue
sleep 10
STATUS=$(neutron $NEUTRON_AUTH agent-list | grep "L3 agent" | awk -F "|" '{print $5}' | tr -d " ")
}
check_neutron_dhcp_agent () {
-
- service neutron-dhcp-agent restart
+ if ! $SERVICE_STARTED ; then
+ restart_service neutron-dhcp-agent
+ SERVICE_STARTED=true
+ fi
sleep 10
STATUS=$(neutron $NEUTRON_AUTH agent-list | grep "DHCP agent" | awk -F "|" '{print $5}' | tr -d " ")
if [ "$STATUS" != ":-)" ]; then echo "DHCP agent check failed"; FAILURE=true; fi
}
check_neutron_metadata_agent () {
-
- service neutron-metadata-agent restart
+ if ! $SERVICE_STARTED ; then
+ restart_service neutron-metadata-agent
+ SERVICE_STARTED=true
+ fi
sleep 10
STATUS=$(neutron $NEUTRON_AUTH agent-list | grep "Metadata agent" | awk -F "|" '{print $5}' | tr -d " ")
if [ "$STATUS" != ":-)" ]; then echo "Metadata agent check failed"; FAILURE=true; fi
}
check_neutron_metering_agent () {
-
- service neutron-metering-agent restart
+ if ! $SERVICE_STARTED ; then
+ restart_service neutron-metering-agent
+ SERVICE_STARTED=true
+ fi
sleep 10
STATUS=$(neutron $NEUTRON_AUTH agent-list | grep "Metering agent" | awk -F "|" '{print $5}' | tr -d " ")
if [ "$STATUS" != ":-)" ]; then echo "Metering agent check failed"; FAILURE=true; fi