mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap

Backport: dumpling
Fixes: #6047

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
mon: OSDMonitor: don't propose on prepare_pool_op()

Except in very special cases, we should let PaxosService take its course
and trigger the proposals itself.  In this case, we were proposing right
before returning to PaxosService, and we were returning false on top of it
(most likely to guarantee that PaxosService wouldn't try to propose).

This doesn't make much sense, so let's do it like all the other cool kids
are doing and let PaxosService decide what's best for us.

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
mon: OSDMonitor: return earlier on no-ops over currently committed state

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
qa: workunits: mon: test snaps ops using rbd.

Regression test for #6047

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
rbd.cc: propagate some errors to user-space when they're available

There was a bunch of situations in which we would have a proper error to
propagate to user-space but we would always return '1' (EXIT_FAILURE).

Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
osdc/Objecter: fix dereference of NULL pg_pool_t

Make sure we don't dereference a NULL pointer.  Note that we check a
bit further down if the target pool does not exist and return the proper
error.

Bug was reliably reproduced by

 ./ceph_test_rados_api_watch_notify --gtest_filter=LibRadosWatchNotify.WatchNotifyTimeoutTestPP

Signed-off-by: Sage Weil <sage@inktank.com>
osd: debug user_versions a bit

Signed-off-by: Sage Weil <sage@inktank.com>
osd/PG: only raise PG's last_user_version if entry is >

We may have pg entries that do not increase the user_version at all (i.e.,
they may be 0).  Do not update the last_user_version in that case as we
need it to remain an upper bound.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: do not log user_version on deletion events

Or snap trim events where we are adjusting the head's snapdir attr.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: log previous user_version on clone

Nothing relies on this, but it makes sense to me.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: do not log a user_version on the snapdir object

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: do not set ctx->user_at_version unless ctx->user_modify

Leave ctx->user_at_version set to the previous oi.user_version unless/until
we find that ctx->user_modify is true.

Signed-off-by: Sage Weil <sage@inktank.com>
osd/ReplicatedPG: set user_version in waiting_for_commit replies

Signed-off-by: Sage Weil <sage@inktank.com>
rgw: Allow wildcard in supported keystone roles.

http://tracker.ceph.com/issues/4365 fixes #4365

Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Merge pull request #562 from kri5/wip-4365

rgw: Allow wildcard in supported keystone roles.

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
Merge remote-tracking branch 'gh/wip-6179'

Reviewed-by: Greg Farnum <greg@inktank.com>
osd: provide better version bounds for cls_current_version and ENOENT replies

Following the changes to when we set or increase the user_version, we
want to continue to return the best lower bound we can on the version
of any newly-created object. For ENOENT replies that means returning
info.last_user_version instead of the (potentially-zero) ctx->user_at_version.

Similarly, for cls_current_version we want to return the last version on
the PG rather than the last update to the object in order to provide
sensible version ordering across object deletes and creates.

Update the versions doc so it continues to be precise.

Signed-off-by: Greg Farnum <greg@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
rgw: change watch init ordering, don't distribute if can't

Backport: dumpling

Moving back the watch initialization after the zone init,
as the zone info holds the control pool name. Since zone
init might need to create a new system object (that needs
to distribute cache), don't try to distribute cache if
watch is not yet initialized.

Reviewed-by: Sage Weil <sage@inktank.com>
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
ceph_test_rados: add missing kick for rollback

This was broken by the refactor in 96aaa5e3a371ade8b91ad9ab991d996eaef2cea5
and can make us hang.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
doc: Updated manual install to include sync agent, ARM packages, and DNS configuration.

Signed-off-by: John Wilkins <john.wilkins@inktank.com>