doc: Hadoop clarifications

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
doc: start Hadoop installation docs

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
osd: limit number of inc osdmaps send to peers, clients

We should not send an unbounded number of inc maps to our peers or clients.
In particular, if a peer is not contacted for a while, we may think they
have a very old map (say, 10000 epochs ago) and send thousands of inc maps
when the distribution shifts and we need to peer.

Note that if we do not send enough maps, the peers will make do by
requesting the map from somewhere else (currently the mon).  Regardless
of the source, however, we must limit the amount that we speculatively
share as it usually is not needed.

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
osd: fix warning

From 653e04a79430317e275dd77a46c2b17c788b860b

Backport: cuttlefish, bobtail
Signed-off-by: Sage Weil <sage@inktank.com>
Python Ioctx.get_xattrs does not take xattr_name

Fixes bug 5528

Since it returns all xattrs, it does not take an xattr_name. Also,
add unit tests for the Object xattrs methods.

Signed-off-by: Johannes Erdfelt <johannes@erdfelt.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
test_rados: don't use assert_greater

It's only present in very recent versions of nose, and doesn't provide
much beyond a simple assert.

Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
Merge branch 'next'
Makefile.am:  fix ceph_sbindir

This reinstates the fix for the ceph_sbindir from commit
352f362567bf270d0896fb7573df4ae5139a56fb, with corrections
from Danny's review commits pull request #389.
Fixes: #5492

Reported-by: Denis Kaganovich <mahatma@eu.by>
Reviewed-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
Signed-off-by: Sage Weil <sage@inktank.com>
Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
Merge branch 'wip-5492-gl' into next

Re-instate fix for #5492 with corrections.

Signed-off-by: Gary Lowell  <gary.lowell@inktank.com>
Get device-by-path by looking for it instead of assuming 3rd entry.

On some systems (virtual machines so far) the device-by-path entry
from udevadm is not always in the same spot so instead actually
look for the right output instead of blindy assuming that its a
specific field in the output.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Gary Lowell  <gary.lowell@inktank.com>
Get device-by-path by looking for it instead of assuming 3rd entry.

On some systems (virtual machines so far) the device-by-path entry
from udevadm is not always in the same spot so instead actually
look for the right output instead of blindy assuming that its a
specific field in the output.

Signed-off-by: Sandon Van Ness <sandon@inktank.com>
Reviewed-by: Gary Lowell  <gary.lowell@inktank.com>
PGMonitor: fix stat comparison in prepare_pg_stats

Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Merge pull request #420 from gregsfortytwo/master

radosgw-admin help command naming and text improvements

Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
rados.py: allow long-form names of 'warn' and 'err' as watch levels

Signed-off-by: Dan Mick <dan.mick@inktank.com>
common: Formatter: add flush to bufferlist

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
MonCommands: add new fields: modulename, perms, availability

To help optimize the REST API, we need to know whether the commands
are read (GET) or write (PUT/POST).  However, we also could use that
same info for permission/caps checking.  Add modulename/perms as
the required caps for each command to drive both needs.

The availability field is to control whether a command is displayed/
advertised through the CLI or REST interfaces; some commands aren't
really useful for REST, and we may want to invent REST-only commands;
also, this gives us a way to deprecate commands quickly and leave the
code, should that be desirable.  Make the CLI display only commands
marked with the 'CLI' marker.

Also stop renaming 'help' to 'helptext' in the client.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
ceph.in, ceph_argparse.py: move descsort() to ceph_argparse

Signed-off-by: Dan Mick <dan.mick@inktank.com>
ceph CLI: valid() no longer returns bool, but just exception

The type validation's valid() method was using a combination of
return code and exception to really indicate the same thing;
simplify by only raising on validation error, and change callers
to cope.  validate_one() follows suit.

Also, allow validate() to be called with args that are dicts
(for REST support) rather than bare words.  Rules: 'name':'value'
must both match descriptor's name and validate (through valid() for
the value.  If value is '', it's assumed to be the same as name,
(one can pass, for example, "detail" as one parameter to
REST, but it will still show up as {'detail':''} here).

Tweak validate()'s algorithm a bit in the process, and make
validate_command() exit the bestcmds loop immediately on first
full validation.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
ceph_argparse.py cleanup: simplify some code, error on unused args

Signed-off-by: Dan Mick <dan.mick@inktank.com>
auth: Crypto: add encode_formatted/plaintext() functions

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>