port teuthology-ls to use docopt instead of argparse

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
adding tests for teuthology.ls, coverage now at 88%

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
Merge pull request #360 from andrewschoen/docopt-ls

port teuthology-ls to use docopt instead of argparse
port the argument parsing for teuthology.run to docopt

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
Adds a FakeNamespace object to teuthology.config that mimics
what an argparse Namespace looks like when teuthology.misc.read_config
is used on it.  This allows us to refactor our commands to use docopt
but still all all the tasks to be passed one big namespace.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
Creates a merge_configs function in teuthology.misc that will be used
by run and schedule, nuke will need this eventually as well.  The old
way of doing this was too tightly coupled with argparse.  Wrote some
tests around the new function; increased coverage on misc by 4%.

Random lint fixes as well.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
Ports the teuthology.run command to docopt instead of argparse.

This is a pretty massive refactor to make the code more testable as
well. The coverage on teuthology.run was increased from 0% to 86% and
the overall project coverage increased to 24%.

Signed-off-by: Andrew Schoen <aschoen@redhat.com>
Add a check to make sure that a given config file exists before trying to use it

Signed-off-by: Andrew Schoen <aschoen@redhat.com>