restrict timeout scaling during testing to a smaller set and reduce scaling factor

Signed-off-by: Gregory Meno <gregory.meno@inktank.com>
dateutils 2.x requires six

This had been masked by vagrant salt bootstrap pulling in six as
a secondlevel dependency of python-requests (to python-urllib3 to
python-six).  Broke install on centos, and presumably rhel.

Add a new "forced requirements" file with one entry so far; install
with -I/--ignore-installed, since the vagrant-salt-provisioned machines
will definitely have python-six in system packages, so must be forced
to install six.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Merge pull request #120 from inktankstorage/wip-python-dateutil

dateutils 2.x requires six
Merge pull request #119 from inktankstorage/wip-8249

restrict timeout scaling during testing to a smaller set and reduce scal...
tests: pyflakes violation

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: Fix corner case where hostname==FQDN

Previously, if a server's hostname was equal to
its FQDN, and we had detected it passively via
the OSD map (i.e. managed=false), we would
subsequently fail to update its status to
managed=true when we saw a salt message
from the server.

Signed-off-by: John Spray <john.spray@inktank.com>
salt: Tidy the ceph module & add RADOS timeouts

Timeouts
========

Timeouts in communications with librados/json_command
are important, because otherwise we block on unresponsive
mons, causing us not to send any heartbeat message at all.

This results in spurious "lost contact" messages for servers,
where we should instead be sending through the heartbeats
for the servers, minus the unresponsive cluster's data.

Errors
======

rados.py will raise rados.Error in most cases, although for
timeouts it returns a nonzero status instead.  Wrap calls
to generate an exception even for timeouts, and make sure
all such calls in get_heartbeats are handled so that failure
to query one thing doesn't prevent us from querying another.

Signed-off-by: John Spray <john.spray@inktank.com>
calamari_rest: fix exception during OSD removal

If OSD was in OSD map but not in CRUSH map,
we had an unhandled exception (500).  That
case can happen when you're in the process of
removing an OSD.

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: Fix intermittent exception on new cluster

There was a brief window between construction and the
first call to on_heartbeat where the update_time
attribute of ClusterMonitor was None, causing an
exception rendering to a datetime for the API.

Signed-off-by: John Spray <john.spray@inktank.com>
cthulhu: handle servers with multiple CRUSH names

For example, when I have two CRUSH nodes for host
'foo', they may be called 'foo' and 'foo-ssd'.  This
patch handles that case by realising that both actually
refer to the same server.

Fixes: #8463

Signed-off-by: John Spray <john.spray@inktank.com>
repobuild/: include only x86_64 arch packages

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Merge pull request #122 from inktankstorage/wip-pkgarch

repobuild/: include only x86_64 arch packages
Use lsb_release -is to look for flavor in get-flavor.sh

Fixes: #8459
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Merge pull request #121 from inktankstorage/wip-fixes

Fixes for 1.2
doc: fix deb/debian typo

Signed-off-by: Jeremy Hanmer <jeremy@dreamhost.com>
Merge pull request #124 from fzylogic/master

doc: fix deb/debian typo
doc: update README

Signed-off-by: John Spray <jspray@redhat.com>
doc/build: update 'inktankstorage' to 'ceph'

These are parts that moved when Calamari was
open sourced.

Signed-off-by: John Spray <jspray@redhat.com>
Merge pull request #126 from ceph/wip-readme

Updates to README and git paths
doc: fix 'clients' to be 'calamari-clients'

Signed-off-by: John Spray <jspray@redhat.com>