X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=tests%2Fruntests.sh;h=372e4add2e67067bdafe23189b2035acc5b33a15;hb=f434d0b4aa31eaa1e6bad0a670c1cb0d08acc64c;hp=7c32002504f9a5f0aa41e7b46702e19d37256c33;hpb=2bee3d9610fdebea7100747aeb1bfecbb54bd991;p=openstack-build%2Fneutron-build.git diff --git a/tests/runtests.sh b/tests/runtests.sh index 7c3200250..372e4add2 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -1,9 +1,11 @@ -#!/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 @@ -11,7 +13,13 @@ AUTH="--os-auth-url http://127.0.0.1:35357 --os-token $TOKEN --os-endpoint http: 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; fi +if [[ $PLATFORM =~ Ubuntu ]] +then + UBUNTU=true +else + setenforce 0 +fi + if [ -z $PACKAGE ]; then echo "Package for testing is not specified"; exit 1; fi echo "127.0.10.1 $(hostname)" >> /etc/hosts @@ -21,32 +29,54 @@ install_packages() { 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 + DEBIAN_FRONTEND=noninteractive 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 + #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-ryu 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 } install_neutron_server () { if $UBUNTU then - apt-get install -y --force-yes neutron-server + DEBIAN_FRONTEND=noninteractive apt-get install -y --force-yes neutron-server else yum install -y openstack-neutron openstack-neutron-ml2 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'" @@ -74,7 +104,7 @@ EOF then service keystone restart else - service openstack-keystone start + systemctl restart openstack-keystone fi sleep 10 #Setup Neutron credentials @@ -116,8 +146,6 @@ root_helper = sudo neutron-rootwrap /etc/neutron/rootwrap.conf [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 @@ -133,14 +161,7 @@ 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 + setup_rabbitmq } upgrade_neutron_db () { @@ -148,13 +169,14 @@ 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 @@ -168,6 +190,15 @@ try () { 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 @@ -176,28 +207,33 @@ check_neutron_server() { } check_neutron_openvswitch () { - # Workaround for bug #1371184 if ! $UBUNTU then - chown root:neutron /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini + chown root:neutron /etc/neutron/plugins/ml2/openvswitch_agent.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 " ") @@ -205,24 +241,30 @@ check_neutron_l3_agent () { } 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