Make discovery of version for KS catalog smarter.

Instead of relying on the configuration file for determining how
the catalog should be parsed, make it flexible by inspecting the
structure of the service catalog passed to it.

Fixes bug 1180486

Change-Id: I0c8caf4c8365bf25377ab3a249ac280d8add0f17
Mark additional strings as translatable

Some variables and templates variables that should be translatable
weren't marked as such.

Fixes bug #1180316

Change-Id: I90baf19c4bea09c126f8ed225777037194f5331f
Use ugettext_lazy instead of ugettext.

We should use ugettext_lazy to let users in different languages
get correct translation.Though in views or similar places
we can use ugettext with no problems, we should make code
style consistent.

This also fix the issues that the django proxy objects appear on the
launching instance page instead of translated strings. Now the
translated quota strings are handled correctly.

Fixes: bug #1178722

Change-Id: I76f0d31e6546d70e5ece7e86a06f7eefd04861d2
Shows a warning message when deleting a container that contains data.

We cannot delete objects in the container since there may be millions
of objects in that. The batch deletion should be done in swift instead
of Horizon. The batch remove of objects function is only in swift CLI
command now. This commit replace the unclear message with a warning
message that tells the user the container is not empy.

Related bug: https://bugs.launchpad.net/horizon/+bug/1034890

Fixes bug: #1096084

Change-Id: I59b46a3535b8654734c3dae4eec916ab1b53c716
Refactored the templates code

Created generic template _workflow_base.html
in horizon/templates/horizon/common folder
with 'workflow.name' to replace multiple nearly
identical templates with different titles.

Implements blueprint dry-templates

Change-Id: Ieb14e263381020ed6604149ff9295f8cc814a9e6
Always return a list from VolumeTableMixIn._get*

Returning None from these methods leads to TypeError
(None is not iterable)

Fixes: bug #1182075
Change-Id: Ia5f5fe78669bbaed599b7dd5cae1beb69bde7796
Fix run_tests documentation on skip-selenium flag

Change-Id: Ia625f0b06c7e956366e789d2db18e453915383ee
Fixes: bug #1179956
Display table actions BatchActions buttons in the correct locale

The table actions' verbose names were getting initialised too
early. The most noticeable effect was all the red buttons being
displayed in English no matter the locale.

Fixes bug #1126324

Change-Id: I8e21a1ec73f11129317249d103c081e90fa13a34
Add a logging handler for the cinderclient to the local_settings.py.example

This handles the Horizon piece of the API client logging wonderfulness

Change-Id: Id2293898557b2fbbde092d8b67044482caf25c09
Fixes: Bug 1182678
Merge "Allow workflows to support multipart POST."
Merge "register replace_underscores filter for templates"
parse_isotime filter to parse a date string.

This then allows the resulting date value to be piped
to one of the standard django date/time format filters

This is identical to oslo timeutils parse_isotime, but annotated with
@register.filter

Required for blueprint: heat-ui

Change-Id: Ibecca77d50bb5c0df59e07e9572069215229f60a
Merge "Mark additional strings as translatable"
Merge "Fix run_tests documentation on skip-selenium flag"
Merge "Display table actions BatchActions buttons in the correct locale"
Access to heat API via python-heatclient

This adds python-heatclient as a dependency and a simple function
to get a client reference.

Required for blueprint: heat-ui

Change-Id: I5f7d8c7c17f6e78d3f88cc39d50826416b48ad2c
Preparing for Heat tests

Required for blueprint: heat-ui

Change-Id: Ibac4ab7d238ab946a096767218faf9e222699cb6
Merge "parse_isotime filter to parse a date string."
Merge "Make discovery of version for KS catalog smarter."
Merge "Always return a list from VolumeTableMixIn._get*"