From 1adc10c9229ce2e8bf22c3dbc3205e5fe225911e Mon Sep 17 00:00:00 2001 From: zhaoxinyu Date: Wed, 16 Apr 2014 00:24:32 +0000 Subject: [PATCH] Add network connectivity test also add a skip-broken flag to yum update for the time-being because a syslinux dependency: syslinux-nonlinux was not found in centos mirrors. It is on the way though. https://www.centos.org/forums/viewtopic.php?f=14&t=45933 Need 'yum clean all' to update metadata and get the latest package list from mirros. Fix a bug in prepare.sh. it didn't fetch the gerrit refs. Restore some package pre-load scripts in prepare.sh to make CI faster. Change-Id: I66f06bdfb801204fb956c7a264c98de879322744 --- install/chef.sh | 10 +++++----- install/cobbler.sh | 2 +- install/dependency.sh | 5 +++-- install/prepare.sh | 34 ++++++++++++++++++++++++++++++---- misc/ci/tempest_run.sh | 10 +++++++++- 5 files changed, 48 insertions(+), 13 deletions(-) diff --git a/install/chef.sh b/install/chef.sh index b9dac172..62d817db 100755 --- a/install/chef.sh +++ b/install/chef.sh @@ -25,19 +25,19 @@ if [[ "$?" != "0" ]]; then exit 1 fi -sudo mkdir -p /var/chef/cookbooks/ -sudo cp -r $ADAPTERS_HOME/chef/cookbooks/* /var/chef/cookbooks/ +sudo mkdir -p /var/chef/cookbooks/ +sudo cp -r $ADAPTERS_HOME/chef/cookbooks/* /var/chef/cookbooks/ if [ $? -ne 0 ]; then echo "failed to copy cookbooks to /var/chef/cookbooks/" exit 1 fi -sudo mkdir -p /var/chef/databags/ -sudo cp -r $ADAPTERS_HOME/chef/databags/* /var/chef/databags/ +sudo mkdir -p /var/chef/databags/ +sudo cp -r $ADAPTERS_HOME/chef/databags/* /var/chef/databags/ if [ $? -ne 0 ]; then echo "failed to copy databags to /var/chef/databags/" exit 1 fi -sudo mkdir -p /var/chef/roles/ +sudo mkdir -p /var/chef/roles/ sudo cp -r $ADAPTERS_HOME/chef/roles/* /var/chef/roles/ if [ $? -ne 0 ]; then echo "failed to copy roles to /var/chef/roles/" diff --git a/install/cobbler.sh b/install/cobbler.sh index 725cf886..c5f788f0 100755 --- a/install/cobbler.sh +++ b/install/cobbler.sh @@ -2,7 +2,7 @@ # echo "Installing cobbler related packages" -sudo yum -y install cobbler cobbler-web createrepo mkisofs python-cheetah python-simplejson python-urlgrabber PyYAML Django cman debmirror pykickstart -y +sudo yum -y install cobbler cobbler-web createrepo mkisofs python-cheetah python-simplejson python-urlgrabber PyYAML Django cman debmirror pykickstart if [[ "$?" != "0" ]]; then echo "failed to install cobbler related packages" exit 1 diff --git a/install/dependency.sh b/install/dependency.sh index 0d4ebd4f..7daafc1b 100755 --- a/install/dependency.sh +++ b/install/dependency.sh @@ -1,11 +1,12 @@ #!/bin/bash echo 'Installing Required packages for Compass...' -sudo yum update -y +sudo yum clean all +sudo yum update -y --skip-broken if [ "$tempest" == "true" ]; then sudo yum install -y virt-install libvirt qemu-kvm libxml2-devel libxslt-devel python-devel sshpass openssl-devel fi -sudo yum install -y rsyslog logrotate ntp iproute openssh-clients python python-devel git wget python-setuptools python-netaddr python-flask python-flask-sqlalchemy python-amqplib amqp python-paramiko python-mock mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp net-snmp-python python-daemon unzip openssl openssl098e ca-certificates redis python-redis +sudo yum install -y rsyslog logrotate ntp iproute openssh-clients python python-devel git wget python-setuptools syslinux python-netaddr python-flask python-flask-sqlalchemy python-amqplib amqp python-paramiko python-mock mod_wsgi httpd squid dhcp bind rsync yum-utils xinetd tftp-server gcc net-snmp-utils net-snmp net-snmp-python python-daemon unzip openssl openssl098e ca-certificates redis python-redis --skip-broken if [[ "$?" != "0" ]]; then echo "failed to install yum dependency" exit 1 diff --git a/install/prepare.sh b/install/prepare.sh index 4d1a4578..f69f40a1 100755 --- a/install/prepare.sh +++ b/install/prepare.sh @@ -36,12 +36,11 @@ copy2dir() cd $destdir fi gerrit_repo=$3 - if [ -z $gerrit_repo ]; then + if [[ ! -z $gerrit_repo ]]; then if [[ -n "$GERRIT_REFSPEC" ]];then git fetch $gerrit_repo $GERRIT_REFSPEC && git checkout FETCH_HEAD if [ $? -ne 0 ]; then echo "failed to git fetch $gerrit_repo $GERRIT_REFSPEC" - exit 1 fi fi fi @@ -130,12 +129,12 @@ if [ -z $WEB_SOURCE ]; then echo "web source $WEB_SOURCE is not set" exit 1 fi -copy2dir $WEB_SOURCE $WEB_HOME $WEB_GERRIT_URL +copy2dir "$WEB_SOURCE" "$WEB_HOME" "$WEB_GERRIT_URL" if [ -z $ADAPTERS_SOURCE ]; then echo "adpaters source $ADAPTERS_SOURCE is not set" exit 1 fi -copy2dir $ADAPTERS_SOURCE $ADAPTERS_HOME $ADAPTERS_GERRIT_URL +copy2dir "$ADAPTERS_SOURCE" "$ADAPTERS_HOME" "$ADAPTERS_GERRIT_URL" if [ "$tempest" == "true" ]; then if [[ ! -e /tmp/tempest ]]; then @@ -201,6 +200,33 @@ download() # download js mvc download http://github.com/downloads/bitovi/javascriptmvc/$JS_MVC.zip $JS_MVC.zip unzip $WEB_HOME/public/ +# download cobbler related packages +ppa_repo_packages="ntp-4.2.6p5-1.el6.${IMAGE_TYPE,,}.$IMAGE_ARCH.rpm + openssh-clients-5.3p1-94.el6.${IMAGE_ARCH}.rpm + iproute-2.6.32-31.el6.${IMAGE_ARCH}.rpm + wget-1.12-1.8.el6.${IMAGE_ARCH}.rpm + ntpdate-4.2.6p5-1.el6.${IMAGE_TYPE,,}.${IMAGE_ARCH}.rpm" +for f in $ppa_repo_packages +do + download ftp://rpmfind.net/linux/${IMAGE_TYPE,,}/${IMAGE_VERSION_MAJOR}/os/${IMAGE_ARCH}/Packages/$f $f +done + +ppa_repo_rsyslog_packages="json-c-0.10-2.el6.$IMAGE_ARCH.rpm + libestr-0.1.9-1.el6.$IMAGE_ARCH.rpm + libgt-0.3.11-1.el6.$IMAGE_ARCH.rpm + liblogging-1.0.4-1.el6.$IMAGE_ARCH.rpm + rsyslog-7.6.3-1.el6.$IMAGE_ARCH.rpm" +for f in $ppa_repo_rsyslog_packages +do + download http://rpms.adiscon.com/v7-stable/epel-6/${IMAGE_ARCH}/RPMS/$f $f +done + +download "$IMAGE_SOURCE" ${IMAGE_NAME}-${IMAGE_ARCH}.iso +download $CHEF_CLIENT chef-client + +# download chef related packages +download $CHEF_SRV chef-server + # Install net-snmp sudo cp -rn /etc/snmp/snmp.conf /root/backup/ sudo mkdir -p /usr/local/share/snmp/ diff --git a/misc/ci/tempest_run.sh b/misc/ci/tempest_run.sh index e73eac6b..b402d7cf 100755 --- a/misc/ci/tempest_run.sh +++ b/misc/ci/tempest_run.sh @@ -78,7 +78,7 @@ private_net_id=`quantum net-create --tenant_id $demo_tenant_id private |grep " i quantum subnet-create --tenant_id $demo_tenant_id --ip_version 4 --gateway 10.1.0.1 $private_net_id 10.10.0.0/24 router_id=`quantum router-create --tenant_id $demo_tenant_id router1|grep " id " |awk '{print$4}'` public_net_id=`quantum net-create public -- --router:external=True |grep " id " |awk '{print$4}'` -quantum subnet-create --ip_version 4 $public_net_id 172.24.4.0/28 -- --enable_dhcp=False +quantum subnet-create --ip_version 4 $public_net_id 172.24.4.0/24 -- --enable_dhcp=False quantum router-gateway-set $router_id $public_net_id iniset /etc/tempest/tempest.conf identity uri $OS_AUTH_URL iniset /etc/tempest/tempest.conf identity admin_username $OS_USERNAME @@ -95,15 +95,23 @@ iniset /etc/tempest/tempest.conf whitebox whitebox_enabled false iniset /etc/tempest/tempest.conf network public_network_id $public_net_id iniset /etc/tempest/tempest.conf network public_router_id '' iniset /etc/tempest/tempest.conf network quantum_available true +iniset /etc/tempest/tempest.conf network tenant_network_cidr '172.16.2.128/25' + #Start a smoke test against cloud without object storage and aws related tests #as they are unavailable for now if [[ $tempest_full == true ]]; then nosetests --logging-format '%(asctime)-15s %(message)s' --with-xunit -sv --attr=type=smoke \ --xunit-file=nosetests-smoke.xml tempest -e object_storage -e boto + if [[ $tempest_network == true ]]; then + nosetests tempest.tests.network.test_network_basic_ops + fi else nosetests --logging-format '%(asctime)-15s %(message)s' --with-xunit --xunit-file=nosetests-smoke.xml \ -sv --attr=type=smoke --tests="\ tempest.tests.compute.servers.test_server_addresses:ServerAddressesTest.test_list_server_addresses,\ tempest.tests.compute.servers.test_create_server:ServersTestAutoDisk.test_verify_server_details,\ tempest.tests.volume.test_volumes_get:VolumesGetTest.test_volume_create_get_delete" + if [[ $tempest_network == true ]]; then + nosetests tempest.tests.network.test_network_basic_ops + fi fi