diff mbox

[OSSTEST,v13,22/24] New branch openstack-ocata

Message ID 20170725115759.21895-23-anthony.perard@citrix.com (mailing list archive)
State New, archived
Headers show

Commit Message

Anthony PERARD July 25, 2017, 11:57 a.m. UTC
Testing of the Ocata stable branch of OpenStack against Xen unstable.

OpenStack have many different repo which should be in sync, so we should
attempd to grab the revisions of the stable branch of every OpenStack
tree, but for now, the runvars REVISION_* of tree other than nova is set
to "origin/stable/ocata", except Tempest does not have stable branch and
should be able to test any OpenStack version.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---
 ap-common            | 19 +++++++++++++++++++
 ap-fetch-version     |  6 ++++++
 ap-fetch-version-old |  8 ++++++++
 ap-print-url         |  3 +++
 ap-push              |  7 +++++++
 cr-daily-branch      | 31 +++++++++++++++++++++++++++++++
 cr-for-branches      |  2 +-
 cri-common           |  1 +
 8 files changed, 76 insertions(+), 1 deletion(-)

Comments

Ian Jackson July 25, 2017, 6:22 p.m. UTC | #1
Anthony PERARD writes ("[OSSTEST PATCH v13 22/24] New branch openstack-ocata"):
> Testing of the Ocata stable branch of OpenStack against Xen unstable.
> 
> OpenStack have many different repo which should be in sync, so we should
> attempd to grab the revisions of the stable branch of every OpenStack
> tree, but for now, the runvars REVISION_* of tree other than nova is set
> to "origin/stable/ocata", except Tempest does not have stable branch and
> should be able to test any OpenStack version.

Ah I see this is where the new branch is created.  You will want to
run standalone-generate-dump-flight-runvars after this, not after the
previous patch (which is fine as it is - sorry, please forget my
comment about editing cr-for-branches there).

I'm afraid I don't understand your explanation about stable branches.
Earlier I asked:

  > Do you intend to provide a version of this patch which maintains a
  > tested branch for all of these different trees ?

  No, I don't. This would be a different patch (and maybe different patch
  series).

So you don't intend to maintain a tested branch for each of these
trees.  But you do intend, I think, to maintain a tested branch of the
main tree.  You say the subtrees "should be in sync", which I take to
mean that openstack upstream only expect it to work if you grab a
revision from all of these trees at "roughty the same time" or
something.

I don't think this will necessarily work properly.  The most obvious
problem I see is that regressions which are introduced in the subtrees
will be picked up by even flights which are attempting to use a
working (ie osstest-tested) version of "openstack".

This may not be critical if openstack jobs appear only on the flights
for openstack branches.  openstack branches will occasionally suffer
trouble but things will probably be BALGE.

But we definitely won't be able to add openstack tests to the other
branches without doing something different.

I have a very strong feeling we have discussed this before but I'm
afraid the answer doesn't seem to have been written down somewhere I
can easily find it.  It should be explained in your series somewhere,
in a comment or a commit message.

It would also be nice to have a theory about how this could be
improved in the future.  That would mean we could be more confident
that we're not painting ourselves into a corner.

Having said all that, with a suitable explanation, I think the code is
probably about right.

Ian.
diff mbox

Patch

diff --git a/ap-common b/ap-common
index bc7c03c..72496fd 100644
--- a/ap-common
+++ b/ap-common
@@ -54,6 +54,24 @@ 
 : ${PUSH_TREE_OVMF:=$XENBITS:/home/xen/git/osstest/ovmf.git}
 : ${BASE_TREE_OVMF:=git://xenbits.xen.org/osstest/ovmf.git}
 
+define_openstack_trees() {
+    local openstack_trees=(cinder glance keystone neutron nova requirements
+        tempest)
+    local tree
+    local url
+
+    : ${GIT_OPENSTACK_ORG:=git://git.openstack.org}
+    : ${TREE_OPENSTACK_DEVSTACK:=$GIT_OPENSTACK_ORG/openstack-dev/devstack.git}
+    for tree in "${openstack_trees[@]}"; do
+        url=$GIT_OPENSTACK_ORG/openstack/$tree.git
+        eval ": \${TREE_OPENSTACK_${tree^^}:=$url}"
+    done
+}
+
+define_openstack_trees
+: ${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}
@@ -82,6 +100,7 @@  fi
 : ${LOCALREV_SEABIOS:=daily-cron.$branch}
 : ${LOCALREV_OVMF:=daily-cron.$branch}
 : ${LOCALREV_XTF:=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 a107c93..1d86351 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -106,6 +106,12 @@  ovmf)
 	repo_tree_rev_fetch_git ovmf \
 		$TREE_OVMF_UPSTREAM master $LOCALREV_OVMF
 	;;
+openstack-ocata)
+        openstack_release=${branch#openstack-}
+        repo_tree_rev_fetch_git "openstack-nova" \
+                "$TREE_OPENSTACK_NOVA" "stable/$openstack_release" \
+                "$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 3cbc176..a0b8c08 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -35,6 +35,7 @@  check_ap_fetch_placeholders
 : ${BASE_LOCALREV_XTF:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_OVMF:=daily-cron.$branch.old}
 : ${BASE_TAG_LIBVIRT:=xen-tested-master}
+: ${BASE_LOCALREV_OPENSTACK_NOVA:=daily-cron.$branch.old}
 
 if info_linux_tree "$branch"; then
 	repo_tree_rev_fetch_git linux \
@@ -114,6 +115,13 @@  ovmf)
 	repo_tree_rev_fetch_git ovmf \
 		$BASE_TREE_OVMF xen-tested-master $BASE_LOCALREV_OVMF
 	;;
+openstack-ocata)
+        openstack_release="${branch##*-}"
+        repo_tree_rev_fetch_git openstack-nova \
+                "$BASE_TREE_OPENSTACK_NOVA" \
+                "xen-tested-stable-$openstack_release" \
+                "$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 93c14b3..cfba1d4 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -67,6 +67,9 @@  ovmf)
 osstest)
 	echo none:;
 	;;
+openstack-ocata)
+	echo $TREE_OPENSTACK_NOVA
+	;;
 *)
 	echo >&2 "branch $branch ?"
 	exit 1
diff --git a/ap-push b/ap-push
index a27ccc2..e5c061a 100755
--- a/ap-push
+++ b/ap-push
@@ -41,6 +41,7 @@  TREE_RUMPRUN=$PUSH_TREE_RUMPRUN
 TREE_SEABIOS=$PUSH_TREE_SEABIOS
 TREE_OVMF=$PUSH_TREE_OVMF
 TREE_XTF=$PUSH_TREE_XTF
+TREE_OPENSTACK_NOVA=$PUSH_TREE_OPENSTACK_NOVA
 
 if info_linux_tree "$branch"; then
 	cd $repos/linux
@@ -129,6 +130,12 @@  ovmf)
 	cd $repos/ovmf
 	git push $TREE_OVMF $revision:refs/heads/xen-tested-master
 	;;
+openstack-ocata)
+        cd $repos/openstack-nova
+        openstack_release=${branch#openstack-}
+        git push $TREE_OPENSTACK_NOVA \
+                $revision:refs/heads/xen-tested-stable-$openstack_release
+        ;;
 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 39483cd..c3de124 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -207,6 +207,33 @@  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-ocata OPENSTACK_NOVA
+        export REVISION_OPENSTACK_NOVA
+fi
+# Set REVISION for every tree that openstack is going to use and that have a
+# stable branch (tempest does not)
+determine_openstack_version() {
+        local openstack_tree="$1"
+        local openstack_release
+        local openstack_branch
+
+        if ! eval [ "x\$REVISION_OPENSTACK_${openstack_tree^^}" = x ]; then
+                return
+        fi
+        case "$branch" in
+        openstack-ocata)
+                openstack_release=${branch#openstack-}
+                openstack_branch="origin/stable/${branch##*-}"
+                eval "REVISION_OPENSTACK_${openstack_tree^^}=$openstack_branch"
+                export "REVISION_OPENSTACK_${openstack_tree^^}"
+                ;;
+        esac
+}
+for openstack_tree in cinder devstack glance keystone neutron requirements; do
+        determine_openstack_version "$openstack_tree"
+done
+
 
 case "$tree" in
 xen)
@@ -255,6 +282,10 @@  ovmf)
 	realtree=ovmf
 	NEW_REVISION=$REVISION_OVMF
 	;;
+openstack-nova)
+	realtree=openstack-nova
+	NEW_REVISION=$REVISION_OPENSTACK_NOVA
+	;;
 *)
 	NEW_REVISION=''
 	wantpush=false
diff --git a/cr-for-branches b/cr-for-branches
index a691273..ed76d70 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-4.7-testing xen-4.8-testing xen-4.9-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 qemu-upstream-4.7-testing qemu-upstream-4.8-testing qemu-upstream-4.9-testing linux-linus linux-4.9 linux-4.1 linux-3.18 linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf xtf ${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-4.7-testing xen-4.8-testing xen-4.9-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 qemu-upstream-4.7-testing qemu-upstream-4.8-testing qemu-upstream-4.9-testing linux-linus linux-4.9 linux-4.1 linux-3.18 linux-3.16 linux-3.14 linux-3.10 linux-3.4 linux-arm-xen seabios ovmf xtf openstack-ocata ${EXTRA_BRANCHES}}
 export BRANCHES
 
 fetchwlem=$wlem
diff --git a/cri-common b/cri-common
index 903fb4e..751a362 100644
--- a/cri-common
+++ b/cri-common
@@ -82,6 +82,7 @@  select_xenbranch () {
 	ovmf)			tree=ovmf;	xenbranch=xen-unstable ;;
 	distros-*|examine)	tree=none;	xenbranch=xen-unstable ;;
 	osstest)		tree=osstest;	xenbranch=xen-unstable ;;
+	openstack-ocata)   tree=openstack-nova;	xenbranch=xen-unstable ;;
 	esac
 	if [ "x$tree" = xlinux ]; then
 		linuxbranch=$branch