AttributeError at attaching a non-existent volume

When user tries to attach a non-existent volume, AttributeError
exception is thrown in get_data function, where the right behavior
is returning [].

This patch is based in the solution proposed by Matthew D. Wood.

Change-Id: Ib6c5f83845e0056865a8ace82d9e2f4351d4be3e
Closes-Bug: #1288419
Adding cluster_template and cluster panels for Sahara

The cluster_template and cluster panels give the ability
to define and launch a hadoop cluster (made from
nodegroup_templates).  They are in the same commit because
some of the functionality of cluster_templates requires
that the cluster panel also exist.
This code was originally from:
https://github.com/openstack/sahara-dashboard

Change-Id: I85534b0dd97ce5def5f3a447d68c6aa206964f0a
Partial-Implements: blueprint merge-sahara-dashboard
Co-Authored-By: Nikita Konovalov <nkonovalov@mirantis.com>
Co-Authored-By: Dmitry Mescheryakov <dmescheryakov@mirantis.com>
Rename Host to Allowed Host

To avoid confusion between nova hosts and
database user host e.g. as used in a grant
statement we will rename that one to
'Allowed Host'

Updated launch dialog and users table to
use 'Allowed Host' consistently.
Updated launch dialog help text to clean
up some of the descriptions

Change-Id: Ice39cd6712eb757a4d0f5beaedcda580fbeb4acb
Closes-Bug: #1342134
Made import key pair examples more specific.

Removed image specific ssh examples when using import key pair feature under access and security. Replaced with a single generic example.

Closes-bug: 1326291
Change-Id: I2e941e95d72cbef1da7e597f82b5d4b541efb72b
Settings page ChangePassword page and their tests

Two new pages added: Settings page and ChangePassword page.
To test their functionality I wrote two tests:
1. test_user_settings_change
 * changes the system's language
 * changes the timezone
 * changes the number of items per page (page size)
2. test_password_change:
   changes the password, verifies it was indeed changed and
   resets to default password.

To allow the above I've made few changes in other places:
* projectpage - added the go_to_settings_page method.
* helpers - added Selenium's implicit wait for self.driver
  in order to use page_timeout for pages that don't load
  instantly.

https://wiki.openstack.org/wiki/Horizon/Testing/UI

Partially implements blueprint: selenium-integration-testing

Change-Id: I24e01cd13d4a63ffd82505e4fd9cc95ba887e882
Tolerate service catalog and endpoint connection errors

This is a fix for the issues encountered when a service is not
configured or a service endpoint is not reachable. This fix
will add tolerance for these errors so that an error message is
displayed but the dashboard page will still load, not an error page.
This makes it easier for the user to recover by allowing them to
go to a different page, select a different region, or logout. This
makes sense in many cases such as when a region only contains an
image service endpoint, or when a single endpoint is not reachable
for whatever reason.

It also adds permissions to the panels that require compute or
image services so that the dashboard will not display them if
the service is not configured.

To test these changes you will need to set up your keystone service
catalog so that not all services are available in all regions, or
some of the service endpoints are not reachable.

Change-Id: Ie04699d1fb1d4db13a7f4dcf1bdfd23bf21aab80
Closes-Bug: 1323811
Closes-Bug: 1207636
Add a proper IPv4 sorter for jquery-tablesort

The default implementation provided with tablesorter uses a busted
regex and nonsensical formatter.  Add an explicit IPv4 parser/formatter
to Horizon and use it instead.

Closes-Bug: 1342266
Change-Id: I13c709f6171f8e7214b8a3ef15ddf441806df4c2
Add support for trove incremental backups

Added extra column to backups tables (under instances
and under backups) that will show Yes / No if the
backup is incremental (ie it has a parent)

When you drill down into backup details we now display
the name of the backup parent if this is an
incremental backup. This is displayed as a link with
the backup name so it is navigable

When you create a new backup you can now specify
an existing backup to use as the parent

Note: At some point we should probably have the
create backup dialog filter the available parents
based on the current selection for the instance.
However, so far I haven't worked out how to make
the backup parent choiceField change dynamically
based on user updates to the instance choiceField

Change-Id: I8bc70805aae50a019da3915f8e7aff25f6a7bbc6
Implements: blueprint trove-incremental-backup
Add knobs for setting MAC learning on ports

If the Neutron MAC learning API extension is supported, allow user to enable it
for a port. Also display the current MAC learning state in the Ports table and
Port Detail page.

Change-Id: Ia4c4e9a4116527aae8b5488ff8a75eb4113bb8cf
Implements: blueprint mac-learning-knobs
Merge "Made import key pair examples more specific."
Merge "Add knobs for setting MAC learning on ports"
Merge "Add a proper IPv4 sorter for jquery-tablesort"
Merge "Add support for trove incremental backups"
Replace UserManager with None in tests

Don't access keystoneclient's UserManager in tests. This should be
considered private data of keystoneclient and is not actually used by
horizon tests.

Change-Id: I261e79b31dfc7388adb3dc63a3a5e54042f05e54
Closes-Bug: #1347236
Merge "Settings page ChangePassword page and their tests"
Merge "Tolerate service catalog and endpoint connection errors"
Merge "Adding cluster_template and cluster panels for Sahara"
Merge "AttributeError at attaching a non-existent volume"
Merge "Rename Host to Allowed Host"