The C++ class member fields continue to exist for
settings defined in common/legacy_config_opts.h, but
all the schema information is coming from common/options.cc
now.
The values in md_config_t::values are automatically
copied into the C++ class member fields for legacy config
options as needed.
Signed-off-by: John Spray <john.spray@redhat.com>
We should not proceed if setting this fails. Also
the meta=false setting is not what you want when
calling into set_val after initialization, I'm not sure
how that ever worked!
Signed-off-by: John Spray <john.spray@redhat.com>
Previously these were all in one header and inclusions of it
got really verbose from everyone having to define SUBSYS and OPTION
macros even though they only wanted to pick out one or the other.
Also, this separates the subsys.h stuff (staying) from the legacy
config opt definitions (transitional, will go).
Signed-off-by: John Spray <john.spray@redhat.com>
These will be replaced by validate methods
on Option subclasses that need them. The code
that was in these files moved to options.[h|cc]
Signed-off-by: John Spray <john.spray@redhat.com>
It's a poor substitute for real a concurrency solution
but for the moment carry it forward so that the options
structure can replace the list of config_option
in md_config_t.
Signed-off-by: John Spray <john.spray@redhat.com>
We can have a legacy (static field) config object
that includes fields from config_opts.h, and
then switch to using dynamic get() for newly
added options, so that we don't need to do
code generation for the new config infrastructure.
Signed-off-by: John Spray <john.spray@redhat.com>
Define schema for config options. Helper to generate a header fragment
to declare the types.
Unlike the old config_opts.h approach, we will not intialize values in
the header. This avoids a recompile if there is a change and also allows
us to specify different defaults and do parsing and validation at runtime.
Instead, we'll intialize values in the constructure of the containing
class.
Signed-off-by: Sage Weil <sage@redhat.com>
The CRUSH rule creation is busted (rules and buckets out of order), but
after I fix that it doesn't seem to run right anyway. Remove it.
We get the mon thrasher coverage from rados/monthrash already; I don't
think this is adding meaningful coverage for the amount of effort it takes
to maintain.
Signed-off-by: Sage Weil <sage@redhat.com>
When a collection is split this needs to be persisted again. Normally
this is only persisted when the missing set is rebuilt during a new
interval when it previous did not include deletes, but during split we
keep the in-memory missing set may_include_deletes flag, but do not
rebuild the missing set.
Fixes: http://tracker.ceph.com/issues/20704
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This prevents us from importing a missing set without also setting the
may_include_deletes_in_missing omap value if appropriate.
Signed-off-by: Josh Durgin <jdurgin@redhat.com>
This was dropped in bf49385679 but should
not have been. Since we are advertising the addr and not the bind
addr there is no reason to disable this check.
Signed-off-by: Sage Weil <sage@redhat.com>
Immediately after we bind to a port, but before we have set up our
auth infrastructure, we may get incoming connections. Deny them. Since
we are not yet advertising ourselves these are peers trying to connect
to old instances of daemons, not us.
This triggers now because of bf49385679.
Previously, the peer would see we were a different addr and drop the
connection. Now, it continues.
Fixes: http://tracker.ceph.com/issues/20667
Signed-off-by: Sage Weil <sage@redhat.com>
messages/: always set header.version in encode_payload()
Reviewed-by: Haomai Wang <haomai@xsky.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
cephtool/test.sh: Only delete a test pool when no longer needed.
Reviewed-by: Willem Jan Withagen <wjw@digiware.nl>
Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>