Instead of being hard coded, the erasure code profile is read from yaml
as:
erasure_code_profile:
name: teuthologyprofile
k: 2
m: 1
ruleset-failure-domain: osd
Which translates into
ceph osd erasure-code-profile set teuthologyprofile \
k=2 m=1 ruleset-failure-domain=osd
The semantic of k/m etc. depends on the erasure code plugin, but it is
common to use k as the dividing factor for each object and m as the
number of coding chunks.
Using a different set of parameters or a different plugin can
be done without modifying the teuthology code:
erasure_code_profile:
name: LRCprofile
plugin: LRC
mapping: __DD__DD
layers: [[ "_cDD_cDD", "" ], [ "cDDD____", "" ], [ "____cDDD", ""]]
For backward compatibility, the default erasure code profile is set to
k: 2
m: 1
ruleset-failure-domain: osd
which matches the previously hardcoded default of the corresponding
functions.
Signed-off-by: Loic Dachary <loic@dachary.org>
For the future help keep in sync with test/osd/TestRados.cc by listing
in order of op_types in that code.
Signed-off-by: David Zafman <david.zafman@inktank.com>
Invoke run_xfstests.sh through a wrapper, which supplies an exclusion
list, in order to skip tests we don't want to run.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
This is for testing the changes to CephFS
journal format, especially the migration
of journals from old to new format.
This is a teuthology task rather than being
a workunit script, because it involves
manipulating services and config during the
procedure.
Signed-off-by: John Spray <john.spray@inktank.com>
Python modules are not allowed to contain hyphens
in the name. Using hyphens only works here because
we're using low level __import__.
Change run_tasks to replace '-' with '_' when reading
configs, and rename the task modules to have valid
python module names.
Aside from general hygiene, the motivation to do this
is to allow one task to build on code in another
task by importing it.
Signed-off-by: John Spray <john.spray@inktank.com>
Make sure that uri is defined for debian upgrades.
Use master as default.
Added _get_uri_() which consolidates checking and assignment of
sha1, tags, and branch values.
Fixes: 7707
Signed-off-by: Warren Usui <warren.usui@inktank.com>
If we leave the weights adjusted, we can get PGs stuck in a remapped state
because we are probabilistically rejecting placement. Avoid this by
setting on in osds to 1.0 before waiting for clean.
Signed-off-by: Sage Weil <sage@inktank.com>
Fixed method names to be non-redundant (remote_mktemp in remote is
now just mktemp, for example), and made some parameters be more
self descriptive. Added some docstrings. Fixed sudo setting in
get_file method.
Made chmod independent of the actual sftp file getting.
Do not do extra file copy if non-sudo read is needed.
Fixed some parameter names. Made sure temp files are removed.
Paramiko 1.13.0 checks data in the Channel and fails if
invalid UTF-8 characters are sent. The teuthology/misc.py
functions that piped cat output (get_file) and piped tar
output (pull_directory and pull_directory_tarball) formerly
did not work for Paramiko 1.13.0.
Code was changed to use SFTPClient to copy raw data. The
remote_mktemp and function was changed to be a method of the
remote object. Remote object methods to copy files and write
tar files were also added.
In misc.py, get_file() was changed to be a wrapper around the
remote object call. Pull_directory() and pull_directory_tarball
were changed to use the remote object methods as well.
The remote methods used to send the data makes use of the
SFTPClient interface in Paramiko.
The remote_mktemp function was also modified slightly to insure
that new-lines do not appear in temp file names.
Fixes: 8116
Signed-off-by: Warren Usui <warren.usui@inktank.com>