When used in the radosgw context, the 'ceph' string must be present but
when used in ceph_manager, the 'ceph' string is already included.
Signed-off-by: Loic Dachary <loic@dachary.org>
if the value from the yaml file is an int, it must be converted into a
string bevore being concatenated with '='
Signed-off-by: Loic Dachary <loic@dachary.org>
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>
and '(remote,) = ctx.cluster.only(role).remotes.iterkeys()' would fail with
ValueError and no message if there were less than 0 or more than 1 key.
Now a new function, get_single_remote_value() is called which prints out
more understandable messages.
Fixes: 7510
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Warren Usui <warren.usui@inktank.com>
Moving a helper function into a more general
location so that it can be used by other
classes.
Signed-off-by: Joe Buck <jbbuck@gmail.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Do not make the domain root pool the same
as the zone root pool. That causes sync issues.
Also, clarify a logging message.
Signed-off-by: Joe Buck <jbbuck@gmail.com>
Adding tests for ticket #5604 to test
user propagation via the radosgw-agent.
Signed-off-by: Joe Buck <jbbuck@gmail.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Go to the master zone in the master region for radosgw-admin
operations. Trigger metadata sync. Other fixes.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Read ceph.conf from stored copy that includes overrides
- Get system users and keys from cluster instead of reading other
tasks' yaml, which may not be complete.
- Put zone info extraction from the cluster into utility functions,
since it'll be useful for other tests later.
- Work with more than one agent on a single host
- Accept more than one client to run, like almost every other task
- Rename target to dest for consistency with radosgw-agent
- Don't make everything one large function
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Take client<->zone/region and the associated pools from ceph.conf, so
we don't have to invent a new format to specify it.
General region info is added to a new configuration section in the rgw
task. Each client is assumed to be a different zone, and a system user
is created with the key specified in the yaml, so it can be passed to
later task configuration as well. This isn't strictly necessary, but
avoids having to lookup this info in later tasks through something
like radosgw-admin.
Ports are allocated automatically because there's no obvious mapping
from host to client in the task configuration. Later tests can get the
endpoints desired by reading the region map.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Six copies are replaced with one, with an added option to check status
automatically. This should probably be used in a few places where the
return code is ignored.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>