The small segments and small segment limit
were used when doing a hacky flush by doing
IO and waiting: now that we have the explicit
'flush journal' asok in use, we can just use
a normal journal configuration.
John Spray [Tue, 23 Dec 2014 16:11:12 +0000 (16:11 +0000)]
tasks/cephfs: remove `config` from Filesystem cons
This was only used in get_first_mon, which doesn't actually
need the parameter itself. Makes it easier to casually
use Filesystem from any place with a ctx to hand.
John Spray [Fri, 19 Dec 2014 14:03:41 +0000 (14:03 +0000)]
tasks/cephfs: umount unused clients before running
When unused clients were mounted during an fs new,
they would end up in a state where they stalled
on subsequent attempts to umount them (ceph-fuse
stalls on exit if it can't terminate its mds_session)
John Spray [Thu, 18 Dec 2014 19:38:53 +0000 (19:38 +0000)]
tasks/cephfs: be more precise in set_clients_block
Instead of blocking the whole port range (which
might make OSDs running on that node collateral
damage), read the MDS's port out of the MDS map
and just block that.
John Spray [Thu, 18 Dec 2014 18:24:37 +0000 (18:24 +0000)]
tasks/cephfs: use set_conf() from test case class
...because this is the one that will store up
changes to roll back during teardown.
Doing this makes it easy to run lots of test cases
togeher in a single teuthology run, raher than
setting up/tearing down the ceph cluster for each
on.
John Spray [Thu, 18 Dec 2014 13:03:40 +0000 (13:03 +0000)]
tasks/cephfs: move common setUp/tearDown to parent
Now that we have more of these cases, there was lots
of duplication in setup and teardown. For some tests
the "reset everything" setup/teardown is overkill,
but it's harmless.
Ken Dreyer [Tue, 6 Jan 2015 15:59:14 +0000 (08:59 -0700)]
drop tiobench tests
The tiobench software has been abandoned upstream for years. Fedora and
Debian are no longer shipping the tiobench package, so we've had to
carry the package ourselves in the Ceph project, and we're trying to
slim down our dependencies where it makes sense to do so.
This is tryign to create the archive dir on the remote host:
2014-12-29T12:15:30.213 INFO:teuthology.orchestra.run.plana31:Running: 'mkdir -p /var/lib/teuthworker/archive/sage-2014-12-29_11:40:52-rgw-next---basic-multi/683052'
2014-12-29T12:15:30.231 ERROR:teuthology.contextutil:Saw exception from nested tasks
Traceback (most recent call last):
File "/home/teuthworker/src/teuthology_master/teuthology/contextutil.py", line 28, in nested
vars.append(enter())
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/var/lib/teuthworker/src/ceph-qa-suite_next/tasks/s3readwrite.py", line 241, in run_tests
ctx.cluster.only(client).run(args=['mkdir', '-p', archive_dir])
File "/home/teuthworker/src/teuthology_master/teuthology/orchestra/cluster.py", line 64, in run
return [remote.run(**kwargs) for remote in remotes]
File "/home/teuthworker/src/teuthology_master/teuthology/orchestra/remote.py", line 128, in run
r = self._runner(client=self.ssh, name=self.shortname, **kwargs)
File "/home/teuthworker/src/teuthology_master/teuthology/orchestra/run.py", line 368, in run
r.wait()
File "/home/teuthworker/src/teuthology_master/teuthology/orchestra/run.py", line 106, in wait
exitstatus=status, node=self.hostname)
CommandFailedError: Command failed on plana31 with status 1: 'mkdir -p /var/lib/teuthworker/archive/sage-2014-12-29_11:40:52-rgw-next---basic-multi/683052'
John Spray [Mon, 3 Nov 2014 15:38:57 +0000 (15:38 +0000)]
tasks: create mds_flush task
This tests:
* The new 'flush journal' asok command
* That the resulting on disk structures are as expected
* That cephfs-journal-tool is happy with the result
Fixes: #9881 Signed-off-by: John Spray <john.spray@redhat.com>
John Spray [Mon, 15 Dec 2014 11:12:34 +0000 (11:12 +0000)]
tasks/cephfs: let get_config use non-mon services
Previously was always using the default values of things
so querying mon instead of the appropriate service
worked fine. However, for things we might want to
update on a per-test basis we need to go ask the
correct service what the setting really is.
Needed for osd_mon_report_interval_max in the ENOSPC
testing.
John Spray [Tue, 2 Dec 2014 13:28:08 +0000 (13:28 +0000)]
tasks/ceph: move FS creation inside Filesystem
Leave the legacy handling out in cephfs_setup, move
the filesystem creation stuff into Filesystem. I
anticipate this being the right place for it if/when
we have tests that want to do 'fs rm' 'fs new' type
cycles within themselves.
John Spray [Tue, 2 Dec 2014 13:30:06 +0000 (13:30 +0000)]
tasks/ceph: conservative PG count in FS pools
This was tripping over the recent commit 42c85e80
in Ceph master, which tightens the limits on
acceptable PG counts per OSD, and was making
teuthology runs fail due to never going clean.
Rather than put in a new hardcoded count, infer
it from config. Move some code around so that
the ceph task can get at a Filesystem object
to use in FS setup (this already has conf-getting
methods).
Warren Usui [Tue, 21 Oct 2014 20:56:46 +0000 (13:56 -0700)]
Move output in task/s3readwrite
The s3readwrite.py task formerly wrote too much output while excuting.
It now saves the data on the local machine in either the archive
directory or in /tmp if no archive directory is specified.
The new file contains a client name and timestamp in its name.
Once all processing has completed, that file is saved locally.
Loic Dachary [Wed, 19 Nov 2014 17:54:02 +0000 (18:54 +0100)]
ceph_objectstore_tool: add pgnum option
Instead of hardcoding 12 use a configuration option that defaults to
12. It is handy during development to lower the number to 4 and speed up
the test cycle.
Loic Dachary [Mon, 17 Nov 2014 16:33:56 +0000 (17:33 +0100)]
ceph_objectstore_tool: add hinfo_key tests for erasure coded objects
When an hinfo_key attribute is found, assume an erasure coded object and
verify set-attr/get-attr works as expected by removing its content and
restoring it.
Loic Dachary [Mon, 17 Nov 2014 16:31:13 +0000 (17:31 +0100)]
ceph_objectstore_tool: keep all json object representation
For erasure coded pools to be tested, the json object representation
must be preserved for all PG because they are all different. The
internal representation is changed from
db[name]["pgid"] = pg
db[name]["json"] = objjson
to a per pg map:
db[name].setdefault("pg2json", {})[pg] = objjson
and the rest of the code is modified to adapt accordingly.
Loic Dachary [Wed, 19 Nov 2014 17:14:52 +0000 (18:14 +0100)]
ceph_manager: add pool type constants
The osd dump command displays pool types using numerics instead of
symbolic names. Create constants in the CephManager class to use instead
of numbers.
Warren Usui [Tue, 4 Nov 2014 22:07:07 +0000 (14:07 -0800)]
Further changes for calamari_setup.py
Made suggestions from code reviews.
Added no_epel option.
Merged Dan Mick's changes that add the ability to get
iceballs from http URL.
Remove duplicate assignment and added some log.debugs
Warren Usui [Fri, 17 Oct 2014 02:20:42 +0000 (19:20 -0700)]
Add calamari_setup
Calamari_setup can be used to set up a calamari gui for manual testing,
or be run in a suite to test the calamari setup and calamari ceph
installation code.