]> git.apps.os.sepia.ceph.com Git - teuthology.git/log
teuthology.git
6 years agorun_tasks.py: allow _import to raise the right ImportError 1238/head
Nathan Cutler [Thu, 22 Nov 2018 11:59:48 +0000 (12:59 +0100)]
run_tasks.py: allow _import to raise the right ImportError

It turns out it's possible for a file qa/tasks/foo.py to exist,
yet importing it still raises an ImportError because it references a
non-existent symbol.

In this case, teuthology was clobbering the real ImportError with its
own bogus text.

Fixes: http://tracker.ceph.com/issues/37370
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoMerge PR #1234 into master 1240/head
Patrick Donnelly [Wed, 21 Nov 2018 19:40:26 +0000 (11:40 -0800)]
Merge PR #1234 into master

* refs/pull/1234/head:
only pass system errors to hub handler
small refactor of bash code

Reviewed-by: Kefu Chai <kchai@redhat.com>
6 years agoonly pass system errors to hub handler 1234/head
Patrick Donnelly [Fri, 9 Nov 2018 19:31:04 +0000 (11:31 -0800)]
only pass system errors to hub handler

Fixes: http://tracker.ceph.com/issues/36731
Code suggested/contributed by Kefu.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agosmall refactor of bash code
Patrick Donnelly [Fri, 9 Nov 2018 19:26:45 +0000 (11:26 -0800)]
small refactor of bash code

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
6 years agoMerge pull request #1236 from ceph/wip-netaddr
Yuri Weinstein [Wed, 14 Nov 2018 16:19:43 +0000 (08:19 -0800)]
Merge pull request #1236 from ceph/wip-netaddr

ceph_ansible: Install netaddr

6 years agoceph_ansible: Install netaddr 1236/head
David Galloway [Tue, 13 Nov 2018 20:56:44 +0000 (15:56 -0500)]
ceph_ansible: Install netaddr

See https://github.com/ceph/ceph-ansible/pull/3199

Signed-off-by: David Galloway <dgallowa@redhat.com>
6 years agoMerge pull request #1230 from tchaikov/wip-better-remote-run
Kefu Chai [Mon, 12 Nov 2018 00:09:23 +0000 (08:09 +0800)]
Merge pull request #1230 from tchaikov/wip-better-remote-run

@zmc @smithfarm gents, i've updated the change to address the concerns. if no objections, i'd like merge as it is in two days.

6 years agoMerge pull request #1235 from ceph/wip-suppress-cpython
Sage Weil [Sat, 10 Nov 2018 20:11:08 +0000 (14:11 -0600)]
Merge pull request #1235 from ceph/wip-suppress-cpython

valgind: ignore all leaks relating to CPython code

6 years agovalgind: ignore all leaks relating to CPython code 1235/head
Sage Weil [Fri, 9 Nov 2018 14:53:03 +0000 (08:53 -0600)]
valgind: ignore all leaks relating to CPython code

Yes, this is a big hammer, and we are ignoring a lot.  However, it is a
HUGE step forward to what we do now, which is not check for ceph-mgr
leaks at all.

By adding this suppress I found and fixed 3 separate ceph-mgr leaks.  This
will let us prevent others (in non-Py code) from being introduced.

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #1231 from kshtsk/wip-shortname-logging-for-ip
Gregory Farnum [Fri, 2 Nov 2018 20:07:23 +0000 (13:07 -0700)]
Merge pull request #1231 from kshtsk/wip-shortname-logging-for-ip

Fix ipv4 and ipv6 address logging for Remote.run

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoMerge pull request #1233 from kshtsk/wip-remote-sh
Gregory Farnum [Fri, 2 Nov 2018 20:03:50 +0000 (13:03 -0700)]
Merge pull request #1233 from kshtsk/wip-remote-sh

orchestra: add remote.sh commands analogous to misc.sh

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoorchestra: add remote.sh commands analogous to misc.sh 1233/head
Kyr Shatskyy [Tue, 30 Oct 2018 13:17:05 +0000 (14:17 +0100)]
orchestra: add remote.sh commands analogous to misc.sh

Adds a remote.sh similar to misc.sh, in fact a shortcut for remote.run,
but return output instead of proc
Example:
    my_name = Remote('127.0.0.1').sh('whoami')

Adds a remote.sh_file run a script as file on a remote with or without sudo
Example 1: Run python script
    Remote('127.0.0.1').sh_file("#!/usr/bin/env python3\n"
                                "import sys\n"
                                "print(sys.version_info)")
Example 2: Run script as root
    Remote('user@host.domain').sh_file("whoami", sudo=True,
                                       label="who-am-i-for-the-real")
Example 3: Run script as other user
    Remote('user@host.domain').sh_file("whoami", sudo='nobody', )

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.de>
6 years agoMerge pull request #1228 from zenglg/master
vasukulkarni [Mon, 29 Oct 2018 18:41:32 +0000 (11:41 -0700)]
Merge pull request #1228 from zenglg/master

Fix setenforce failed while selinux is disabled

6 years agoFix ipv4 and ipv6 address logging for Remote.run 1231/head
Kyrylo Shatskyy [Sun, 28 Oct 2018 17:56:14 +0000 (18:56 +0100)]
Fix ipv4 and ipv6 address logging for Remote.run

The Remote class does not respect ip addresses
when it comes to define shortnames. As a result,
the hostname is not shown correctly in the log.
For ipv4 it only shows first number of the octet.
For ipv6 it even does not allow to proceed,
and raises exception in orchestra.run.

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.de>
6 years agoorchestra.run: log the ssh command without prefix 1230/head
Kefu Chai [Fri, 26 Oct 2018 06:18:34 +0000 (14:18 +0800)]
orchestra.run: log the ssh command without prefix

run() also supports single string, but if we pass a longstring literal
which contains "\n", it renders log difficult to read.
in this change, multi-line command is logged in multiple lines,
and print the "prefix" in the first line, then print the command in
following lines without "prefix".

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
6 years agotask/install: run install commands in a concatenated string
Kefu Chai [Thu, 25 Oct 2018 14:01:14 +0000 (22:01 +0800)]
task/install: run install commands in a concatenated string

this improve the readabiliy of long script.

FWIW, the `arg` will be passed as the `command` parameter of
paramiko.SSHClient.exec_command() if it is a `basestring`.

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agoMerge pull request #1229 from tchaikov/wip-yum-install
Kefu Chai [Thu, 25 Oct 2018 12:45:36 +0000 (20:45 +0800)]
Merge pull request #1229 from tchaikov/wip-yum-install

task/install: run 'yum ... install' the right way

Reviewed-by: Nathan Cutler <ncutler@suse.com>
6 years agotask/install: run 'yum ... install' the right way 1229/head
Kefu Chai [Thu, 25 Oct 2018 11:25:53 +0000 (19:25 +0800)]
task/install: run 'yum ... install' the right way

after cd1cef6, we install rpm packages like

2018-10-25T06:31:33.578 INFO:teuthology.orchestra.run.smithi076:Running:
"sudo yum -y '' install '' '' libcephfs_jni1"
...
2018-10-25T06:31:34.180
INFO:teuthology.orchestra.run.smithi076.stderr:No such command: . Please
use /bin/yum --help
2018-10-25T06:31:34.193 DEBUG:teuthology.orchestra.run:got remote
process result: 1

which fails the qa run on rpm based distros.

in this change, the command line args are passed in itertools.chain(),
because orchestra.run.quote() takes an iterable which contains string or
Raw.

Signed-off-by: Kefu Chai <kchai@redhat.com>
6 years agoFix setenforce failed while selinux is disabled 1228/head
Linggang Zeng [Thu, 25 Oct 2018 06:49:03 +0000 (14:49 +0800)]
Fix setenforce failed while selinux is disabled

Signed-off-by: Linggang Zeng <linggang.zeng@easystack.cn>
6 years agoMerge pull request #1218 from kshtsk/wip-test-repo
Zack Cerza [Thu, 25 Oct 2018 01:07:32 +0000 (19:07 -0600)]
Merge pull request #1218 from kshtsk/wip-test-repo

Add custom repos before installing rpm packages

6 years agoMerge pull request #1227 from rjfd/wip-jwt-dependency
Zack Cerza [Wed, 24 Oct 2018 22:01:59 +0000 (16:01 -0600)]
Merge pull request #1227 from rjfd/wip-jwt-dependency

requirements.txt: add JWT dependency required by ceph-dashboard tests

6 years agoMerge pull request #1224 from ceph/wip-36522
Sage Weil [Tue, 23 Oct 2018 13:49:01 +0000 (08:49 -0500)]
Merge pull request #1224 from ceph/wip-36522

valgrind: suppress __libc_csu_init leaks

6 years agorequirements.txt: add JWT dependency required by ceph-dashboard tests 1227/head
Ricardo Dias [Tue, 23 Oct 2018 06:50:16 +0000 (07:50 +0100)]
requirements.txt: add JWT dependency required by ceph-dashboard tests

Signed-off-by: Ricardo Dias <rdias@suse.com>
6 years agoMerge pull request #1225 from ceph/wip-36499
Gregory Farnum [Tue, 23 Oct 2018 05:15:03 +0000 (22:15 -0700)]
Merge pull request #1225 from ceph/wip-36499

kernel: Update kernel using `DEBIAN_FRONTEND noninteractive`

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agovalgrind: suppress __libc_csu_init leaks 1224/head
Sage Weil [Fri, 19 Oct 2018 14:08:26 +0000 (09:08 -0500)]
valgrind: suppress __libc_csu_init leaks

Fixes: http://tracker.ceph.com/issues/36522
6 years agokernel: Update kernel using `DEBIAN_FRONTEND noninteractive` 1225/head
David Galloway [Fri, 19 Oct 2018 12:23:34 +0000 (08:23 -0400)]
kernel: Update kernel using `DEBIAN_FRONTEND noninteractive`

Fixes: https://tracker.ceph.com/issues/36499
Signed-off-by: David Galloway <dgallowa@redhat.com>
6 years agoopenstack: add --test-repo CLI option 1218/head
Kyr Shatskyy [Thu, 26 Oct 2017 16:15:41 +0000 (18:15 +0200)]
openstack: add --test-repo CLI option

Add custom repos before installing rpm packages on test nodes.
Repository can be specified as a NAME:URL pair. Several repos
can be provided by specifying the option multiple times.
For example,
    --test-repo foo:http://example.com/repo/foo \
    --test-repo bar:http://example.com/repo/bar

gives two test package repositories named "foo" and "bar".

Conflicts:
scripts/openstack.py
teuthology/openstack/__init__.py
teuthology/orchestra/opsys.py
teuthology/task/install/rpm.py

6 years agoinstall: rpm: only one option per variable
Nathan Cutler [Wed, 30 Aug 2017 10:18:30 +0000 (12:18 +0200)]
install: rpm: only one option per variable

Although the variables are entitled, e.g., "pkg_mng_opts" they
really can only contain at most one option. Here's what happens
when they contain more than one:

Running: "sudo zypper '-n --no-gpg-checks' install --capability --no-recommends ceph-radosgw"
stderr:Unknown option ' '
stderr:Unknown option '-'
stderr:Unknown option '-'

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agotask: install: rpm: zypper install with --no-recommends
Nathan Cutler [Mon, 5 Jun 2017 17:55:23 +0000 (19:55 +0200)]
task: install: rpm: zypper install with --no-recommends

Since teuthology is used to automate CI testing, it is undesirable to
install anything more than is necessary to run the tests.

Fixes: https://github.com/SUSE/teuthology/issues/84
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoOverride failing package signature checks
Nathan Cutler [Wed, 30 Aug 2017 09:55:15 +0000 (11:55 +0200)]
Override failing package signature checks

The RPMs built by teuthology's buildpackages task are not signed and
after a recent zypper update the install task started to fail with

File 'repomd.xml' from repository 'ceph-rpm-under-test' is unsigned, continue? [yes/no] (no): no
Error building the cache: [ceph-rpm-under-test|http://149.202.175.91/ceph-rpm-sle12-x86_64-basic/sha1/3804e807353c9d125753b1cf4f6405f79db83d4e/x86_64] Valid metadata not found at specified URL

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agopackaging: add ceph-rpm-under-test zypper repo with high priority
Nathan Cutler [Thu, 11 May 2017 20:18:55 +0000 (22:18 +0200)]
packaging: add ceph-rpm-under-test zypper repo with high priority

Otherwise the ceph packages from OBS are preferred because RPM evaluates, e.g.,
12.0.2+git.1493341348.9148e53 as a higher version number than
12.0.2-276.gf27d4b00ed.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agopackaging: call the zypper repo ceph-rpm-under-test
Nathan Cutler [Sat, 11 Feb 2017 08:21:16 +0000 (09:21 +0100)]
packaging: call the zypper repo ceph-rpm-under-test

The zypper repo must have a name/alias and "ceph-rpm-under-test" seems better
than just "ceph-rpm"; it's a repo containing the ceph RPMs that are being
tested.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agopackaging: SUSEify GitbuilderProject._remove_rpm_repo()
Nathan Cutler [Sat, 11 Feb 2017 04:46:46 +0000 (05:46 +0100)]
packaging: SUSEify GitbuilderProject._remove_rpm_repo()

When a job completes, all Ceph packages installed are removed and then the repo
is removed as well. Repo removal fails with:

    Running: 'sudo yum -y erase ceph-release'
    sudo: yum: command not found

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agopackaging: add repo instead of installing ceph-release
Nathan Cutler [Thu, 9 Feb 2017 21:54:38 +0000 (22:54 +0100)]
packaging: add repo instead of installing ceph-release

The ceph-release RPM probably doesn't do what we want, anyway.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoopsys.py: make from_os_release support SUSE
Nathan Cutler [Tue, 28 Feb 2017 11:11:42 +0000 (12:11 +0100)]
opsys.py: make from_os_release support SUSE

Fixes: #47
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoEnable SUSE Linux Enterprise as a teuthology target
Kyr Shatskyy [Wed, 10 Oct 2018 04:25:39 +0000 (06:25 +0200)]
Enable SUSE Linux Enterprise as a teuthology target

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agosetup: do not set ceph_qa_suite_git_url in ~/.teuthology.yaml
Nathan Cutler [Fri, 10 Feb 2017 14:38:06 +0000 (15:38 +0100)]
setup: do not set ceph_qa_suite_git_url in ~/.teuthology.yaml

When this value is set, it is necessary to explicitly give --suite-repo and
--suite-branch. We would rather have the defaults for these come from
--ceph-repo and --ceph.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoopenstack: switch to --{ceph,suite}-repo
Loic Dachary [Fri, 10 Feb 2017 10:45:37 +0000 (11:45 +0100)]
openstack: switch to --{ceph,suite}-repo

--ceph-git-url and --ceph-qa-suite-git-url are now
arguments of teuthology-suite but were named --ceph-repo and
--suite-repo instead.

Signed-off-by: Loic Dachary <ldachary@redhat.com>
6 years agoopenstack: sync with new teuthology-suite arguments
Loic Dachary [Fri, 10 Feb 2017 10:44:29 +0000 (11:44 +0100)]
openstack: sync with new teuthology-suite arguments

Signed-off-by: Loic Dachary <ldachary@redhat.com>
6 years agoopenstack: split argparse arguments
Loic Dachary [Sun, 6 Dec 2015 21:50:52 +0000 (22:50 +0100)]
openstack: split argparse arguments

So that it can be re-used by scripts that need to include part of the parser.

Signed-off-by: Loic Dachary <loic@dachary.org>
6 years agoopenstack: ensure non-interactivity of custom YAML upload ssh
Nathan Cutler [Fri, 23 Jun 2017 12:16:16 +0000 (14:16 +0200)]
openstack: ensure non-interactivity of custom YAML upload ssh

Fixes: https://github.com/SUSE/teuthology/issues/90
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoopenstack: upload absolute paths to remote teuthology machine
Nathan Cutler [Wed, 15 Mar 2017 14:12:37 +0000 (15:12 +0100)]
openstack: upload absolute paths to remote teuthology machine

If any absolute paths are given on the teuthology-openstack command line,
assume they are local YAML files and upload them to the remote teuthology
machine before running teuthology-suite.

If the local YAML file (absolute path) is PATH, the remote
path will be /home/ubuntu/yaml/$PATH. The remote file is clobbered if
it already exists.

Fixes: https://github.com/SUSE/teuthology/issues/46
Fixes: https://github.com/SUSE/teuthology/issues/56
Signed-off-by: Nathan Cutler <ncutler@suse.com>
6 years agoMerge pull request #1222 from kshtsk/wip-fix-mock-is-not-iterable
Zack Cerza [Thu, 18 Oct 2018 22:06:01 +0000 (16:06 -0600)]
Merge pull request #1222 from kshtsk/wip-fix-mock-is-not-iterable

tests: use dict() instead Mock() to test config

6 years agoMerge pull request #1223 from kshtsk/wip-run-config-log-level
Gregory Farnum [Wed, 17 Oct 2018 15:03:10 +0000 (08:03 -0700)]
Merge pull request #1223 from kshtsk/wip-run-config-log-level

Increase log level to 'info' of run config

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoMerge pull request #1219 from kshtsk/wip-process-status
Gregory Farnum [Wed, 17 Oct 2018 04:25:49 +0000 (21:25 -0700)]
Merge pull request #1219 from kshtsk/wip-process-status

openstack: add status_process function

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
6 years agoIncrease log level to 'info' of run config 1223/head
Kyr Shatskyy [Mon, 15 Oct 2018 22:24:12 +0000 (00:24 +0200)]
Increase log level to 'info' of run config

Make run config visible in the logs even if -v option is not passed.

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com>
6 years agotests: use dict() instead Mock() to test config 1222/head
Kyr Shatskyy [Wed, 10 Oct 2018 08:08:11 +0000 (10:08 +0200)]
tests: use dict() instead Mock() to test config

Addresses failure in verify_package_version:
    TypeError: argument of type 'Mock' is not iterable

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@gmail.com>
6 years agoMerge pull request #1221 from ceph/wip-ethdev
Josh Durgin [Fri, 12 Oct 2018 20:35:29 +0000 (13:35 -0700)]
Merge pull request #1221 from ceph/wip-ethdev

valgrind.supp: fix syntax

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agovalgrind.supp: fix syntax 1221/head
Sage Weil [Fri, 12 Oct 2018 20:32:12 +0000 (15:32 -0500)]
valgrind.supp: fix syntax

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoMerge pull request #1220 from ceph/wip-ethdev
Josh Durgin [Fri, 12 Oct 2018 00:49:17 +0000 (17:49 -0700)]
Merge pull request #1220 from ceph/wip-ethdev

valgrind.supp: ethdev_init_log thing

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
6 years agoMerge branch 'master' into wip-ethdev 1220/head
Josh Durgin [Fri, 12 Oct 2018 00:48:32 +0000 (17:48 -0700)]
Merge branch 'master' into wip-ethdev

6 years agovalgrind.supp: ethdev_init_log thing
Sage Weil [Thu, 11 Oct 2018 19:05:26 +0000 (14:05 -0500)]
valgrind.supp: ethdev_init_log thing

<error>
  <unique>0x15</unique>
  <tid>1</tid>
  <kind>Leak_StillReachable</kind>
  <xwhat>
    <text>528 bytes in 1 blocks are still reachable in loss record 22 of 28</text>
    <leakedbytes>528</leakedbytes>
    <leakedblocks>1</leakedblocks>
  </xwhat>
  <stack>
    <frame>
      <ip>0x4C2BBB8</ip>
      <obj>/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so</obj>
      <fn>realloc</fn>
      <dir>/builddir/build/BUILD/valgrind-3.13.0/coregrind/m_replacemalloc</dir>
      <file>vg_replace_malloc.c</file>
      <line>785</line>
    </frame>
    <frame>
      <ip>0x60DE8B</ip>
      <obj>/usr/bin/ceph-mon</obj>
      <fn>rte_log_register</fn>
    </frame>
    <frame>
      <ip>0x2B070F</ip>
      <obj>/usr/bin/ceph-mon</obj>
      <fn>ethdev_init_log</fn>
    </frame>
    <frame>
      <ip>0x8710FC</ip>
      <obj>/usr/bin/ceph-mon</obj>
      <fn>__libc_csu_init</fn>
    </frame>
    <frame>
      <ip>0x115873D4</ip>
      <obj>/usr/lib64/libc-2.17.so</obj>
      <fn>(below main)</fn>
    </frame>
  </stack>
</error>

Signed-off-by: Sage Weil <sage@redhat.com>
6 years agoopenstack: add status_process function 1219/head
Kyr Shatskyy [Wed, 10 Oct 2018 06:42:59 +0000 (08:42 +0200)]
openstack: add status_process function

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
7 years agoMerge pull request #1216 from batrick/fix-stdouterr-wait
Gregory Farnum [Wed, 3 Oct 2018 18:50:04 +0000 (11:50 -0700)]
Merge pull request #1216 from batrick/fix-stdouterr-wait

run: do not block on greenlets after command exits

Reviewed-by: Kefu Chai <kchai@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
7 years agorun: do not block on greenlets after command exits 1216/head
Patrick Donnelly [Sun, 30 Sep 2018 00:20:03 +0000 (17:20 -0700)]
run: do not block on greenlets after command exits

The stdout/stderr greenlets will not necessarily exit when the command does if
child processes are stuck in an uninterruptible sleep. For example, the fsx.sh
workunit spawns fsx processes that may be left behind in the D state after
/bin/timeout kills fsx.sh. These are connected to the stdout/stderr pipes which
prevent the greenlets from exiting normally.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
7 years agoMerge pull request #1215 from smithfarm/wip-revert-sleep-before-teardown
Nathan Cutler [Thu, 27 Sep 2018 10:09:47 +0000 (12:09 +0200)]
Merge pull request #1215 from smithfarm/wip-revert-sleep-before-teardown

Revert "suite: Implement --sleep-before-teardown option"

Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agoRevert "suite: Implement --sleep-before-teardown option" 1215/head
Nathan Cutler [Thu, 27 Sep 2018 08:57:23 +0000 (10:57 +0200)]
Revert "suite: Implement --sleep-before-teardown option"

This reverts commit c81ee9618faa6aeb56a4cc741e9f937b287b065e, which
broke the sequential and parallel tasks.

Fixes: https://tracker.ceph.com/issues/36230
Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoMerge pull request #1206 from kshtsk/wip-use-identity
Zack Cerza [Wed, 26 Sep 2018 15:51:29 +0000 (09:51 -0600)]
Merge pull request #1206 from kshtsk/wip-use-identity

openstack: use ssh identity as key_filename by default

7 years agoMerge pull request #1208 from smithfarm/wip-dump_ctx
Gregory Farnum [Wed, 26 Sep 2018 15:41:18 +0000 (08:41 -0700)]
Merge pull request #1208 from smithfarm/wip-dump_ctx

teuthology/task: implement dump_ctx internal task

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
7 years agoMerge pull request #1210 from smithfarm/wip-sleep-b4-teardown
Gregory Farnum [Wed, 26 Sep 2018 15:37:53 +0000 (08:37 -0700)]
Merge pull request #1210 from smithfarm/wip-sleep-b4-teardown

suite: Implement --sleep-before-teardown option

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
7 years agoMerge pull request #1002 from ceph/wip-repo
Zack Cerza [Wed, 26 Sep 2018 15:04:09 +0000 (09:04 -0600)]
Merge pull request #1002 from ceph/wip-repo

suite: take shorthand repo, user/repo for --suite-repo and --ceph-repo args

7 years agoMerge pull request #1207 from smithfarm/wip-improve-print-doc
Gregory Farnum [Wed, 26 Sep 2018 14:58:21 +0000 (07:58 -0700)]
Merge pull request #1207 from smithfarm/wip-improve-print-doc

teuthology/task: improve documentation of "print" internal task

Reviewed-by: Dan Mick <dmick@redhat.com>
Reviewed-by: Greg Farnum <gfarnum@redhat.com>
7 years agoMerge pull request #1213 from tchaikov/wip-22052
Kefu Chai [Wed, 26 Sep 2018 13:44:59 +0000 (21:44 +0800)]
Merge pull request #1213 from tchaikov/wip-22052

teuthology/task/install/valgrind.supp: add suppression for Boost.Thread

Reviewed-by: Casey Bodley <cbodley@redhat.com>
7 years agoteuthology/task/install/valgrind.supp: add suppression for Boost.Thread 1213/head
Kefu Chai [Wed, 26 Sep 2018 07:45:45 +0000 (15:45 +0800)]
teuthology/task/install/valgrind.supp: add suppression for Boost.Thread

Boost.Thread passes `tls_destructor` to `pthread_key_create()` in hope
to free the allocated memory stored in TLS key `current_thread_tls_key`,
but neither Boost.Thread nor us uses `pthread_exit()` for calling the
cleanup functions. and Boost.Thread is against `pthread_exit()`, see [0,1].

but Boost.Thread offers a preprocessor macro to define a global variable
whose destructor calls `tls_destructor()`, but per [2], this macro is
not defined by default. and per [3], this macro could cause assertion
failure in Boost. so it might be advisable to not define it, even we
could do so in BuildBoost.cmake.

and since this `Leak_StillReachable` leak is a one-shot thing. i am
adding it to the suppression file.

---
[0] https://www.boost.org/doc/libs/1_68_0/doc/html/thread/thread_management.html#thread.thread_management.tutorial.native_from._code__phrase_role__identifier__pthread_exit__phrase___code__posix_limitation
[1] https://svn.boost.org/trac10/ticket/5013
[2] https://svn.boost.org/trac10/ticket/3926
[3] https://svn.boost.org/trac10/ticket/12049

Fixes: http://tracker.ceph.com/issues/22052
Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoteuthology/task: implement dump_ctx internal task 1208/head
Nathan Cutler [Fri, 14 Sep 2018 10:40:55 +0000 (12:40 +0200)]
teuthology/task: implement dump_ctx internal task

This task is supposed to pretty-print the ctx and config parameters that are
passed to each task.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoteuthology/task: improve documentation of "print" internal task 1207/head
Nathan Cutler [Fri, 14 Sep 2018 10:41:48 +0000 (12:41 +0200)]
teuthology/task: improve documentation of "print" internal task

The documentation is base on the commit message that first
introduced this task, but makes it clear that the arguments
will appear in teuthology.log.

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoMerge pull request #1209 from smithfarm/wip-sleep-seconds
Kefu Chai [Tue, 18 Sep 2018 04:54:36 +0000 (12:54 +0800)]
Merge pull request #1209 from smithfarm/wip-sleep-seconds

teuthology/task/sleep: be explicit about seconds

Reviewed-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #1211 from tchaikov/wip-valgrind-dpdk
Kefu Chai [Tue, 18 Sep 2018 04:11:53 +0000 (12:11 +0800)]
Merge pull request #1211 from tchaikov/wip-valgrind-dpdk

teuthology/task/install/valgrind.supp: add suppression for DPDK

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
7 years agoteuthology/task/install/valgrind.supp: add suppression for DPDK 1211/head
Kefu Chai [Mon, 17 Sep 2018 06:53:40 +0000 (14:53 +0800)]
teuthology/task/install/valgrind.supp: add suppression for DPDK

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agosuite: Implement --sleep-before-teardown option 1210/head
Nathan Cutler [Fri, 14 Sep 2018 10:44:37 +0000 (12:44 +0200)]
suite: Implement --sleep-before-teardown option

With this option, all jobs in the run sleep for the given number of seconds as
the very last thing they do, regardless of success or failure.

Use case: interactive debugging

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoteuthology/task/sleep: be explicit about seconds 1209/head
Nathan Cutler [Fri, 14 Sep 2018 10:42:41 +0000 (12:42 +0200)]
teuthology/task/sleep: be explicit about seconds

Add the word "seconds" at the end of the log message, since "time.sleep()"
takes a number which is always interpreted as the number of seconds to sleep
for.

Before this commit, the log said:

    INFO:teuthology.task.sleep:Sleeping for 10

After:

    INFO:teuthology.task.sleep:Sleeping for 10 seconds

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoopenstack: use ssh identity as key_filename by default 1206/head
Kyr Shatskyy [Fri, 14 Sep 2018 00:27:42 +0000 (02:27 +0200)]
openstack: use ssh identity as key_filename by default

Signed-off-by: Kyr Shatskyy <kyrylo.shatskyy@suse.com>
7 years agoMerge pull request #1205 from tchaikov/wip-rerun
Kefu Chai [Wed, 12 Sep 2018 16:16:05 +0000 (00:16 +0800)]
Merge pull request #1205 from tchaikov/wip-rerun

worker,result: create archive_dir for the first job and mark --{seed,subset} optional

Reviewed-by: Yuri Weinstein <yweins@redhat.com>
7 years agoresults: mark --subset and --seed optional 1205/head
Kefu Chai [Wed, 12 Sep 2018 08:58:32 +0000 (16:58 +0800)]
results: mark --subset and --seed optional

before d488b9bd, these params were mandatory. after d488b9bd, they are
optional. because

- these parameters passed in only for "first-in-suite" job
- subset is not mandatory even for "first-in-suite", because there is
  chance that user want to run the full combination of the test matrix.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoworker: create archive_dir before putting log file in it
Kefu Chai [Wed, 12 Sep 2018 08:43:54 +0000 (16:43 +0800)]
worker: create archive_dir before putting log file in it

before d488b9bd, the memo for rerunning a suite is noted down by the
last-in-suite job. when the last-in-suite job is performed, the
archive_dir has been created by the jobs which performs tests, see
the `Creating archive dir` line in run_job() in teuthology/worker.py .

but after d488b9bd, the memo is logged by the first-in-suite job, by
then, none of the test jobs is performed, so their archive dirs are not
created. i think that's why the first-in-suite job fails to write the
memo to $archive_dir/results.log.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #1204 from tchaikov/wip-rerun
Kefu Chai [Tue, 11 Sep 2018 07:13:10 +0000 (15:13 +0800)]
Merge pull request #1204 from tchaikov/wip-rerun

 worker: do not pass --timeout to first-in-suite job

Reviewed-by: Yuri Weinstein <yweins@redhat.com>
Reviewed-by: Zack Cerza <zack@redhat.com>
7 years agoworker: do not pass --timeout to first-in-suite job 1204/head
Kefu Chai [Mon, 10 Sep 2018 16:10:14 +0000 (00:10 +0800)]
worker: do not pass --timeout to first-in-suite job

likewise, do not pass --seed or --subset to last-in-suite job
otherwise, teuthology/schedule.py will raise a ValueError at seeing
--subset or --seed not coming along with --first-in-suite, or
--email or --timeout not coming along with --last-in-suite.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoteuthology/suite: use specified seed and subset if results.log is not readable
Kefu Chai [Mon, 10 Sep 2018 15:23:59 +0000 (23:23 +0800)]
teuthology/suite: use specified seed and subset if results.log is not readable

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #1198 from tchaikov/wip-rerun
Josh Durgin [Thu, 6 Sep 2018 19:47:15 +0000 (12:47 -0700)]
Merge pull request #1198 from tchaikov/wip-rerun

script,worker,suite: note down the rerun parameter in the first-job-in-suite

Reviewed-by: Nathan Cutler <ncutler@suse.com>
Reviewed-by: Yuri Weinstein <yweins@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
7 years agosuite/run,schedule,result: write rerun memo as the first job in suite 1198/head
Kefu Chai [Fri, 24 Aug 2018 13:15:31 +0000 (21:15 +0800)]
suite/run,schedule,result: write rerun memo as the first job in suite

so we don't need to wait for the job to write result to for rerunning
the test suite. without this change, the "result" is normally the last
job in the suite to be scheduled, so it's likely we will not have the
results.log until the suite is almost completed. afer this change,
a "first-in-suite" job is scheduled as the first job to note down
the subset and seed to run the suite.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agosuite.run: extract write_result() out of prepare_and_schedule()
Kefu Chai [Fri, 24 Aug 2018 11:40:14 +0000 (19:40 +0800)]
suite.run: extract write_result() out of prepare_and_schedule()

so it's more modular.

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agosuite: do not bail out if results.log is not around
Kefu Chai [Fri, 3 Aug 2018 16:25:41 +0000 (00:25 +0800)]
suite: do not bail out if results.log is not around

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #1202 from smithfarm/wip-extra_system_packages
Gregory Farnum [Tue, 14 Aug 2018 21:20:55 +0000 (14:20 -0700)]
Merge pull request #1202 from smithfarm/wip-extra_system_packages

task/install: propagate extra_system_packages

Reviewed-by: Greg Farnum <gfarnum@redhat.com>
7 years agotask/install: propagate extra_system_packages 1202/head
Nathan Cutler [Tue, 14 Aug 2018 19:51:01 +0000 (21:51 +0200)]
task/install: propagate extra_system_packages

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoMerge pull request #1192 from smithfarm/wip-25020
Gregory Farnum [Mon, 13 Aug 2018 21:14:37 +0000 (14:14 -0700)]
Merge pull request #1192 from smithfarm/wip-25020

install: make extra_packages distro-agnostic (in a limited way) and support extra_system_packages option

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
7 years agoMerge pull request #1201 from ceph/wip-syslog-whitelist-info
Sage Weil [Mon, 13 Aug 2018 20:54:43 +0000 (15:54 -0500)]
Merge pull request #1201 from ceph/wip-syslog-whitelist-info

internal/syslog: whitelist ceph-crash daemon messages

7 years agotest_install.py: sort package lists before comparing 1192/head
Nathan Cutler [Mon, 13 Aug 2018 17:34:42 +0000 (19:34 +0200)]
test_install.py: sort package lists before comparing

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agointernal/syslog: whitelist ceph-crash daemon messages 1201/head
Dan Mick [Sat, 11 Aug 2018 01:00:20 +0000 (18:00 -0700)]
internal/syslog: whitelist ceph-crash daemon messages

None of these should cause test failures.

Signed-off-by: Dan Mick <dan.mick@redhat.com>
7 years agoMerge pull request #1046 from smithfarm/wip-run-py
Gregory Farnum [Wed, 8 Aug 2018 20:44:11 +0000 (13:44 -0700)]
Merge pull request #1046 from smithfarm/wip-run-py

run.py: Provide --os-{type,version} values to get_initial_tasks

7 years agoMerge pull request #1001 from SUSE/wip-18141
Gregory Farnum [Wed, 8 Aug 2018 20:43:40 +0000 (13:43 -0700)]
Merge pull request #1001 from SUSE/wip-18141

platform.linux_distribution() is deprecated; stop using it

7 years agoMerge pull request #1200 from tchaikov/wip-rerun-fix
Kefu Chai [Tue, 7 Aug 2018 16:46:13 +0000 (00:46 +0800)]
Merge pull request #1200 from tchaikov/wip-rerun-fix

suite,report: initialize seed with None

Reviewed-by: Yuri Weinstein <yweins@redhat.com>
7 years agoMerge pull request #1199 from tchaikov/pytest-requires-pluggy-v0.7
Kefu Chai [Tue, 7 Aug 2018 16:28:09 +0000 (00:28 +0800)]
Merge pull request #1199 from tchaikov/pytest-requires-pluggy-v0.7

setup,py,requirements.txt: add pytest

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
7 years agosuite,report: initialize seed with None 1200/head
Kefu Chai [Tue, 7 Aug 2018 16:23:18 +0000 (16:23 +0000)]
suite,report: initialize seed with None

so we can set it if it is not initialized

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agosetup,py,requirements.txt: add pytest 1199/head
Kefu Chai [Sat, 4 Aug 2018 00:42:02 +0000 (00:42 +0000)]
setup,py,requirements.txt: add pytest

pytest requires pluggy >= 0.7, while we always use pluggy 0.6, as
specified by requirements.txt. as this version is good enough for
tox. but in tox.ini, we do use pytest, and no version is specified,
so we have good chance running into https://github.com/pytest-dev/pytest/issues/3753

also, remove pytest from tox.ini, as this dependency has been
added in requirements.txt

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoMerge pull request #1197 from tchaikov/wip-str.replace
Kefu Chai [Sat, 4 Aug 2018 00:17:12 +0000 (08:17 +0800)]
Merge pull request #1197 from tchaikov/wip-str.replace

task/install: str.replace() does not keyword args

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
7 years agotask/install: str.replace() does not keyword args 1197/head
Kefu Chai [Fri, 3 Aug 2018 13:09:39 +0000 (21:09 +0800)]
task/install: str.replace() does not keyword args

In [8]: ?s.replace
Docstring:
S.replace(old, new[, count]) -> str

Signed-off-by: Kefu Chai <kchai@redhat.com>
7 years agoinstall: make exclude_packages distro-agnostic (in a limited way)
Nathan Cutler [Wed, 1 Aug 2018 14:50:54 +0000 (16:50 +0200)]
install: make exclude_packages distro-agnostic (in a limited way)

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agosuite: disregard trailing slash and expand unit tests 1002/head
Nathan Cutler [Wed, 1 Aug 2018 16:26:55 +0000 (18:26 +0200)]
suite: disregard trailing slash and expand unit tests

Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoinstall: support extra_system_packages config option
Nathan Cutler [Fri, 20 Jul 2018 15:18:26 +0000 (17:18 +0200)]
install: support extra_system_packages config option

On DEB systems, packages specified via the extra_packages option are installed
while forcing the same package version number as the version of the project
(i.e. Ceph) under test. So extra_packages can only be used to specify
additional project (Ceph) packages.

If we wanted to specify additional system (non-project, non-Ceph) packages to
install, we were out of luck. This commit implements an extra_system_packages
option for specifying extra non-project packages.

Fixes: http://tracker.ceph.com/issues/25026
Signed-off-by: Nathan Cutler <ncutler@suse.com>
7 years agoinstall: make extra_packages distro-agnostic (in a limited way)
Nathan Cutler [Fri, 20 Jul 2018 14:20:31 +0000 (16:20 +0200)]
install: make extra_packages distro-agnostic (in a limited way)

Where "distro-agnostic (in a limited way)" means: allow the user to specify
different lists for DEB and RPM.

This fix does not address the case when two RPM distros, or two DEB distros,
have different names for a given package/capability.

Fixes: http://tracker.ceph.com/issues/25020
Signed-off-by: Nathan Cutler <ncutler@suse.com>