Remove unused import

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Add test for config substitution

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Use a dict for a job template instead of a string.

This makes later modifications far easier.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Update existing unit test, and add another.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Make teuthology.config *far* more robust

In addition to parsing its configuration from a yaml file, it can now be
created from a dict. It can also be dumped as a dict, or as a yaml
stream. It is also now split into multiple classes so that the same
implementation can be used for job configs, and not just as a proxy for
~/.teuthology.yaml.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Use the new JobConfig object

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Store the suite_branch in the job config

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Add src_base_path to defaults.

Defaults to ~/src

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Use config.src_base_path

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Clone ceph-qa-suite and add it to PYTHONPATH

So that teuthology runs can find their tasks

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Tweak fetch_teuthology_branch()

Specifically, make it match fetch_qa_suite()'s behavior.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>