For plain, include a column for each pool. Show only the first weight if
it is positional.
For formatted, include the full set of weights.
As far of this we switch 'ceph osd crush tree' to have a plaintext mode.
Signed-off-by: Sage Weil <sage@redhat.com>
We can make a backward-compatible crush map for legacy clients only if we
have a single global choose_args for the whole map. Add a special
slot to store that of -1. (Normally the index is the pool id, so -1 is
unused by ceph.)
Signed-off-by: Sage Weil <sage@redhat.com>
We need to include the mask in the CEPH_FEATURES_CRUSH value, and | in the
FEATUREMASK later, because this is a second-generation feature bit usage.
This fixes get_min_compat_client(), which was returning 'jewel' when
incompat choose_args were in use instead of 'luminous'. Now it is correct.
Signed-off-by: Sage Weil <sage@redhat.com>
This has a few problems:
1- It does not do it's analysis over CRUSH rule roots/classes, which
means that an innocent user of classes will see skewed usage (bc hdds are
more full than ssds, say)
2- It does not take degraded clusters into account, which means the warning
will appear when a fresh OSD is added.
See http://tracker.ceph.com/issues/20730
Signed-off-by: Sage Weil <sage@redhat.com>
We have a few open tickets regarding the mgr being down during suites
involving messenger failure injection. There are a few suspicions that
this may be related with the monclient, but we'll need more logs to
validate those suspicions and, more, to validate we're actually fixing
the issue.
Signed-off-by: Joao Eduardo Luis <joao@suse.de>
...in places that the return code was not being checked.
This fixes cases where an error in the config schema or the
value being passed in would cause weird failures beacuse the
set_val had not taken effect.
Signed-off-by: John Spray <john.spray@redhat.com>
This was only partially updated in previous commits
for --num-clients, --num-open-files.
Also update int validation test to reflect that values
are now 64 bit internally.
Signed-off-by: John Spray <john.spray@redhat.com>
The code in common_preinit is still there to override
these settings as appropriate.
The set_daemon_default stuff was breaking ceph-conf tests (because
you would get the client-side defaults when asking about an OSD's
settings), and md_config_t isn't properly identifying daemons
using code_env yet.
Ticket to add it back in:
http://tracker.ceph.com/issues/20627
Signed-off-by: John Spray <john.spray@redhat.com>
This was a string in the old schema, and tests
depended on that -- if we want to change its type
let's do that separately to the infrastructure changes.
Signed-off-by: John Spray <john.spray@redhat.com>
These were awkward for typing of the '1' literal vs.
the int64_t settings. The whole max() thing is also
unnecessary now, if we set proper bounds on the option
definitions.
Signed-off-by: John Spray <john.spray@redhat.com>
This is only there so that a variant<> containing
a uuid (amongst other types) can have operator< acting on it.
Signed-off-by: John Spray <john.spray@redhat.com>