ceph: accept osd.* as a valid name

This will be used for 'ceph tell osd.* ...'

Signed-off-by: Sage Weil <sage@inktank.com>
ceph: filter out empty lines from osdids()

Signed-off-by: Sage Weil <sage@inktank.com>
ceph: implement 'ceph tell osd.* ...'

Send the command to each target.  Do this in series, for now.  Error out if
any one fails.

Later, we should do them in parallel.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/MonClient: send commands to a specific monitor

This implementation is limited: we direct our command by reopening
a session with the specific monitor.  If there is more than one of these
queued we will fail to reach either.

Signed-off-by: Sage Weil <sage@inktank.com>
ceph, mon/OSDMonitor: fix up osd crush commands for <osd.N> or <N>

The new parsing code had been trying to allow flexibility for the
'old form' commands (where id could be different from N in osd.N),
but also accept 'new form' commands.  The new rule is that where
there's an OSD specified in the osd crush command, it is of type
CephOsdName, which can be an id *or* 'osd.<id>', but not both.

Pass CephOsdName as int64_t 'id' for convenience in mon code

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
OSDMonitor: osd id when id already exists needs to come to stdout too

Found by qa/workunits/mon/osd.sh

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Clean up CrushWrapper methods that take string: no c_str() necessary

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
ceph-disk: extra dash in error message

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Update README dependency lists

Signed-off-by: Dan Mick <dan.mick@inktank.com>
librados: new rados_mon_command_target to talk to a specific monitor

Signed-off-by: Sage Weil <sage@inktank.com>
ceph: add support for 'tell mon.X ...'

Signed-off-by: Sage Weil <sage@inktank.com>
mon: remove support for 'mon tell ...' and 'osd tell ...'

It doesn't work.  The commands the ceph cli sends are vector<string>, and
the mon expects json.

Leave the MDS on in place since ceph-mds still takes strings.

Signed-off-by: Sage Weil <sage@inktank.com>
Merge branch 'wip-tell' into next

Reviewed-by: Dan Mick <dan.mick@inktank.com>
mon/MonCap: bootstrap-* need to subscribe to osdmap, monmap

Signed-off-by: Sage Weil <sage@inktank.com>
mon/MonmapMonitor: remove unused label

mon/MonmapMonitor.cc: In member function 'bool MonmapMonitor::preprocess_command(MMonCommand*)':
mon/MonmapMonitor.cc:273:2: warning: label 'out' defined but not used [-Wunused-label]

Signed-off-by: Sage Weil <sage@inktank.com>
librados: do not wait for osdmap on start

If we abort while waiting, we incorrect clean up (we switch the state value
incorrectly, and also fail to clean up the initialized objecter).

Intead, skip this wait.. it's useless!

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
mon: fix idempotency of 'osd crush add'

If we add an item that already exists in particular position, we should
update instead of inserting it; the CrushWrapper methods are not
idempotent.

Signed-off-by: Sage Weil <sage@inktank.com>
Merge remote-tracking branch 'gh/next'