3PAR with pool-aware-cinder-scheduler

HP 3PAR support for the pool-aware scheduler.
Adds support for a list of CPGs (pools).  Uses
model update when our volume-type CPG is used
instead of the scheduler selected CPG.

In cinder.conf, hp3par_cpg now accepts a list of CPGs.

DocImpact
Implements: blueprint pool-aware-cinder-scheduler-hp3par
Change-Id: I74ef0af5390311eb1a529e0d5d4875c4f7d04156
3PAR migrate without losing type settings

Leverage retype to fix migrate.  It was losing type settings.

Closes-Bug: 1356608
Change-Id: Ic4d5233533abf65e4784b0e89f5793a6cd1ce521
HP 3PAR: Don't ignore extra-specs snap_cpg when missing cpg

When snap_cpg is specified in extra-specs, it should be used.
For some reason, it was being ignored when extra-specs did not
also specify a user cpg.

When using a volume-type, the snapCPG should come from (in this order
of preference):
1. extra specs snap_cpg,
2. extra specs cpg,
3. config hp3par_cpg_snap,
4. config hp3par_cpg.

Change-Id: I649e3dc49f7775a8071229fc315f0ee5f23aa833
Closes-Bug: 1368972
check the configuration item glance_num_retries

we need to to check the value of the configuration item glance_num_retries
in the code in order to ensure the " glance_num_retries " is equal or greater
than 0

Change-Id: I661ee883f3e1009e7fb242e0df2fa130eb8daa66
Closes-Bug: #1372452
Move SolidFire driver from httplib to requests

The SolidFire driver has been pretty static for a number of
years now, this change is to move from httplib for API calls
to requests.  There are a number of advantages to this, including
performance, simplicity and ability to add things like ssl support
easily.

In addtion this change removes the confusing looping/retry mechanisms
that were in the issue_api_request method and replaces it with a
retry decorator for the exceptions we're interested in retrying.

Finally, I realize that my unit tests suck!  That will be one of the
follow up items after a bit more clean up in the driver.

Change-Id: Icc4cf601bffddb057f35537f3870c45dd5eb67cc
Remove vol_type_id cast to str

Volume Type ID is string field, so we don't need to cast it
to str one more time

Change-Id: I8dcbfb770c412624d59c80bebe00d8c27ab0f823
Export cinder volumes only if the status is 'in-use'

Currently, cinder volumes are exported both 'in-use' and 'available'
after restarting cinder-volume service.
This behavior was introduced following commit.

  commit ffefe18334a9456250e1b6ff88b7b47fb366f374
  Author: Zhiteng Huang <zhithuang@ebaysf.com>
  Date: Sat Aug 23 18:32:57 2014 +0000

If the volumes are attached to nova instances, they should be exported
via tgtd after restarting cinder-volume.
But the volumes which are not attached to instances must not be exported
because everyone can connect these volumes.

This patch changes volume export behavior that exports a volume only if
the volume status is 'in-use'.

Change-Id: I4c598c240b9290c81bd8001e5a0720c8c329aeb9
Signed-off-by: Mitsuhiro Tanino <mitsuhiro.tanino@hds.com>
Closes-bug: #1381106
Merge "Move SolidFire driver from httplib to requests"
Merge "3PAR with pool-aware-cinder-scheduler"
Merge "3PAR migrate without losing type settings"
Merge "HP 3PAR: Don't ignore extra-specs snap_cpg when missing cpg"
Merge "Export cinder volumes only if the status is 'in-use'"
Merge "check the configuration item glance_num_retries"
Fix LVM iSCSI driver tgtadm CHAP authentication

Currently CHAP Authentication in LVM iSCSI driver with tgtadm does not work.
This is because the tgtadm helper creates the target configuration file
with an 'IncomingUser' entry, which is ignored by tgtd.
This patch fixes it to 'incominguser'.

Change-Id: I14871985a2a916834122f849238f05b75726bc1a
Closes-Bug: #1329214
Merge "Remove vol_type_id cast to str"
Merge "Fix LVM iSCSI driver tgtadm CHAP authentication"