Directly use self.flavor
Make image optional and add rudimentary support for block devices

The image keyword is now optional and defaults to None. The
block_devices keyword will map to the block_device_mapping_v2 in
novaclient. Some simple parsing will happen to allow a higher level use
than what --block-device presents in the shell.
Refactor _getImage to allow any image callable to be used

This may eventually be extended to work with block devices.
Add block devices to kwargs for servers.create
Combine all test auth data into one dict

Combined all of the test auth keywords into a dict to make setting up a
buildslave slightly less tedious.
Simplify more redundant test args

Most creations of the slave now can use the shorter **self.bs_args.
Test OpenStackBuildSlave.stop_instance
Test basic block_devices functionality
Add a kwargs to OpenStackBuildSlave

Add a kwargs to allow people that know what needs to be passed to
servers.boot the option to do so.
Add release notes and documentation
Fix release notes

I missed a blank line.
Fix the logviewer
misc fixes to the UI

- fix breadcrumbs
- add breadcrumbs on more pages
- make logviewer full screen
- automaticly create slugs for logs
- fix log url (name vs slugs)
- display durations in build summaries
- fix rotation animation on chevrons
- fix mq event matchers (it matched too much events, resulting in weird update in UI)

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
Enhance debugging of custom steps
logviewer: fix 2 issues

- autoscroll did not work with wrapped line: dont wrap lines, and use scroll
- log viewer did not display one-liners

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
build page: enhance the previous build next build links

Those links are now utf-8 arrows, only displayed when they make sense
in case of unknown build, go back until we find an existing build

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
fix buildrequest route

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
fix dictionary modification inside loop

keys() actually return the copy of the key, while the implicit iterator does not allow to delete while iterating.

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
misc pylint + style fixes on remotecommand.py

+ better root causing of problem with pb.CopiedFailure

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>