mon: osd crush rule create-erasure

Delegates the creation of the rule to the erasure code plugin associated
with the specified pool.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: do not force proposal when no osds

If there are no OSDs, there is no need to propose to paxos. It does not
hurt on a production cluster but it matters when running tests because
it effectively alway ignores --paxos-propose-interval.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
pybind: fix tests that do not fail as expected

A missing argument make the test fail indeed, but the intended test is
to demonstrate something else ( either character validation or excess of
arguments etc. ). The result is {} instead of None which is what should
have been expected in the first place.

Ideally there would be a more verbose way to check for syntactic errors
to make such mistakes less probable.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
pybind: cosmetic changes to tests

* untabify
* re-indent
* 2014 to copyright notice

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
pybind: osd crush rule create-erasure tests

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
unittests: reduce paxos propose interval to increase speed

The MONs are stressed more often and there is less aggregation of the
pending requests. But the unit tests are only meant to verify that a
known code path exists and performs as expected, therefore it will not
make a difference. And if it does, it is a bug that needs fixing.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
vstart: load erasure code plugins from sources

Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create shows logs on error

extracting the logs would otherwise require a modification of the test
file to not clobber the directory containing the logs when it exits

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create test initialization

* reduce the paxos propose interval speed up tests
* load erasure code plugins from sources

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create test must kill -9

If a MON is stuck, kill -15 won't be enough and the test will hang
forever.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create test enforce -e

Use

   ! grep foo || exit 1

instead of

   grep foo && exit 1

so that all commands have a successful exit code. Otherwise set -e is
supposed to fail on them.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: test erasure code pool creation

* The sequence now is a) create ruleset, b) create pool.
* Check that not specifying the ruleset when an erasure coded pool is
  created fails
* Check that specifying a non existent ruleset when a pool is created
  fails
* Check that osd dump shows the expected ruleset. It assumes ruleset
  numbers are allocated in sequence, i.e. the ruleset will be 1.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create test EAGAIN when pending

Test that if the ruleset is found in the pending paxos proposal, the
pool creation will try again.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: osd-pool-create test no longer use hardcoded ruleset

For erasure-code the ruleset must be specified instead of relying on an
hardcoded value. Adapt the test to this for tests that do not otherwise
change behavior.

Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
Signed-off-by: Loic Dachary <loic@dachary.org>
mon: OSDMonitor: do not allow changing an erasure-coded pool's size

Fixes: 7277

Reviewed-by: Loic Dachary <loic@dachary.org>
Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>