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>
Run tests for base class in subclass tests

Also remove test_defaults() since it was a bad idea.

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Don't use double underscores

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Discourage modifying defaults in instances

Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
Merge pull request #289 from ceph/split_prep

Split prep