Kyr Shatskyy [Thu, 18 Oct 2018 00:41:41 +0000 (02:41 +0200)]
openstack: retry if volume create+attach operation fails
Once in awhile, a created volume fails to become available within
a reasonable period of time. When this happens, the entire test job
fails with the following error:
2018-10-02T06:52:44.106 ERROR:teuthology.provision.openstack:'volume
target192168000058-2' reached maximum tries (100) after waiting for 200
seconds
With this commit, we catch that exception and retry with a new volume.
Kyrylo Shatskyy [Thu, 6 Dec 2018 19:42:54 +0000 (20:42 +0100)]
openstack: Support GitHub PR merge branches
Add support for github pr merge branches, like 'origin/pr/*/merge',
so it can be used to setup teuthology server using teuthology-openstack
command line tool with --teuthology-branch argument.
Kyr Shatskyy [Mon, 22 Oct 2018 19:58:16 +0000 (21:58 +0200)]
openstack: fix pulpito and paddles status in init script
After deployment teuthology cluster on openstack, teuthology
service status-paddles and status-pulpito commands report
'dead', however paddles and pulpito are running.
This fix addresses this issue.
Kyr Shatskyy [Sat, 20 Oct 2018 03:18:34 +0000 (05:18 +0200)]
teuthology-openstack: add banner after cluster creation
When creating a teuthology openstack cluster and not
requesting any suite suite run the teuthology-openstack
quits silently not giving information where the cluster
is created and how its services can be reached.
This fix addresses the issue above.
When trying to deploy teuthology on openstack with several networks
and non unique subnet addresses setup-openstack script fails to add
nodes to paddles databases.
This patch removes duplicates while getting default_subnets.
Kyr Shatskyy [Wed, 21 Mar 2018 23:16:27 +0000 (00:16 +0100)]
Add ECP support
Isolated __flavor and __flavor_range from openstack invocation.
Flavor and Network parameters can be taken from teuthology config
under 'openstack' records.
Added filters for new OVH flavors.
Nathan Cutler [Sat, 3 Mar 2018 07:05:56 +0000 (08:05 +0100)]
buildpackages: fix dates in spec file changelog
Eliminates the following warnings:
2018-03-03T06:56:01.948 DEBUG:teuthology.misc:warning: bogus date in %changelog: Tue Mar 10 2013 Gary Lowell <glowell@inktank.com> - 1-0
2018-03-03T06:56:01.948 DEBUG:teuthology.misc:warning: bogus date in %changelog: Tue Aug 27 2012 Gary Lowell <glowell@inktank.com> - 1-0
Nathan Cutler [Fri, 2 Mar 2018 21:01:17 +0000 (22:01 +0100)]
buildpackages: ensure spec file has correct tarball name
We are using this script to build various versions of ceph.spec.in, which do
various things for different build environments. Ignore whatever the spec file
is trying to do with the tarball name and force it to the name of the tarball
at hand.
Nathan Cutler [Fri, 12 May 2017 11:48:05 +0000 (13:48 +0200)]
openstack: prefer vps-ssd-* flavors in OVH
OVH has effectively two price tiers for VM flavors, which could be given the
unofficial descriptive names "El Cheapo" and "Regular".
Under the flavor scheme we are currently using the "El Cheapo" flavors are
those that match the regular expression '^vps-ssd-' (just three flavors); all
others are "Regular".
Prefer the "El Cheapo" flavors over "Regular" flavors when the selection
criteria yields matches in both OVH price tiers.
For OpenStack providers other than OVH, the behavior should not change.
In addition to the above, this patch removes duplication of the regular
expression used for selecting OpenStack flavors. While it's convenient not to
have to change the regular expression in three or more places, this comes with
a disadvantage: the patch removes "flavor-select-regexp" from .teuthology.yaml,
so it is no longer possible to adjust the flavor-selection heuristics by
editing the configuration file. Such adjustment _must_ be done by modifying
__flavor_wrapper(). This is not really a loss, though, because - as the OVH
case demonstrates - a single regular expression match may not be enough to
select the least expensive flavor matching the selection criteria.
Nathan Cutler [Sun, 19 Feb 2017 22:13:44 +0000 (23:13 +0100)]
buildpackages: conditionally fetch tags from ceph/ceph.git
A new parameter, canonical_tags, is added to .teuthology.yaml defaulting to
true.
A new command-line option "--no-canonical-tags" is added to teuthology-openstack
(when given, canonical_tags is set to false in .teuthology.yaml; otherwise it
defaults to true).
The buildpackages task is modified to take the appropriate action based on the
value of canonical_tags taken from .teuthology.yaml. Also, an info message is
displayed reminding the user that the command-line parameter only takes place
when the teuthology VM is created. Like --simultaneous-jobs, the parameter has
no effect in subsequent runs against an existing teuthology environment.
Nathan Cutler [Sun, 12 Feb 2017 21:14:32 +0000 (22:14 +0100)]
buildpackages: fix make-rpm.sh for kraken + SUSE
tl;dr:
SUSE builds in the OBS do not use the make-dist script to generate the
tarball. This commit overrides a SUSE downstream patch that was breaking
make-dist.
Full analysis:
make-rpm.sh breaks for kraken when run on SLE-12-SP2:
+ rpmbuild -ba --define '_unpackaged_files_terminate_build 0' --define '_topdir /tmp/release/sles/WORKDIR' ceph.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.F2hJfx
+ umask 022
+ cd /tmp/release/sles/WORKDIR/BUILD
+ cd /tmp/release/sles/WORKDIR/BUILD
+ rm -rf ceph-11.1.0
+ /usr/bin/bzip2 -dc /tmp/release/sles/WORKDIR/SOURCES/ceph-11.1.0-7423-g8f37fcc.tar.bz2
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ceph-11.1.0
/var/tmp/rpm-tmp.F2hJfx: line 35: cd: ceph-11.1.0: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.F2hJfx (%prep)
The buildpackages task uses "make-dist" to generate the tarball. In order for
the tarball so generated to be buildable by rpmbuild, the spec file must
contain the following lines:
SUSE builds in OBS/IBS use a modified spec file and uses a different mechanism
to generate the tarball. (This worked well up until jewel but for kraken and
beyond we may need to reconsider.) In the SUSE downstream version of the spec
file, the lines look like this:
The absence of "-n @TARBALL_BASENAME@" causes the tarball basename to be
"ceph-$VERSION" (e.g. ceph-12.0.0) instead of the full
"ceph-$VERSION-$RPM_RELEASE" (e.g. ceph-12.0.0-3534.g000000), yet rpmbuild
expects the latter because the "Release:" field of the spec file is populated.
Loic Dachary [Tue, 7 Feb 2017 17:26:03 +0000 (18:26 +0100)]
buildpackages: import from ceph/master
It is exactly the same in all branches. It really belongs in teuthology
and was placed in ceph-qa-suite because it required a more flexible
development cycle.
Kyr Shatskyy [Tue, 8 Oct 2019 22:04:20 +0000 (00:04 +0200)]
misc: use remote.sh instead of remote.run
To ease porting and compatibility in order to avoid
usage of cStringIO.StringIO it is better to use
remote.sh method which supposed to return captured
value as a string.
Roman Grigoryev [Tue, 8 Oct 2019 09:38:14 +0000 (11:38 +0200)]
lock: remove os_version and os_type for node before reprovisiong
os_version and os_type don't reflect actual os version
when node is under provisioning and/or provisiong failed.
The fix cleanup fileds before provisioning.
Signed-off-by: Roman Grigoryev <roman.grigorev@suse.de>
Roman Grigoryev [Mon, 30 Sep 2019 11:55:42 +0000 (13:55 +0200)]
lock: update target os-type and os-version after provisioning
After provisioning node via "teuthology-lock" (via both
"--lock" and "--lock-many") users cannot see actual
versioni and type of provisioned OS in pulpito.
It is pretty helpful to see that version if we need to
do some manual work.
Signed-off-by: Roman Grigoryev <roman.grigorev@suse.de>