blueprint hds-hus-iscsi-cinder-driver
This is the first rev of Hitachi Data Systems Cinder iSCSI driver.
This driver works with HUS (df850) array.
This driver contains all the base-line features specified for Havana release.
Amended into this submission are changes from code-reviews.
Docimpact: Bug #1180648
Change-Id: Ia27d076443b10da2c653456f9292dd192362b853
Currently tools/conf/generate_sample.sh collect options from project
modules by importing each module and looking at it's global variables
for instances of classes derived from cfg.Opt (or lists of such
instances). Sometimes this import can fail due to various reasons,
cfg.DuplicateOptError for example. And if import fails no options
from imported module written to sample config file. Error reporting
will at least warn user that some of options didn't get into sample
config.
Change-Id: I831464b1c1575c106d866a936a50ec74b2d44e59
Fixes: bug #1182611
Force deletes were eventually failing on the volume manager layer due to
being in an attached state. This will check that up front to inform the
user that they need to detach first.
Fixes: bug #1164929
Change-Id: I24ade24fd750dc647331ef25b835f45f29c10fd7
Incorrect policy and authorization extension name in
contrib quota api. Legacy from nova.
Change-Id: Ida8262ad63d6f881dd50a385a9913c2ed57b441c
Fixes: bug #1185974
Rename tools/pip-requires to requirements.txt and tools/test-requires
to test-requirements.txt. These are standard files, and tools in the
general world are growing intelligence about them.
Change-Id: Ifb2735151dc8c7f89ec01d237226669f7051ffa8
Fixes: bug #1179008
The 3PAR REST API server has a limited number of active sessions.
This change to the driver removes the ability of keeping the
REST API session alive for the life of the driver. Now on every
driver entry point, which is synchronized, we login to the 3PAR
and when the work is complete, we log out of the 3PAR. This has
the side affect of more overhead to the 3PAR but helps eliminate
failed commands due to maximum sessions reached to the 3PAR.
This patch also changes the locking to be the same lock for all
driver entry points and adds locking around the volume stats.
This patch also migrates all of the client code access to the common
class, which simplifies the drivers.
Change-Id: Ibcec4cf1781262521ccbdf99c4ba4167634a09c4
Copy paste when drivers were moved out of san.py carried
over the copyright that was included in that file.
Remove that and update.
Change-Id: I38315009a41b9a868c674f63ebf449a78642b2a4
API service now returns a 404 if the volume type that the
user is trying to delete doesn't exist.
Fixed Bug 1090306.
Change-Id: I3c1d4fdac1c2492f532ab4dbfd5c7aaf0ffa6fa4
If, when using a Ceph as a backend for Cinder and Glance, you
create a volume from a Glance image, the request is actioned
in one of two ways; (1) if Glance does not supply sufficient
information to Cinder, a full copy is made of the Glance
image or (2) Ceph uses it's copy-on-write capability to do a
clone. If a full copy is done, the volume is marked as
Bootable=True but if a clone is done it is not.
This does not appear to break nova boot from volume at present
but the status displayed by the cinder client is incorrect.
Change-Id: I2959fc3dfaf0e073781583019797bcd44f7789d6
Fixes: bug 1185533
Unescape share address string listed in nfs_shares_config so that
'x.y.z.w:/foo\040bar' would become 'x.y.z.w:/foo bar' to support
mounting shares with spaces in name.
Use stat command to get available and total space on device instead
of df since it's output is easier to parse.
Fixes: bug #1180984
Change-Id: I552aba91ca8db14130f854c739594a818186bbe2
Fixed “Host already exists” error by,
* Screen scraping error message and extracting the host name
used by the 3PAR backend.
* Cache the host name used by the 3PAR backend for subsequent
methods using host name.
* After a restart, and 3PAR host name it no longer available,
retrieve 3PAR host name using wwn/iqn, if a terminate_connection
fails.
Fixes bug 1182134
Change-Id: Ia08a311af168ae19dbe7c1405db9c606fd878e53
A bug in PBR levels less than 0.5.10 causes the
/usr/lib/python2.X/site-packages/cinder/db/sqlalchemy/migrate_repo/migrate.cfg
file to not be properly installed. This causes 'cinder-manage db sync'
to fail due to the missing file.
This change sets the required PBR level to >=0.5.10,<0.6 to avoid the problem.
In the case that user already has a 0.5.X level of PBR installed that is less
than 0.5.10 it should be updated rather than encountering issues as our
test system did.
Change-Id: I532158277a4acbb2f8cb75d03c91097e6d7e0312
fixes: bug 1182203
Remove execute permissions from test_volumes.py and
test_storwize_svc.py, which caused the tests defined in them
to be skipped.
Fixing the permissions caused test_create_volume_with_volume_type to
execute, which fails. The cause of the failure is that
(1) LoggingVolumeDriver doesn't implement get_volume_stats(), and
(2) The fake RPC doesn't pass the statistics to the scheduler for
some reason.
Because this test doesn't test the scheduler, just change to use the
simple scheduler and work around the issue.
Change-Id: Ie01331d484c5c48c78b626eff1ad793dbbe7182c
Fixes: bug 1183416
- engine and session handling code is reused
- integrity errors caused by duplicating entries
are handled properly
- the base class for models is mostly reused
(the only exception is SoftDeleteMixin, which
requires changes to existing DB schema; this
will be implemented in BP db-unique-keys)
- use common exceptions handling code
Blueprint: db-session-cleanup
Change-Id: I7f5eb53daddc57066af9c73caa633b37a2afd9c2
The copy image-to-volume errors weren't being handled
properly and the result was the lvcreate being retried
even though the lvcreate itself succeeded.
The result of this was misleading errors stating that
the volume couldn't be created because it already existed
(which it did, becuase the create itself was succesful).
Fixes bug: 1183283
Change-Id: I23f05fe64475c3efe285e05a258c4625b801375c
glanceclient's v2 client needs to also have its _get_member_model()
stubbed out as well, to avoid attempts to reach 'fake_host' during
client instantiation.
Update: Only stub when _get_member_model() when required.
Change-Id: I943cbb017ccdbe4f6c994bc83cbefe8693f4672b
Fixes: bug #1185178.