All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH OSSTEST v3 0/3] Have OpenStack tested on top of xen's master and libvirt's master.
@ 2015-09-28 15:56 Anthony PERARD
  2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
                   ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Anthony PERARD @ 2015-09-28 15:56 UTC (permalink / raw)
  To: xen-devel; +Cc: Anthony PERARD, Ian Jackson, Ian Campbell

Hi,

I have looked into getting OpenStack been tested on the latest Xen via
osstest.

The ts-openstack-deploy script does prepare a bit more the host, clone
devstack and other OpenStack trees, then run ./stack.sh, which is a bit
like raisin and deploy OpenStack on the host. Once the machine is ready,
the integration test suite from OpenStack, Tempest, is started by
ts-openstack-tempest.

For the last patch that create a flight plan, I've tested only with
`./standalone make-flight openstack` and looked into the database to check
that only the necessary build job and the only test job are there.

Thanks.

Change in V3:
  - Track Nova tree instead of devstack.
      Nova is the service we care about from a Xen point of view.
      Also it is updated much more often than devstack.
  - Cleanups, see change log in patches.

Changes in V2:
  - no more Osstest::Toolstack::OpenStack.
  - osstest now clone every single tree that devstack is going to need.
    And ./stack.sh should fail if one tree is missing.
  - avoid build-*-xsm for an openstack flight
  - rename ts-devstack to ts-openstack-devstack
  - New test script ts-openstack-tempest
  - Add CONFIG_CRYPTO_XTS=m to the kernel build.
  - new possible runvar $dom0_mem to control dom0 memory
  - several fix to have volume tests working.
  - have OpenStack deploy from it's builddir instead of /opt/stack
  - have 4GB for dom0 instead of relying on balloning.

Anthony PERARD (3):
  ts-openstack-deploy: Deploy OpenStack on a host with devstack
  ts-openstack-tempest: Run Tempest to check OpenStack
  Create a flight to test OpenStack with xen-unstable and libvirt

 ap-common            |  12 ++
 ap-fetch-version     |   4 +
 ap-fetch-version-old |   5 +
 ap-print-url         |   3 +
 ap-push              |   5 +
 cr-daily-branch      |   8 ++
 cr-for-branches      |   2 +-
 cri-common           |   1 +
 make-flight          |  34 ++++++
 mfi-common           |   5 +
 sg-run-job           |   6 +
 ts-openstack-deploy  | 304 +++++++++++++++++++++++++++++++++++++++++++++++++++
 ts-openstack-tempest |  53 +++++++++
 13 files changed, 441 insertions(+), 1 deletion(-)
 create mode 100755 ts-openstack-deploy
 create mode 100755 ts-openstack-tempest

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-28 15:56 [PATCH OSSTEST v3 0/3] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
@ 2015-09-28 15:56 ` Anthony PERARD
  2015-09-29 15:34   ` Ian Campbell
  2015-09-30  8:32   ` Ian Campbell
  2015-09-28 15:56 ` [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack Anthony PERARD
  2015-09-28 15:56 ` [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
  2 siblings, 2 replies; 22+ messages in thread
From: Anthony PERARD @ 2015-09-28 15:56 UTC (permalink / raw)
  To: xen-devel; +Cc: Anthony PERARD, Ian Jackson, Ian Campbell

This script installs any necessary packages and clones all of the OpenStack
trees which are used by devstack to deploy OpenStack.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

---
Change in V3:
- Use host as argument to run the job.
- Use selectjob() and get rid of the unused $gho.
- Use target_jobdir() instead of builddirsprops().
- Remove GIT_BASE from devstack config.
- Rename the script to ts-openstack-deploy (from ts-openstack-devstack).
---
 sg-run-job          |   5 +
 ts-openstack-deploy | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 309 insertions(+)
 create mode 100755 ts-openstack-deploy

diff --git a/sg-run-job b/sg-run-job
index 591ac54..4f87f30 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -373,6 +373,11 @@ proc run-job/test-rumpuserxen {} {
                  ts-guest-destroy-hard            host   $g   +
 }
 
+proc need-hosts/test-devstack {} { return host }
+proc run-job/test-devstack {} {
+  run-ts . = ts-openstack-deploy host
+}
+
 if {[file exists sg-run-job-adhoc]} {
     source sg-run-job-adhoc
 }
diff --git a/ts-openstack-deploy b/ts-openstack-deploy
new file mode 100755
index 0000000..25a83fa
--- /dev/null
+++ b/ts-openstack-deploy
@@ -0,0 +1,304 @@
+#!/usr/bin/perl
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2015 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+use strict qw(vars);
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::BuildSupport;
+
+tsreadconfig();
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho = selecthost($whhost);
+our $builddir = target_jobdir($ho);
+
+sub tgt_init ();
+
+sub packages () {
+  # Install open-iscsi ahead of devstack ...
+  target_install_packages($ho, qw(git sudo open-iscsi));
+  # ... and start open-iscsi to have /etc/iscsi/initiatorname.iscsi
+  # generated. This is done on install on Ubuntu.
+  target_cmd_root($ho, 'service open-iscsi start');
+}
+
+sub checkout () {
+  prepbuilddirs();
+  build_clone($ho, 'cinder', $builddir, 'cinder');
+  build_clone($ho, 'glance', $builddir, 'glance');
+  build_clone($ho, 'keystone', $builddir, 'keystone');
+  build_clone($ho, 'nova', $builddir, 'nova');
+  build_clone($ho, 'requirements', $builddir, 'requirements');
+  build_clone($ho, 'tempest', $builddir, 'tempest');
+
+  build_clone($ho, 'devstack', $builddir, 'devstack');
+  my $vg = target_choose_vg($ho, 10*1024); # 10GB
+  target_putfilecontents_stash($ho, 60, <<END, $builddir.'/devstack/local.conf');
+[[local|localrc]]
+# Everything should be cloned by osstest, so devstack don't have to do it
+ERROR_ON_CLONE=True
+USE_SCREEN=False
+ADMIN_PASSWORD=secretadmin
+DATABASE_PASSWORD=secretdatabase
+RABBIT_PASSWORD=secretrabbit
+SERVICE_PASSWORD=secretservice
+SERVICE_TOKEN=atokenserviced
+# make it small because there is no way to not have this lvm volume created
+VOLUME_BACKING_FILE_SIZE=500M
+DEST=$builddir
+LOGFILE=\$DEST/logs/stack.sh.log
+# stackrc set this but don't take \$DEST into account
+SERVICE_DIR=\${DEST}/status
+LOG_COLOR=False
+LIBVIRT_TYPE=xen
+disable_service horizon
+disable_service n-novnc
+enable_service n-obj
+[[post-config|\$CINDER_CONF]]
+[lvmdriver-1]
+volume_group = $vg
+END
+
+  # libvirt is already installed, but not as a package, so avoid installation of
+  # the libvirt package with devstack
+  target_editfile($ho, "$builddir/devstack/files/debs/nova", sub {
+      while (<EI>) {
+        next if m/.*libvirt.*/;
+        print EO or die $!;
+      }
+  });
+  target_editfile($ho, "$builddir/devstack/lib/nova_plugins/functions-libvirt", sub {
+      while (<EI>) {
+        next if m/install_package.*libvirt.*/;
+        print EO or die $!;
+      }
+  });
+
+  # OpenStack needs access to libvirt from a user.
+  target_cmd_root($ho, <<END);
+    cat >> /etc/libvirt/libvirtd.conf <<EOF
+unix_sock_group = "libvirt"
+unix_sock_ro_perms = "0777"
+unix_sock_rw_perms = "0770"
+EOF
+END
+
+  # devstack is going to setup the host, install some dependency.
+  target_putfilecontents_root_stash($ho, 100, <<END,"/etc/sudoers.d/devstack");
+osstest ALL=(ALL) NOPASSWD:ALL
+END
+
+  target_putfilecontents_root_stash($ho, 60, tgt_init(), "/etc/init.d/tgt");
+  target_cmd_root($ho, <<END);
+    chmod +x /etc/init.d/tgt
+END
+}
+
+sub deploy() {
+  target_cmd($ho, <<END, 1800);
+    cd $builddir/devstack
+    ./stack.sh
+END
+}
+
+packages();
+checkout();
+deploy();
+
+# This is missing from Debian but required by devstack
+# Got it from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=577925
+sub tgt_init () {
+  return <<'END';
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides:          tgtd
+# Required-Start:    $remote_fs $syslog
+# Required-Stop:     $remote_fs $syslog
+# Should-Start:      zfs
+# Should-Stop:       zfs
+# Default-Start:     2 3 4 5
+# Default-Stop:      0 1 6
+# Short-Description: iscsi target daemon
+# Description:       iscsi target daemon
+### END INIT INFO
+
+DESC="target framework daemon"
+NAME=tgtd
+DAEMON=/usr/sbin/${NAME}
+
+TGTD_CONFIG=/etc/tgt/targets.conf
+
+TASK=$1
+
+. /lib/lsb/init-functions
+
+[ -x $DAEMON ] || exit 0
+
+start()
+{
+        log_daemon_msg "Starting $DESC" "$NAME"
+        # Start tgtd first.
+        tgtd &>/dev/null
+        RETVAL=$?
+        if [ "$RETVAL" -ne 0 ] ; then
+                log_end_msg 1
+                exit 1
+        else
+                log_end_msg 0
+        fi
+        # Put tgtd into "offline" state until all the targets are configured.
+        # We don't want initiators to (re)connect and fail the connection
+        # if it's not ready.
+        tgtadm --op update --mode sys --name State -v offline
+        # Configure the targets.
+        tgt-admin -e -c $TGTD_CONFIG
+        # Put tgtd into "ready" state.
+        tgtadm --op update --mode sys --name State -v ready
+}
+
+stop()
+{
+        if [ "$RUNLEVEL" == 0 -o "$RUNLEVEL" == 6 ] ; then
+            forcedstop
+        fi
+        log_daemon_msg "Stopping $DESC" "$NAME"
+        # Remove all targets. It only removes targets which are not in use.
+        tgt-admin --update ALL -c /dev/null &>/dev/null
+        # tgtd will exit if all targets were removed
+        tgtadm --op delete --mode system &>/dev/null
+        RETVAL=$?
+        if [ "$RETVAL" -eq 107 ] ; then
+                if [ "$TASK" != "restart" ] ; then
+                        log_end_msg 1
+                        exit 1
+                else
+                        log_end_msg 0
+                fi
+        elif [ "$RETVAL" -ne 0 ] ; then
+                log_end_msg 1
+                echo "Some initiators are still connected - could not stop tgtd"
+                exit 2
+        else
+                log_end_msg 0
+        fi
+        echo -n
+}
+
+forcedstop()
+{
+        # NOTE: Forced shutdown of the iscsi target may cause data corruption
+        # for initiators that are connected.
+        echo "Force-stopping target framework daemon"
+        # Offline everything first. May be needed if we're rebooting, but
+        # expect the initiators to reconnect cleanly when we boot again
+        # (i.e. we don't want them to reconnect to a tgtd which is still
+        # working, but the target is gone).
+        tgtadm --op update --mode sys --name State -v offline &>/dev/null
+        RETVAL=$?
+        if [ "$RETVAL" -eq 107 ] ; then
+            echo "tgtd is not running"
+            [ "$TASK" != "restart" ] && exit 1
+        else
+            tgt-admin --offline ALL
+            # Remove all targets, even if they are still in use.
+            tgt-admin --update ALL -c /dev/null -f
+            # It will shut down tgtd only after all targets were removed.
+            tgtadm --op delete --mode system
+            RETVAL=$?
+            if [ "$RETVAL" -ne 0 ] ; then
+                echo "Failed to shutdown tgtd"
+                exit 1
+            fi
+        fi
+        echo -n
+}
+
+reload()
+{
+        log_daemon_msg "Reloading configuration of $DESC" "$NAME"
+        # Update configuration for targets. Only targets which
+        # are not in use will be updated.
+        tgt-admin --update ALL -c $TGTD_CONFIG &>/dev/null
+        RETVAL=$?
+        if [ "$RETVAL" -eq 107 ] ; then
+                log_end_msg 1
+                echo "tgtd is not running"
+                exit 1
+        fi
+        log_end_msg 0
+}
+
+forcedreload()
+{
+        log_daemon_msg "Forced-reload configuration of $DESC" "$NAME"
+        # Update configuration for targets, even those in use.
+        tgt-admin --update ALL -f -c $TGTD_CONFIG &>/dev/null
+        RETVAL=$?
+        if [ "$RETVAL" -eq 107 ] ; then
+                log_end_msg 1
+                echo "tgtd is not running"
+                exit 1
+        else
+                log_end_msg 0
+        fi
+}
+
+status()
+{
+        # Don't name this script "tgtd"...
+        TGTD_PROC=$(ps -C tgtd | grep -c tgtd)
+        if [ "$TGTD_PROC" -eq 2 ] ; then
+            echo "tgtd is running. Run 'tgt-admin -s' to see detailed target info."
+        else
+            echo "tgtd is NOT running."
+        fi
+}
+
+case $1 in
+        start)
+                start
+                ;;
+        stop)
+                stop
+                ;;
+        forcedstop)
+                forcedstop
+                ;;
+        restart)
+                TASK=restart
+                stop && start
+                ;;
+        forcedrestart)
+                TASK=restart
+                forcedstop && start
+                ;;
+        reload)
+                reload
+                ;;
+        force-reload)
+                forcedreload
+                ;;
+        status)
+                status
+                ;;
+        *)
+                echo "Usage: $0 {start|stop|forcedstop|restart|forcedrestart|reload|force-reload|status}"
+                exit 2
+                ;;
+esac
+END
+}
-- 
Anthony PERARD

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack
  2015-09-28 15:56 [PATCH OSSTEST v3 0/3] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
  2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
@ 2015-09-28 15:56 ` Anthony PERARD
  2015-09-29 15:43   ` Ian Campbell
  2015-09-28 15:56 ` [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
  2 siblings, 1 reply; 22+ messages in thread
From: Anthony PERARD @ 2015-09-28 15:56 UTC (permalink / raw)
  To: xen-devel; +Cc: Anthony PERARD, Ian Jackson, Ian Campbell

This script runs the OpenStack integration test suite, Tempest.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

---
Change in V3:
- Use host as argument of the script.
- Use selecthost() and get rid of $gho.
- Use target_jobdir() instead of builddirsprops().
- Put the ignored Tempest tests into a var and try to explain why there are
  skip.
---
 sg-run-job           |  1 +
 ts-openstack-tempest | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100755 ts-openstack-tempest

diff --git a/sg-run-job b/sg-run-job
index 4f87f30..cb48b2b 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -376,6 +376,7 @@ proc run-job/test-rumpuserxen {} {
 proc need-hosts/test-devstack {} { return host }
 proc run-job/test-devstack {} {
   run-ts . = ts-openstack-deploy host
+  run-ts . = ts-openstack-tempest host
 }
 
 if {[file exists sg-run-job-adhoc]} {
diff --git a/ts-openstack-tempest b/ts-openstack-tempest
new file mode 100755
index 0000000..e2266d3
--- /dev/null
+++ b/ts-openstack-tempest
@@ -0,0 +1,53 @@
+#!/usr/bin/perl
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2015 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+use strict qw(vars);
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::BuildSupport;
+
+tsreadconfig();
+our ($whhost) = @ARGV;
+$whhost ||= 'host';
+our $ho = selecthost($whhost);
+our $builddir = target_jobdir($ho);
+
+sub tempest() {
+  my $ignored_tests = '';
+
+  # Ignore these tests:
+  # tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern
+  #   It try to start a guest with /dev/vda as boot device name.
+  $ignored_tests .= '|.*TestVolumeBootPattern.test_volume_boot_pattern';
+  # tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_volume_backed_instance
+  #   It try to start a guest with /dev/vda as boot device name.
+  $ignored_tests .= '|.*TestShelveInstance.test_shelve_volume_backed_instance';
+  # scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_volume_boot_pattern
+  #   It access a volume through iSCSI. This does not work when both the
+  #   server and client of iSCSI are on the same Xen host, Linux 4.0 is the
+  #   first Linux to have a fix.
+  $ignored_tests .= '|.*TestVolumeBootPatternV2.test_volume_boot_pattern';
+
+  # Adding the tests to skip to the default regex.
+  my $regex = "(?!.*\\[.*\\bslow\\b.*\\]$ignored_tests)(^tempest\\.(api|scenario|thirdparty))";
+
+  target_cmd($ho, <<END, 7200);
+    $builddir/tempest/run_tempest.sh --virtual-env -- --concurrency=2 '$regex'
+END
+}
+
+tempest();
-- 
Anthony PERARD

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-09-28 15:56 [PATCH OSSTEST v3 0/3] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
  2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
  2015-09-28 15:56 ` [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack Anthony PERARD
@ 2015-09-28 15:56 ` Anthony PERARD
  2015-09-29 15:49   ` Ian Campbell
  2015-09-29 16:52   ` Ian Jackson
  2 siblings, 2 replies; 22+ messages in thread
From: Anthony PERARD @ 2015-09-28 15:56 UTC (permalink / raw)
  To: xen-devel; +Cc: Anthony PERARD, Ian Jackson, Ian Campbell

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

---
Change in V3:
- Switch to "track" Nova tree instead of devstack.
    Nova is the service we care about from a Xen point of view.
    Also it is updated much more often than devstack.
- Use TREE_OPENSTACK_ as prefix for all trees variables.
- Change the filter, keep only *-devstack jobs.
- Add stuff into ./ap-push
- Add stuff into ./cr-daily-branch.
- Add 'openstack' into ./cr-for-branches.
---
 ap-common            | 12 ++++++++++++
 ap-fetch-version     |  4 ++++
 ap-fetch-version-old |  5 +++++
 ap-print-url         |  3 +++
 ap-push              |  5 +++++
 cr-daily-branch      |  8 ++++++++
 cr-for-branches      |  2 +-
 cri-common           |  1 +
 make-flight          | 34 ++++++++++++++++++++++++++++++++++
 mfi-common           |  5 +++++
 10 files changed, 78 insertions(+), 1 deletion(-)

diff --git a/ap-common b/ap-common
index 91425a9..a65e2fa 100644
--- a/ap-common
+++ b/ap-common
@@ -59,6 +59,17 @@ xenbranch_forqemu=${xenbranch/xen-unstable-smoke/xen-unstable}
 : ${PUSH_TREE_OVMF:=$XENBITS:/home/xen/git/osstest/ovmf.git}
 : ${BASE_TREE_OVMF:=git://xenbits.xen.org/osstest/ovmf.git}
 
+: ${GIT_OPENSTACK_ORG:=git://git.openstack.org}
+: ${TREE_OPENSTACK_CINDER:=$GIT_OPENSTACK_ORG/openstack/cinder.git}
+: ${TREE_OPENSTACK_DEVSTACK:=$GIT_OPENSTACK_ORG/openstack-dev/devstack.git}
+: ${TREE_OPENSTACK_GLANCE:=$GIT_OPENSTACK_ORG/openstack/glance.git}
+: ${TREE_OPENSTACK_KEYSTONE:=$GIT_OPENSTACK_ORG/openstack/keystone.git}
+: ${TREE_OPENSTACK_NOVA:=$GIT_OPENSTACK_ORG/openstack/nova.git}
+: ${TREE_OPENSTACK_REQUIREMENTS:=$GIT_OPENSTACK_ORG/openstack/requirements.git}
+: ${TREE_OPENSTACK_TEMPEST:=$GIT_OPENSTACK_ORG/openstack/tempest.git}
+: ${PUSH_TREE_OPENSTACK_NOVA:=$XENBITS:/home/xen/git/osstest/openstack-nova.git}
+: ${BASE_TREE_OPENSTACK_NOVA:=git://xenbits.xen.org/osstest/openstack-nova.git}
+
 : ${TREE_LINUXFIRMWARE:=git://xenbits.xen.org/osstest/linux-firmware.git}
 : ${PUSH_TREE_LINUXFIRMWARE:=$XENBITS:/home/osstest/ext/linux-firmware.git}
 : ${UPSTREAM_TREE_LINUXFIRMWARE:=$GIT_KERNEL_ORG/pub/scm/linux/kernel/git/firmware/linux-firmware.git}
@@ -86,6 +97,7 @@ fi
 : ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 : ${LOCALREV_OVMF:=daily-cron.$branch}
+: ${LOCALREV_OPENSTACK_NOVA:=daily-cron.$branch}
 
 : ${TREEBASE_LINUX_XCP:=http://hg.uk.xensource.com/carbon/trunk/linux-2.6.27}
 
diff --git a/ap-fetch-version b/ap-fetch-version
index 62adf79..ebcac0e 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -91,6 +91,10 @@ ovmf)
 	repo_tree_rev_fetch_git ovmf \
 		$TREE_OVMF_UPSTREAM master $LOCALREV_OVMF
 	;;
+openstack)
+	repo_tree_rev_fetch_git openstack-nova \
+		$TREE_OPENSTACK_NOVA master $LOCALREV_OPENSTACK_NOVA
+	;;
 osstest)
         if [ "x$OSSTEST_USE_HEAD" = "xy" ] ; then
 	    git update-ref -m "Arranging to test HEAD" \
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index 716fc8f..1b2ebb7 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -31,6 +31,7 @@ select_xenbranch
 : ${BASE_LOCALREV_RUMPUSERXEN:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_SEABIOS:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_OVMF:=daily-cron.$branch.old}
+: ${BASE_LOCALREV_OPENSTACK_NOVA:=daily-cron.$branch.old}
 
 : ${BASE_TREE_QEMU_UPSTREAM:=${TREE_QEMU_UPSTREAM/\/staging\//\/}}
 
@@ -99,6 +100,10 @@ ovmf)
 	repo_tree_rev_fetch_git ovmf \
 		$BASE_TREE_OVMF xen-tested-master $BASE_LOCALREV_OVMF
 	;;
+openstack)
+	repo_tree_rev_fetch_git openstack-nova \
+		$BASE_TREE_OPENSTACK_NOVA xen-tested-master $BASE_LOCALREV_OPENSTACK_NOVA
+	;;
 osstest)
 	if [ "x$OSSTEST_USE_HEAD" != "xy" ] ; then
 	    git fetch -f $HOME/testing.git production:ap-fetch
diff --git a/ap-print-url b/ap-print-url
index c161169..57dc9d0 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -64,6 +64,9 @@ ovmf)
 osstest)
 	echo none:;
 	;;
+openstack)
+	echo $TREE_OPENSTACK_NOVA
+	;;
 *)
 	echo >&2 "branch $branch ?"
 	exit 1
diff --git a/ap-push b/ap-push
index aa0ec3d..826832c 100755
--- a/ap-push
+++ b/ap-push
@@ -37,6 +37,7 @@ TREE_LIBVIRT=$PUSH_TREE_LIBVIRT
 TREE_RUMPUSERXEN=$PUSH_TREE_RUMPUSERXEN
 TREE_SEABIOS=$PUSH_TREE_SEABIOS
 TREE_OVMF=$PUSH_TREE_OVMF
+TREE_OPENSTACK_NOVA=$PUSH_TREE_OPENSTACK_NOVA
 
 if info_linux_tree "$branch"; then
 	cd $repos/linux
@@ -101,6 +102,10 @@ ovmf)
 	cd $repos/ovmf
 	git push $TREE_OVMF $revision:refs/heads/xen-tested-master
 	;;
+openstack)
+	cd $repos/openstack-nova
+	git push $TREE_OPENSTACK_NOVA $revision:refs/heads/xen-tested-master
+	;;
 osstest)
 	git push $HOME/testing.git $revision:production
 	if [ x"$TREEBRANCH_OSSTEST_UPSTREAM" != x ] ; then
diff --git a/cr-daily-branch b/cr-daily-branch
index dd9c30a..ac13677 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -197,6 +197,10 @@ if [ "x$REVISION_LINUXFIRMWARE" = x ]; then
 	determine_version REVISION_LINUXFIRMWARE linuxfirmware LINUXFIRMWARE
         export REVISION_LINUXFIRMWARE
 fi
+if [ "x$REVISION_OPENSTACK_NOVA" = x ]; then
+        determine_version REVISION_OPENSTACK_NOVA openstack OPENSTACK_NOVA
+        export REVISION_OPENSTACK_NOVA
+fi
 
 if [ "x$branch" != "xxen-unstable" ]; then
         export REVISION_LINUX_OLD=disable
@@ -246,6 +250,10 @@ ovmf)
 	realtree=ovmf
 	NEW_REVISION=$REVISION_OVMF
 	;;
+openstack)
+	realtree=openstack-nova
+	NEW_REVISION=$REVISION_OPENSTACK_NOVA
+	;;
 *)
 	NEW_REVISION=''
 	wantpush=false
diff --git a/cr-for-branches b/cr-for-branches
index 8d5748b..2726ea4 100755
--- a/cr-for-branches
+++ b/cr-for-branches
@@ -31,7 +31,7 @@ scriptoptions="$1"; shift
 LOGFILE=tmp/cr-for-branches.log
 export LOGFILE
 
-: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-4.5-testing xen-4.6-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing qemu-upstream-4.5-testing qemu-upstream-4.6-testing linux-4.1 linux-3.18 linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf ${EXTRA_BRANCHES}}
+: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-4.5-testing xen-4.6-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing qemu-upstream-4.5-testing qemu-upstream-4.6-testing linux-4.1 linux-3.18 linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf openstack ${EXTRA_BRANCHES}}
 export BRANCHES
 
 fetchwlem=$wlem
diff --git a/cri-common b/cri-common
index c874ff9..66d13d1 100644
--- a/cri-common
+++ b/cri-common
@@ -79,6 +79,7 @@ select_xenbranch () {
 	ovmf)			tree=ovmf;	xenbranch=xen-unstable ;;
 	distros-*)		tree=none;	xenbranch=xen-unstable ;;
 	osstest)		tree=osstest;	xenbranch=xen-unstable ;;
+	openstack)		tree=devstack;	xenbranch=xen-unstable ;;
 	esac
 	if [ "x$tree" = xlinux ]; then
 		linuxbranch=$branch
diff --git a/make-flight b/make-flight
index 70c909d..e5fe0d6 100755
--- a/make-flight
+++ b/make-flight
@@ -54,6 +54,11 @@ job_create_build_filter_callback () {
         *)			return 1 ;;
       esac
     ;;
+    openstack)
+      case "$job" in
+        *-xsm) return 1;;
+      esac
+    ;;
   esac
   return 0
 }
@@ -129,6 +134,16 @@ job_create_test_filter_callback () {
         *) return 1;;
       esac
       ;;
+    openstack)
+      case "$job" in
+        *-devstack) ;;
+        *) return 1;;
+      esac
+      case $dom0arch in
+          amd64) ;;
+          *) return 1;;
+      esac
+      ;;
     *)
       case "$job" in
         *-qemuu-*)
@@ -621,6 +636,25 @@ test_matrix_do_one () {
 
   do_pygrub_tests
   do_pvgrub_tests
+
+  job_create_test test-$xenarch$kern-$dom0arch-devstack \
+    test-devstack libvirt $xenarch $dom0arch \
+    tree_devstack=$TREE_OPENSTACK_DEVSTACK \
+    tree_requirements=$TREE_OPENSTACK_REQUIREMENTS \
+    tree_keystone=$TREE_OPENSTACK_KEYSTONE \
+    tree_glance=$TREE_OPENSTACK_GLANCE \
+    tree_cinder=$TREE_OPENSTACK_CINDER \
+    tree_nova=$TREE_OPENSTACK_NOVA \
+    tree_tempest=$TREE_OPENSTACK_TEMPEST \
+    revision_devstack=master \
+    revision_requirements=master \
+    revision_keystone=master \
+    revision_glance=master \
+    revision_cinder=master \
+    revision_nova=master \
+    revision_tempest=master \
+    dom0_mem=4000 \
+    all_hostflags=$most_hostflags
 }
 
 test_matrix_iterate
diff --git a/mfi-common b/mfi-common
index 01a5c9e..7e30cc7 100644
--- a/mfi-common
+++ b/mfi-common
@@ -59,6 +59,7 @@ xenbranch_xsm_variants () {
     xen-4.3-testing) echo "false";;
     xen-4.4-testing) echo "false";;
     xen-4.5-testing) echo "false";;
+    openstack)       echo "false";;
     *) echo "false true";
     esac
 }
@@ -102,6 +103,7 @@ create_build_jobs () {
       rumpuserxen) continue;;
       seabios) continue;;
       ovmf) continue;;
+      openstack) continue;;
       esac
       case "$xenbranch" in
       xen-3.*-testing) continue;;
@@ -127,6 +129,9 @@ create_build_jobs () {
       "
       ;;
     esac
+    if [ "$arch" = i386 ] && [ "$branch" = openstack ]; then
+      continue
+    fi
 
     case "$arch" in
     *)     suite=$defsuite;;
-- 
Anthony PERARD

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
@ 2015-09-29 15:34   ` Ian Campbell
  2015-09-29 16:19     ` Anthony PERARD
  2015-09-29 17:02     ` Ian Jackson
  2015-09-30  8:32   ` Ian Campbell
  1 sibling, 2 replies; 22+ messages in thread
From: Ian Campbell @ 2015-09-29 15:34 UTC (permalink / raw)
  To: Anthony PERARD, xen-devel; +Cc: Ian Jackson

On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> This script installs any necessary packages and clones all of the
> OpenStack
> trees which are used by devstack to deploy OpenStack.
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

This mostly looks good to me. A few comments.

> +  # libvirt is already installed, but not as a package, so avoid
> installation of
> +  # the libvirt package with devstack
> +  target_editfile($ho, "$builddir/devstack/files/debs/nova", sub {
> +      while (<EI>) {
> +        next if m/.*libvirt.*/;
> +        print EO or die $!;
> +      }
> +  });
> +  target_editfile($ho, "$builddir/devstack/lib/nova_plugins/functions
> -libvirt", sub {
> +      while (<EI>) {
> +        next if m/install_package.*libvirt.*/;
> +        print EO or die $!;
> +      }
> +  });

Do these end up causing the built_revision_foo to say "-dirty" or anything
like that?

Maybe not because I don't see any calls to store_vcs_revision, which I
think we discussed on an earlier revision?

> +  # OpenStack needs access to libvirt from a user.
> +  target_cmd_root($ho, <<END);

You could use target_putfilecontents_root_stash for this too I think?

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack
  2015-09-28 15:56 ` [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack Anthony PERARD
@ 2015-09-29 15:43   ` Ian Campbell
  2015-09-29 17:15     ` Anthony PERARD
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Campbell @ 2015-09-29 15:43 UTC (permalink / raw)
  To: Anthony PERARD, xen-devel; +Cc: Ian Jackson

On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:

> +  # Ignore these tests:
> +  # tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern
> +  #   It try to start a guest with /dev/vda as boot device name.
> +  $ignored_tests .= '|.*TestVolumeBootPattern.test_volume_boot_pattern';

Don't you need to escape the second "." for the regex context in the
tempest script? \Q and \E might be helpful for this?

Also, you actually ignore any test ending with that string, not just the
exact one in the comment, is that deliberate? Also any test with a longer
name which has this substring will also be ignored.

If not then you could put the common prefix into a variable to avoid
repeating it (and the very long lines) and maybe add some anchors?

You might also want to consider

    push @ignored_tests, "^$prefix\QTestVolumeBootPattern.test_volume_boot_pattern$";

Then later:
    $ignored_tests = join("|", @ignored_tests);

(I'm not sure, but I don't think you want qr{} [0] here, I might be wrong
though)

> +  # tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_volume_backed_instance
> +  #   It try to start a guest with /dev/vda as boot device name.
> +  $ignored_tests .= '|.*TestShelveInstance.test_shelve_volume_backed_instance';
> +  # scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_volume_boot_pattern
> +  #   It access a volume through iSCSI. This does not work when both the
> +  #   server and client of iSCSI are on the same Xen host, Linux 4.0 is the
> +  #   first Linux to have a fix.
> +  $ignored_tests .= '|.*TestVolumeBootPatternV2.test_volume_boot_pattern';
> +
> +  # Adding the tests to skip to the default regex.
> +  my $regex = "(?!.*\\[.*\\bslow\\b.*\\]$ignored_tests)(^tempest\\.(api|scenario|thirdparty))";

Where the default regex is:
    "(?!.*\\[.*\\bslow\\b.*\\])(^tempest\\.(api|scenario|thirdparty))";
?

This is a pretty rubbish interface which tempest has given you. What a
pain!

Ian

[0] http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-09-28 15:56 ` [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
@ 2015-09-29 15:49   ` Ian Campbell
  2015-09-29 17:21     ` Anthony PERARD
  2015-09-29 16:52   ` Ian Jackson
  1 sibling, 1 reply; 22+ messages in thread
From: Ian Campbell @ 2015-09-29 15:49 UTC (permalink / raw)
  To: Anthony PERARD, xen-devel; +Cc: Ian Jackson

On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> diff --git a/cri-common b/cri-common
> index c874ff9..66d13d1 100644
> --- a/cri-common
> +++ b/cri-common
> @@ -79,6 +79,7 @@ select_xenbranch () {
>  > 	> ovmf)> 	> 	> 	> tree=ovmf;> 	> xenbranch=xen-unstable ;;
>  > 	> distros-*)> 	> 	> tree=none;> 	> xenbranch=xen-unstable ;;
>  > 	> osstest)> 	> 	> tree=osstest;> 	> xenbranch=xen-unstable ;;
> +> 	> openstack)> 	> 	> tree=devstack;> 	> xenbranch=xen-unstable ;;

Is this "devstack" a left over which should have become openstack-nova like
the others?

@@ -621,6 +636,25 @@ test_matrix_do_one () {
>  
>    do_pygrub_tests
>    do_pvgrub_tests
> +
> +  job_create_test test-$xenarch$kern-$dom0arch-devstack \
> +    test-devstack libvirt $xenarch $dom0arch \
> +    tree_devstack=$TREE_OPENSTACK_DEVSTACK \
> +    tree_requirements=$TREE_OPENSTACK_REQUIREMENTS \
> +    tree_keystone=$TREE_OPENSTACK_KEYSTONE \
> +    tree_glance=$TREE_OPENSTACK_GLANCE \
> +    tree_cinder=$TREE_OPENSTACK_CINDER \
> +    tree_nova=$TREE_OPENSTACK_NOVA \
> +    tree_tempest=$TREE_OPENSTACK_TEMPEST \
> +    revision_devstack=master \
> +    revision_requirements=master \
> +    revision_keystone=master \
> +    revision_glance=master \
> +    revision_cinder=master \
> +    revision_nova=master \

This one wants to be $REVISION_OPENSTACK_NOVA which comes from the new call
to determine_revision which you added.

If what you get when you do a bare git clone of $TREE_OPENSTACK_NOVA is not
master then to support standalone mode you might want
${REVISION_OPENSTACK_NOVA:-master} to set the default for non-cr-daily
-branch callers.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-29 15:34   ` Ian Campbell
@ 2015-09-29 16:19     ` Anthony PERARD
  2015-09-29 17:04       ` Ian Jackson
  2015-09-30  8:29       ` Ian Campbell
  2015-09-29 17:02     ` Ian Jackson
  1 sibling, 2 replies; 22+ messages in thread
From: Anthony PERARD @ 2015-09-29 16:19 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Ian Jackson, xen-devel

On Tue, Sep 29, 2015 at 04:34:44PM +0100, Ian Campbell wrote:
> On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > This script installs any necessary packages and clones all of the
> > OpenStack
> > trees which are used by devstack to deploy OpenStack.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> 
> This mostly looks good to me. A few comments.
> 
> > +  # libvirt is already installed, but not as a package, so avoid
> > installation of
> > +  # the libvirt package with devstack
> > +  target_editfile($ho, "$builddir/devstack/files/debs/nova", sub {
> > +      while (<EI>) {
> > +        next if m/.*libvirt.*/;
> > +        print EO or die $!;
> > +      }
> > +  });
> > +  target_editfile($ho, "$builddir/devstack/lib/nova_plugins/functions
> > -libvirt", sub {
> > +      while (<EI>) {
> > +        next if m/install_package.*libvirt.*/;
> > +        print EO or die $!;
> > +      }
> > +  });
> 
> Do these end up causing the built_revision_foo to say "-dirty" or anything
> like that?
> 
> Maybe not because I don't see any calls to store_vcs_revision, which I
> think we discussed on an earlier revision?

I'm only using build_clone() from osstest to clone any git tree. devstack
is not allowed to clone anything (because of ERROR_ON_CLONE=True in its
config file). So I don't need to call store_vcs_revision, and the tree will
not be seen as -dirty from osstest.

> > +  # OpenStack needs access to libvirt from a user.
> > +  target_cmd_root($ho, <<END);
> 
> You could use target_putfilecontents_root_stash for this too I think?

Well, this append things to the config files, and we thought bash HEREDOC was
"the right answer" ( <1437402707.17368.39.camel@citrix.com> ).

The next line of the patch is:
> +    cat >> /etc/libvirt/libvirtd.conf <<EOF

Thanks,

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-09-28 15:56 ` [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
  2015-09-29 15:49   ` Ian Campbell
@ 2015-09-29 16:52   ` Ian Jackson
  2015-10-08 16:08     ` Ian Campbell
  1 sibling, 1 reply; 22+ messages in thread
From: Ian Jackson @ 2015-09-29 16:52 UTC (permalink / raw)
  To: Anthony PERARD; +Cc: Ian Campbell, xen-devel

Anthony PERARD writes ("[PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt"):
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> 
> ---
> Change in V3:
> - Switch to "track" Nova tree instead of devstack.
>     Nova is the service we care about from a Xen point of view.
>     Also it is updated much more often than devstack.
> - Use TREE_OPENSTACK_ as prefix for all trees variables.
> - Change the filter, keep only *-devstack jobs.
> - Add stuff into ./ap-push
> - Add stuff into ./cr-daily-branch.
> - Add 'openstack' into ./cr-for-branches.
...
> +  job_create_test test-$xenarch$kern-$dom0arch-devstack \
> +    test-devstack libvirt $xenarch $dom0arch \
> +    tree_devstack=$TREE_OPENSTACK_DEVSTACK \
> +    tree_requirements=$TREE_OPENSTACK_REQUIREMENTS \
> +    tree_keystone=$TREE_OPENSTACK_KEYSTONE \
> +    tree_glance=$TREE_OPENSTACK_GLANCE \
> +    tree_cinder=$TREE_OPENSTACK_CINDER \
> +    tree_nova=$TREE_OPENSTACK_NOVA \
> +    tree_tempest=$TREE_OPENSTACK_TEMPEST \
> +    revision_devstack=master \
> +    revision_requirements=master \
> +    revision_keystone=master \
> +    revision_glance=master \
> +    revision_cinder=master \
> +    revision_nova=master \
> +    revision_tempest=master \

All these revision_FOO=master are rather odd.  You seem to be creating
a push gate which maintains a tested revision of `openstack-nova'.  Is
that what you want ?  If so, then it's not really clear to me that
what you want to do is to simply pick up new master revisions of these
other git trees.  It might be better to obtain a bunch of revision
ids, test them all together, and push them together ?  (This is not
something that osstest can do right now but it doesn't seem
difficult.)

If you don't want to make a push gate, then you probably want to do
away with the changes to ap-fetch and ap-push.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-29 15:34   ` Ian Campbell
  2015-09-29 16:19     ` Anthony PERARD
@ 2015-09-29 17:02     ` Ian Jackson
  1 sibling, 0 replies; 22+ messages in thread
From: Ian Jackson @ 2015-09-29 17:02 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Anthony PERARD, xen-devel

Ian Campbell writes ("Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack"):
> On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > This script installs any necessary packages and clones all of the
> > OpenStack
> > trees which are used by devstack to deploy OpenStack.
> > 
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> 
> This mostly looks good to me. A few comments.
...
> Do these end up causing the built_revision_foo to say "-dirty" or anything
> like that?

I imagine they would.

I think it might be necessary to extend store_vcs_revision to be able
to pass some kind of ignore list, or perhaps to restore the un-edited
files from the stash, or something.

> Maybe not because I don't see any calls to store_vcs_revision, which I
> think we discussed on an earlier revision?

This is indeed needed I think.

Anthony, do you want tests to be subject to bisection ?

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-29 16:19     ` Anthony PERARD
@ 2015-09-29 17:04       ` Ian Jackson
  2015-09-30  8:29       ` Ian Campbell
  1 sibling, 0 replies; 22+ messages in thread
From: Ian Jackson @ 2015-09-29 17:04 UTC (permalink / raw)
  To: Anthony PERARD; +Cc: Ian Campbell, xen-devel

Anthony PERARD writes ("Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack"):
> On Tue, Sep 29, 2015 at 04:34:44PM +0100, Ian Campbell wrote:
> > Maybe not because I don't see any calls to store_vcs_revision, which I
> > think we discussed on an earlier revision?
> 
> I'm only using build_clone() from osstest to clone any git tree. devstack
> is not allowed to clone anything (because of ERROR_ON_CLONE=True in its
> config file). So I don't need to call store_vcs_revision, and the tree will
> not be seen as -dirty from osstest.

Oh, I see.  Sorry, yes.  build_clone calls store_vcs_revision itself.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack
  2015-09-29 15:43   ` Ian Campbell
@ 2015-09-29 17:15     ` Anthony PERARD
  2015-09-30  8:38       ` Ian Campbell
  0 siblings, 1 reply; 22+ messages in thread
From: Anthony PERARD @ 2015-09-29 17:15 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Ian Jackson, xen-devel

On Tue, Sep 29, 2015 at 04:43:50PM +0100, Ian Campbell wrote:
> On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> 
> > +  # Ignore these tests:
> > +  # tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_volume_boot_pattern
> > +  #   It try to start a guest with /dev/vda as boot device name.
> > +  $ignored_tests .= '|.*TestVolumeBootPattern.test_volume_boot_pattern';
> 
> Don't you need to escape the second "." for the regex context in the
> tempest script? \Q and \E might be helpful for this?

Yes, I should probably escape the dot. \Q and \E is for perl, isn't it?
The regex is going to be interpreted by python.

> Also, you actually ignore any test ending with that string, not just the
> exact one in the comment, is that deliberate? Also any test with a longer
> name which has this substring will also be ignored.
> 
> If not then you could put the common prefix into a variable to avoid
> repeating it (and the very long lines) and maybe add some anchors?

I'll clean that up, and use a prefix.

What are you speaking about when you say "anchors"?

> You might also want to consider
> 
>     push @ignored_tests, "^$prefix\QTestVolumeBootPattern.test_volume_boot_pattern$";
> 
> Then later:
>     $ignored_tests = join("|", @ignored_tests);

I'll look into that.

> (I'm not sure, but I don't think you want qr{} [0] here, I might be wrong
> though)
> 
> > +  # tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_volume_backed_instance
> > +  #   It try to start a guest with /dev/vda as boot device name.
> > +  $ignored_tests .= '|.*TestShelveInstance.test_shelve_volume_backed_instance';
> > +  # scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_volume_boot_pattern
> > +  #   It access a volume through iSCSI. This does not work when both the
> > +  #   server and client of iSCSI are on the same Xen host, Linux 4.0 is the
> > +  #   first Linux to have a fix.
> > +  $ignored_tests .= '|.*TestVolumeBootPatternV2.test_volume_boot_pattern';
> > +
> > +  # Adding the tests to skip to the default regex.
> > +  my $regex = "(?!.*\\[.*\\bslow\\b.*\\]$ignored_tests)(^tempest\\.(api|scenario|thirdparty))";
> 
> Where the default regex is:
>     "(?!.*\\[.*\\bslow\\b.*\\])(^tempest\\.(api|scenario|thirdparty))";
> ?

This regex of tests to execute can be found in tempest.git/tox.ini, in the
section "[testenv:full]". That what's been used the OpenStack gate.

I'll add a comment about it in the next patch version.

> This is a pretty rubbish interface which tempest has given you. What a
> pain!

Yeah, that the only way to ignore a test on a specific third-party
openstack CI loop...

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-09-29 15:49   ` Ian Campbell
@ 2015-09-29 17:21     ` Anthony PERARD
  0 siblings, 0 replies; 22+ messages in thread
From: Anthony PERARD @ 2015-09-29 17:21 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Ian Jackson, xen-devel

On Tue, Sep 29, 2015 at 04:49:29PM +0100, Ian Campbell wrote:
> On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > diff --git a/cri-common b/cri-common
> > index c874ff9..66d13d1 100644
> > --- a/cri-common
> > +++ b/cri-common
> > @@ -79,6 +79,7 @@ select_xenbranch () {
> >  > 	> ovmf)> 	> 	> 	> tree=ovmf;> 	> xenbranch=xen-unstable ;;
> >  > 	> distros-*)> 	> 	> tree=none;> 	> xenbranch=xen-unstable ;;
> >  > 	> osstest)> 	> 	> tree=osstest;> 	> xenbranch=xen-unstable ;;
> > +> 	> openstack)> 	> 	> tree=devstack;> 	> xenbranch=xen-unstable ;;
> 
> Is this "devstack" a left over which should have become openstack-nova like
> the others?

Yes, I should change this one as well.

> @@ -621,6 +636,25 @@ test_matrix_do_one () {
> >  
> >    do_pygrub_tests
> >    do_pvgrub_tests
> > +
> > +  job_create_test test-$xenarch$kern-$dom0arch-devstack \
> > +    test-devstack libvirt $xenarch $dom0arch \
> > +    tree_devstack=$TREE_OPENSTACK_DEVSTACK \
> > +    tree_requirements=$TREE_OPENSTACK_REQUIREMENTS \
> > +    tree_keystone=$TREE_OPENSTACK_KEYSTONE \
> > +    tree_glance=$TREE_OPENSTACK_GLANCE \
> > +    tree_cinder=$TREE_OPENSTACK_CINDER \
> > +    tree_nova=$TREE_OPENSTACK_NOVA \
> > +    tree_tempest=$TREE_OPENSTACK_TEMPEST \
> > +    revision_devstack=master \
> > +    revision_requirements=master \
> > +    revision_keystone=master \
> > +    revision_glance=master \
> > +    revision_cinder=master \
> > +    revision_nova=master \
> 
> This one wants to be $REVISION_OPENSTACK_NOVA which comes from the new call
> to determine_revision which you added.

Ok, I'll change that.

> If what you get when you do a bare git clone of $TREE_OPENSTACK_NOVA is not
> master then to support standalone mode you might want
> ${REVISION_OPENSTACK_NOVA:-master} to set the default for non-cr-daily
> -branch callers.

I think the default is master.

Also, I guest I should remove the other revision_* runvar which are not
very usefull right now.

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-29 16:19     ` Anthony PERARD
  2015-09-29 17:04       ` Ian Jackson
@ 2015-09-30  8:29       ` Ian Campbell
  1 sibling, 0 replies; 22+ messages in thread
From: Ian Campbell @ 2015-09-30  8:29 UTC (permalink / raw)
  To: Anthony PERARD; +Cc: Ian Jackson, xen-devel

On Tue, 2015-09-29 at 17:19 +0100, Anthony PERARD wrote:
> On Tue, Sep 29, 2015 at 04:34:44PM +0100, Ian Campbell wrote:
> > On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > > This script installs any necessary packages and clones all of the
> > > OpenStack
> > > trees which are used by devstack to deploy OpenStack.
> > > 
> > > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> > 
> > This mostly looks good to me. A few comments.
> > 
> > > +  # libvirt is already installed, but not as a package, so avoid
> > > installation of
> > > +  # the libvirt package with devstack
> > > +  target_editfile($ho, "$builddir/devstack/files/debs/nova", sub {
> > > +      while (<EI>) {
> > > +        next if m/.*libvirt.*/;
> > > +        print EO or die $!;
> > > +      }
> > > +  });
> > > +  target_editfile($ho,
> > > "$builddir/devstack/lib/nova_plugins/functions
> > > -libvirt", sub {
> > > +      while (<EI>) {
> > > +        next if m/install_package.*libvirt.*/;
> > > +        print EO or die $!;
> > > +      }
> > > +  });
> > 
> > Do these end up causing the built_revision_foo to say "-dirty" or
> > anything
> > like that?
> > 
> > Maybe not because I don't see any calls to store_vcs_revision, which I
> > think we discussed on an earlier revision?
> 
> I'm only using build_clone() from osstest to clone any git tree. devstack
> is not allowed to clone anything (because of ERROR_ON_CLONE=True in its
> config file). So I don't need to call store_vcs_revision, and the tree
> will
> not be seen as -dirty from osstest.

I'd forgotten that build_clone also called store_vcs_clone, sorry.


> > +  # OpenStack needs access to libvirt from a user.
> > > +  target_cmd_root($ho, <<END);
> > 
> > You could use target_putfilecontents_root_stash for this too I think?
> 
> Well, this append things to the config files, and we thought bash HEREDOC
> was
> "the right answer" ( <1437402707.17368.39.camel@citrix.com> ).
> 
> The next line of the patch is:
> > +    cat >> /etc/libvirt/libvirtd.conf <<EOF

Ah yes, I'd forgotten about that, sorry.

So given that I think what I meant to say last time was:

Acked-by: Ian Campbell <ian.campbell@citrix.com>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
  2015-09-29 15:34   ` Ian Campbell
@ 2015-09-30  8:32   ` Ian Campbell
  2015-09-30 10:52     ` Ian Jackson
  1 sibling, 1 reply; 22+ messages in thread
From: Ian Campbell @ 2015-09-30  8:32 UTC (permalink / raw)
  To: Anthony PERARD, xen-devel; +Cc: Ian Jackson

On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> +  # OpenStack needs access to libvirt from a user.
> +  target_cmd_root($ho, <<END);
> +    cat >> /etc/libvirt/libvirtd.conf <<EOF
> +unix_sock_group = "libvirt"
> +unix_sock_ro_perms = "0777"
> +unix_sock_rw_perms = "0770"
> +EOF
> +END

One small nit on this, which is that it isn't idempotent, i.e. running this
step on the same host repeatedly (common in standalone mode) will keep
adding those lines to the conf file.

If you care then possible solutions:

Use target_editfile_root() to filter the lines out and then re-add them.
See setupboot_grub2  and the handling of GRUB_ENABLE_XEN_UEFI_CHAINLOAD

Use grep (3 times?) to decide if you need to append the given line.

Modify the file in the dist file in ts-libvirt-build so it applies to all
test cases and not just this one.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack
  2015-09-29 17:15     ` Anthony PERARD
@ 2015-09-30  8:38       ` Ian Campbell
  0 siblings, 0 replies; 22+ messages in thread
From: Ian Campbell @ 2015-09-30  8:38 UTC (permalink / raw)
  To: Anthony PERARD; +Cc: Ian Jackson, xen-devel

On Tue, 2015-09-29 at 18:15 +0100, Anthony PERARD wrote:
> On Tue, Sep 29, 2015 at 04:43:50PM +0100, Ian Campbell wrote:
> > On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > 
> > > +  # Ignore these tests:
> > > +  #
> > > tempest.scenario.test_volume_boot_pattern.TestVolumeBootPattern.test_
> > > volume_boot_pattern
> > > +  #   It try to start a guest with /dev/vda as boot device name.
> > > +  $ignored_tests .=
> > > '|.*TestVolumeBootPattern.test_volume_boot_pattern';
> > 
> > Don't you need to escape the second "." for the regex context in the
> > tempest script? \Q and \E might be helpful for this?
> 
> Yes, I should probably escape the dot. \Q and \E is for perl, isn't it?
> The regex is going to be interpreted by python.

$foo = "\Qtest.case\E" ends up with $foo having the a literal value which
is escaped i.e. "test\.case", which then gets passed to whichever regex
(including Pythons) and does the right thing.

e.g. 

$ perl -e 'print "\Qtest.case\E\n";'
test\.case
$ perl -e 'print "\Qtest.case*\E\n";'
test\.case\*

There is a subtle reliance on the Perl quoting rules and the Python quoting
rules being similar enough, but since these are regexp's I think that is
safe enough. We also assume Perl quoting is compatible with Shell quoting
in various places.

> > Also, you actually ignore any test ending with that string, not just
> > the
> > exact one in the comment, is that deliberate? Also any test with a
> > longer
> > name which has this substring will also be ignored.
> > 
> > If not then you could put the common prefix into a variable to avoid
> > repeating it (and the very long lines) and maybe add some anchors?
> 
> I'll clean that up, and use a prefix.
> 
> What are you speaking about when you say "anchors"?

I mean anchoring the match to the start of the string with ^ or to the end
with $. i.e. /^foo$/ only matches "foo" and not "foobar" or "bazfoo" etc.


> > > +  #
> > > tempest.scenario.test_shelve_instance.TestShelveInstance.test_shelve_
> > > volume_backed_instance
> > > +  #   It try to start a guest with /dev/vda as boot device name.
> > > +  $ignored_tests .=
> > > '|.*TestShelveInstance.test_shelve_volume_backed_instance';
> > > +  #
> > > scenario.test_volume_boot_pattern.TestVolumeBootPatternV2.test_volume
> > > _boot_pattern
> > > +  #   It access a volume through iSCSI. This does not work when both
> > > the
> > > +  #   server and client of iSCSI are on the same Xen host, Linux 4.0
> > > is the
> > > +  #   first Linux to have a fix.
> > > +  $ignored_tests .=
> > > '|.*TestVolumeBootPatternV2.test_volume_boot_pattern';
> > > +
> > > +  # Adding the tests to skip to the default regex.
> > > +  my $regex =
> > > "(?!.*\\[.*\\bslow\\b.*\\]$ignored_tests)(^tempest\\.(api|scenario|th
> > > irdparty))";
> > 
> > Where the default regex is:
> >     "(?!.*\\[.*\\bslow\\b.*\\])(^tempest\\.(api|scenario|thirdparty))";
> > ?
> 
> This regex of tests to execute can be found in tempest.git/tox.ini, in
> the
> section "[testenv:full]". That what's been used the OpenStack gate.
> 
> I'll add a comment about it in the next patch version.

Given that the upstream default might change under our feet maybe we should
just consider this to be our own decision to make, even if it happens to
match the default today?

> > This is a pretty rubbish interface which tempest has given you. What a
> > pain!
> 
> Yeah, that the only way to ignore a test on a specific third-party
> openstack CI loop...

Yuck. Oh well.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack
  2015-09-30  8:32   ` Ian Campbell
@ 2015-09-30 10:52     ` Ian Jackson
  0 siblings, 0 replies; 22+ messages in thread
From: Ian Jackson @ 2015-09-30 10:52 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Anthony PERARD, xen-devel

Ian Campbell writes ("Re: [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack"):
> On Mon, 2015-09-28 at 16:56 +0100, Anthony PERARD wrote:
> > +  # OpenStack needs access to libvirt from a user.
> > +  target_cmd_root($ho, <<END);
> > +    cat >> /etc/libvirt/libvirtd.conf <<EOF
> > +unix_sock_group = "libvirt"
> > +unix_sock_ro_perms = "0777"
> > +unix_sock_rw_perms = "0770"
> > +EOF
> > +END
> 
> One small nit on this, which is that it isn't idempotent, i.e. running this
> step on the same host repeatedly (common in standalone mode) will keep
> adding those lines to the conf file.
> 
> If you care then possible solutions:

I agree with Ian C that this is a nit.  However, provided that libvirt
doesn't mind if the lines are duplicated, I think this is tolerable.
It will only occur in by-hand testing.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-09-29 16:52   ` Ian Jackson
@ 2015-10-08 16:08     ` Ian Campbell
  2015-10-08 16:42       ` Ian Jackson
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Campbell @ 2015-10-08 16:08 UTC (permalink / raw)
  To: Ian Jackson, Anthony PERARD; +Cc: xen-devel

On Tue, 2015-09-29 at 17:52 +0100, Ian Jackson wrote:
> Anthony PERARD writes ("[PATCH OSSTEST v3 3/3] Create a flight to test
> OpenStack with xen-unstable and libvirt"):
> > Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> > 
> > ---
> > Change in V3:
> > - Switch to "track" Nova tree instead of devstack.
> >     Nova is the service we care about from a Xen point of view.
> >     Also it is updated much more often than devstack.
> > - Use TREE_OPENSTACK_ as prefix for all trees variables.
> > - Change the filter, keep only *-devstack jobs.
> > - Add stuff into ./ap-push
> > - Add stuff into ./cr-daily-branch.
> > - Add 'openstack' into ./cr-for-branches.
> ...
> > +  job_create_test test-$xenarch$kern-$dom0arch-devstack \
> > +    test-devstack libvirt $xenarch $dom0arch \
> > +    tree_devstack=$TREE_OPENSTACK_DEVSTACK \
> > +    tree_requirements=$TREE_OPENSTACK_REQUIREMENTS \
> > +    tree_keystone=$TREE_OPENSTACK_KEYSTONE \
> > +    tree_glance=$TREE_OPENSTACK_GLANCE \
> > +    tree_cinder=$TREE_OPENSTACK_CINDER \
> > +    tree_nova=$TREE_OPENSTACK_NOVA \
> > +    tree_tempest=$TREE_OPENSTACK_TEMPEST \
> > +    revision_devstack=master \
> > +    revision_requirements=master \
> > +    revision_keystone=master \
> > +    revision_glance=master \
> > +    revision_cinder=master \
> > +    revision_nova=master \
> > +    revision_tempest=master \
> 
> All these revision_FOO=master are rather odd.

I think the revision_nova one was supposed to be $REVISION_OPENSTACK_NOVA?

AIUI Nova is the component which we care about (it's the "compute" bit of
openstack) and changes frequently compared with devstack (the overall
driver).

>   You seem to be creating
> a push gate which maintains a tested revision of `openstack-nova'.  Is
> that what you want ?  If so, then it's not really clear to me that
> what you want to do is to simply pick up new master revisions of these
> other git trees.  It might be better to obtain a bunch of revision
> ids, test them all together, and push them together ?

i.e. to have multiple output gates, one for each of those trees, each
pushed from a single flight?

I'm assuming you aren't talking about having N openstack flights, one for
each tree.

>   (This is not
> something that osstest can do right now but it doesn't seem
> difficult.)

It seems like quite a lot of faff in cr-daily-branch (what does $tree mean,
which $NEW_REVISION and $OLD_REVISION do we look at), ap-push now needs to
operate on a list or something (arguments?).

Getting this stuff right (i.e. testing) is quite hard even with access to a
production instance.

The series today records the actual built versions, so we still get
bisections, what would having multiple output gates buy us in practice over
that?

Maybe the explicit =master stuff above should be removed, or replaced with
$REVISION_OPENSTACK_FOO which apart from NOVA are _not_ set by cr-daily
-branch (resulting in cloning master)?

> If you don't want to make a push gate, then you probably want to do
> away with the changes to ap-fetch and ap-push.

I think we want a push gate just for the regression tracking, but not
really for its own sake.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-10-08 16:08     ` Ian Campbell
@ 2015-10-08 16:42       ` Ian Jackson
  2015-10-09 10:54         ` Anthony PERARD
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Jackson @ 2015-10-08 16:42 UTC (permalink / raw)
  To: Ian Campbell; +Cc: Anthony PERARD, xen-devel

Ian Campbell writes ("Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt"):
> On Tue, 2015-09-29 at 17:52 +0100, Ian Jackson wrote:
> > All these revision_FOO=master are rather odd.
> 
> I think the revision_nova one was supposed to be $REVISION_OPENSTACK_NOVA?
> 
> AIUI Nova is the component which we care about (it's the "compute" bit of
> openstack) and changes frequently compared with devstack (the overall
> driver).

And the others we don't care about ?  Are they likely to break things
anyway, is my point ?  Do they have uniform intercompatibility ?

> >   You seem to be creating
> > a push gate which maintains a tested revision of `openstack-nova'.  Is
> > that what you want ?  If so, then it's not really clear to me that
> > what you want to do is to simply pick up new master revisions of these
> > other git trees.  It might be better to obtain a bunch of revision
> > ids, test them all together, and push them together ?
> 
> i.e. to have multiple output gates, one for each of those trees, each
> pushed from a single flight?

Yes.

> I'm assuming you aren't talking about having N openstack flights, one for
> each tree.
> 
> >   (This is not
> > something that osstest can do right now but it doesn't seem
> > difficult.)
> 
> It seems like quite a lot of faff in cr-daily-branch (what does $tree mean,
> which $NEW_REVISION and $OLD_REVISION do we look at), ap-push now needs to
> operate on a list or something (arguments?).
> 
> Getting this stuff right (i.e. testing) is quite hard even with access to a
> production instance.

I can think of ways of doing it.  I wasn't expecting Anthony to
produce them :-).  Right now I'm trying to understand the situation,
and if I think we want to push multiple trees at once I'll write the
code.

> The series today records the actual built versions, so we still get
> bisections, what would having multiple output gates buy us in practice over
> that?

I guess the main advantage is that other osstest `branches' could have
a stable set of openstack things, and that the reporting of `what
changed' would be accurate.

> Maybe the explicit =master stuff above should be removed, or replaced with
> $REVISION_OPENSTACK_FOO which apart from NOVA are _not_ set by cr-daily
> -branch (resulting in cloning master)?

If we do want to just ignore this issue of the other trees, I do
indeed see no particular reason to explicitly set all the runvars to
master.

> I think we want a push gate just for the regression tracking, but not
> really for its own sake.

In that case we I think yes don't really need to push multiple branches.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-10-08 16:42       ` Ian Jackson
@ 2015-10-09 10:54         ` Anthony PERARD
  2015-10-13 11:02           ` Ian Jackson
  0 siblings, 1 reply; 22+ messages in thread
From: Anthony PERARD @ 2015-10-09 10:54 UTC (permalink / raw)
  To: Ian Jackson; +Cc: Ian Campbell, xen-devel

On Thu, Oct 08, 2015 at 05:42:56PM +0100, Ian Jackson wrote:
> Ian Campbell writes ("Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt"):
> > On Tue, 2015-09-29 at 17:52 +0100, Ian Jackson wrote:
> > > All these revision_FOO=master are rather odd.
> > 
> > I think the revision_nova one was supposed to be $REVISION_OPENSTACK_NOVA?
> > 
> > AIUI Nova is the component which we care about (it's the "compute" bit of
> > openstack) and changes frequently compared with devstack (the overall
> > driver).
> 
> And the others we don't care about ?  Are they likely to break things
> anyway, is my point ?  Do they have uniform intercompatibility ?
> 
> > >   You seem to be creating
> > > a push gate which maintains a tested revision of `openstack-nova'.  Is
> > > that what you want ?  If so, then it's not really clear to me that
> > > what you want to do is to simply pick up new master revisions of these
> > > other git trees.  It might be better to obtain a bunch of revision
> > > ids, test them all together, and push them together ?
> > 
> > i.e. to have multiple output gates, one for each of those trees, each
> > pushed from a single flight?
> 
> Yes.
> 
> > I'm assuming you aren't talking about having N openstack flights, one for
> > each tree.
> > 
> > >   (This is not
> > > something that osstest can do right now but it doesn't seem
> > > difficult.)
> > 
> > It seems like quite a lot of faff in cr-daily-branch (what does $tree mean,
> > which $NEW_REVISION and $OLD_REVISION do we look at), ap-push now needs to
> > operate on a list or something (arguments?).
> > 
> > Getting this stuff right (i.e. testing) is quite hard even with access to a
> > production instance.
> 
> I can think of ways of doing it.  I wasn't expecting Anthony to
> produce them :-).  Right now I'm trying to understand the situation,
> and if I think we want to push multiple trees at once I'll write the
> code.
> 
> > The series today records the actual built versions, so we still get
> > bisections, what would having multiple output gates buy us in practice over
> > that?
> 
> I guess the main advantage is that other osstest `branches' could have
> a stable set of openstack things, and that the reporting of `what
> changed' would be accurate.
> 
> > Maybe the explicit =master stuff above should be removed, or replaced with
> > $REVISION_OPENSTACK_FOO which apart from NOVA are _not_ set by cr-daily
> > -branch (resulting in cloning master)?
> 
> If we do want to just ignore this issue of the other trees, I do
> indeed see no particular reason to explicitly set all the runvars to
> master.
> 
> > I think we want a push gate just for the regression tracking, but not
> > really for its own sake.

Yes, that is what I had in mind, testing OpenStack with tips of xen and
libvirt.

I'll remove all those revision_* runvars.

> In that case we I think yes don't really need to push multiple branches.

-- 
Anthony PERARD

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-10-09 10:54         ` Anthony PERARD
@ 2015-10-13 11:02           ` Ian Jackson
  2015-10-13 11:39             ` Ian Campbell
  0 siblings, 1 reply; 22+ messages in thread
From: Ian Jackson @ 2015-10-13 11:02 UTC (permalink / raw)
  To: Anthony PERARD; +Cc: Ian Campbell, xen-devel

Anthony PERARD writes ("Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt"):
> On Thu, Oct 08, 2015 at 05:42:56PM +0100, Ian Jackson wrote:
> > If we do want to just ignore this issue of the other trees, I do
> > indeed see no particular reason to explicitly set all the runvars to
> > master.
> > 
> > > I think we want a push gate just for the regression tracking, but not
> > > really for its own sake.
> 
> Yes, that is what I had in mind, testing OpenStack with tips of xen and
> libvirt.
> > 
> > In that case we I think yes don't really need to push multiple branches.
>
> I'll remove all those revision_* runvars.

Do you mean to remove the settings of them all to `master', or the
code to honour them ?

The machinery in the ts-* script to honour revision_xyz and to set
built_revision_xyz is useful because the bisector can use it to finger
individual tress.

Unless, of course, you don't want to run the bisector on these tests.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt
  2015-10-13 11:02           ` Ian Jackson
@ 2015-10-13 11:39             ` Ian Campbell
  0 siblings, 0 replies; 22+ messages in thread
From: Ian Campbell @ 2015-10-13 11:39 UTC (permalink / raw)
  To: Ian Jackson, Anthony PERARD; +Cc: xen-devel

On Tue, 2015-10-13 at 12:02 +0100, Ian Jackson wrote:
> Anthony PERARD writes ("Re: [PATCH OSSTEST v3 3/3] Create a flight to
> test OpenStack with xen-unstable and libvirt"):
> > On Thu, Oct 08, 2015 at 05:42:56PM +0100, Ian Jackson wrote:
> > > If we do want to just ignore this issue of the other trees, I do
> > > indeed see no particular reason to explicitly set all the runvars to
> > > master.
> > > 
> > > > I think we want a push gate just for the regression tracking, but
> > > > not
> > > > really for its own sake.
> > 
> > Yes, that is what I had in mind, testing OpenStack with tips of xen and
> > libvirt.
> > > 
> > > In that case we I think yes don't really need to push multiple
> > > branches.
> > 
> > I'll remove all those revision_* runvars.
> 
> Do you mean to remove the settings of them all to `master', or the
> code to honour them ?
> 
> The machinery in the ts-* script to honour revision_xyz and to set
> built_revision_xyz is useful because the bisector can use it to finger
> individual tress.

That all comes for free via build_clone I think, IOW Anthony would need to
go a good deal out of his way to not honour them I think.

> Unless, of course, you don't want to run the bisector on these tests.

I don't think we should rule it out.

Ian.

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2015-10-13 11:39 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-09-28 15:56 [PATCH OSSTEST v3 0/3] Have OpenStack tested on top of xen's master and libvirt's master Anthony PERARD
2015-09-28 15:56 ` [PATCH OSSTEST v3 1/3] ts-openstack-deploy: Deploy OpenStack on a host with devstack Anthony PERARD
2015-09-29 15:34   ` Ian Campbell
2015-09-29 16:19     ` Anthony PERARD
2015-09-29 17:04       ` Ian Jackson
2015-09-30  8:29       ` Ian Campbell
2015-09-29 17:02     ` Ian Jackson
2015-09-30  8:32   ` Ian Campbell
2015-09-30 10:52     ` Ian Jackson
2015-09-28 15:56 ` [PATCH OSSTEST v3 2/3] ts-openstack-tempest: Run Tempest to check OpenStack Anthony PERARD
2015-09-29 15:43   ` Ian Campbell
2015-09-29 17:15     ` Anthony PERARD
2015-09-30  8:38       ` Ian Campbell
2015-09-28 15:56 ` [PATCH OSSTEST v3 3/3] Create a flight to test OpenStack with xen-unstable and libvirt Anthony PERARD
2015-09-29 15:49   ` Ian Campbell
2015-09-29 17:21     ` Anthony PERARD
2015-09-29 16:52   ` Ian Jackson
2015-10-08 16:08     ` Ian Campbell
2015-10-08 16:42       ` Ian Jackson
2015-10-09 10:54         ` Anthony PERARD
2015-10-13 11:02           ` Ian Jackson
2015-10-13 11:39             ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.