Merge pull request #93 from ceph/wip-runfix

Make run_job merge job_config['config'] if needed
Use teuthology-specific backup for /etc/sudoers
Merge pull request #94 from ceph/wip-fix-sudoers

Use teuthology-specific backup for /etc/sudoers
Revert "suite: do not calculate product on an empty list"

This reverts commit dda7954090ccc9ffd8ecd961d6b530a0e6d24964.

This commit was causing the number of jobs scheduled per suite to be
multiplied by anywhere from 2 to 7 or more.
suite: do not calculate product on an empty list (take 2)

The original attempt to fix this with dda7954090ccc9ffd8ecd961d6b530a0e6d24964
failed because I screwed up the indentation for the out.append(...) line.

Signed-off-by: Sage Weil <sage@inktank.com>
Revert "suite: don't schedule follow-on summary job for an empty run"

This reverts commit a2b7c728964fb0064ba2a69818289caf723f09fc.
Make sed expressions safe to run multiple times

Also, make them ignore commented lines.
Merge pull request #96 from ceph/wip-fix-sudoers

Make sed expressions safe to run multiple times
Fix logs URL on Sentry pages.
Merge pull request #97 from ceph/sentry

Fix logs URL on Sentry pages.
If duration is missing from summary.yaml, use 0
Merge pull request #98 from ceph/time-fix

If duration is missing from summary.yaml, use 0
Fix typo
Add test for teuthology.suite.build_email_body()
Port to py.test
Merge pull request #100 from ceph/wip-tests

Add test for teuthology.suite.build_email_body()
Put helper scripts in /usr/bin
Merge pull request #101 from ceph/fix-adjust-ulimits-b

Put helper scripts in /usr/bin
Add pytest.ini

So far this just tells py.test not to recurse into directories
containing tests it doesn't need to run.
Update many unit tests to reflect 2yrs of changes

These tests hadn't been updated in over two years. Only one is left
failing.