The Tegile driver will support the iSCSI and FC protocols and it will
include the minimum set of features.
[Supported Protocol]
- iSCSI, FC
[Supported Feature]
- Volume Create/Delete
- Volume Attach/Detach
- Snapshot Create/Delete
- Create Volume from Snapshot
- Get Volume Stats
- Copy Image to Volume,
- Copy Volume to Image
- Clone Volume
- Extend Volume
Tegile has setup a CI. It will report as "Tegile Storage CI".
DocImpact
Implements: blueprint tegile-volume-driver
Change-Id: Ia0e6c320964f3955d6c7d4dcff4a0241a3960495
This patch refactors the HP XP driver to be HPE XP.
This is being done because the company responsible for
this driver is now Hewlett Packard Enterprise (HPE).
The driver is now located in the cinder/volume/drivers/hpe folder.
DocImpact
Implements: blueprint rebrand-hp-xp-driver
Change-Id: Ia16d39b9fec299662c97c236215a4e1aec44171a
As of this commit, the following tests should now be working with Python 3:
- cinder.tests.unit.api.contrib.test_cgsnapshots
- cinder.tests.unit.api.contrib.test_scheduler_hints
- cinder.tests.unit.api.contrib.test_snapshot_actions
- cinder.tests.unit.api.contrib.test_snapshot_manage
- cinder.tests.unit.api.contrib.test_snapshot_unmanage
- cinder.tests.unit.api.contrib.test_volume_encryption_metadata
- cinder.tests.unit.api.contrib.test_volume_host_attribute
- cinder.tests.unit.api.contrib.test_volume_manage
- cinder.tests.unit.api.contrib.test_volume_migration_status_attribute
- cinder.tests.unit.api.contrib.test_volume_tenant_attribute
- cinder.tests.unit.api.contrib.test_volume_unmanage
- cinder.tests.unit.api.v2.test_volumes
Most changes in this patch:
- make sure that Request.body is set to bytes;
- replace jsonutils.dumps with jsonutils.dump_as_bytes;
- replace json.loads with oslo_serialization.jsonutils.loads;
- replace dict.iteritems with dict.items.
Partial-Implements: blueprint cinder-python3
Change-Id: Icbb96ff84b7012b58f7296eea4fbcd620e081614
This patch introduces Coho Data volume driver along with unit tests.
Implements: blueprint coho-cinder-driver
DocImpact
Documentation for setting up the Coho driver and enabling it
in Cinder will be provided in a separate patch.
Change-Id: I06a66d10add9132d0f3afca054d68094ddfb4da0
Signed-off-by: Bardia Keyoumarsi <bardia.keyoumarsi@cohodata.com>
The Scality SRB kernel-driver is being re-designed to optimize for
specific workloads, which are (initially) not compatible with VM-style
block device access. Not to confuse users, we believe it's advisable to
remove the Cinder SRB driver in the meantime.
This reverts commit a23f17f8cebe5e1e57f675aedf6272257257d1b7.
Some references to the SRB driver and test modules added in later
commits are removed as well.
Conflicts:
cinder/tests/unit/test_srb.py
cinder/volume/drivers/srb.py
etc/cinder/rootwrap.d/volume.filters
See: 2f9e4163f42ae5246fd997b9f35e16d3d97be54f
See: 3fda737f53824170bd59eb6e8ce2e991c89c3c1d
Change-Id: Ic9d79b09363ef904932128f63371ba01a15c5d31
* Replace xrange() with six.moves.range()
* Replace filter() with list-comprehension to get a list on Python 3.
* get_formatted_wwn(): join byte strings with b':' instead of ':'
* ZoneManager: don't pass arguments to object.__new__()
* tests-py3.txt: add zonemanager tests
Partial-Implements: blueprint cinder-python3
Change-Id: Ia3fcd816c5afd7a08b8769fbc9d2839b70c8c3fb
Change default preferred node in
StorwizeSVCDriver.initialize_connection(). For fiber channel without
multipath, pick the first node from the list of sorted nodes, to have
a determinist preferred node. The list of nodes is created indirectly
using list(set(nodes)) which doesn't have a determinist order. On
Python 3, the hash function is randomized, and so list(set()) has an
unknown order.
A similar change was done for volume throttling in the change
Icf7141f772397c7ac08f0f1e21ad74cb86a06351 to port the code
to Python 3.
Other changes:
* Use assertSetEqual() in test_storwize_svc to compare
initiator_target_map, because conn_wwpns has a random order on
Python 3.
* StorwizeSVCDriver._check_volume_copy_ops(): replace dict.items()
with list(dict.items()) to iterate on items. On Python 3,
dict.items() now returns a view instead of a copy. The loop
modifies the dictionary and a dict must not be modified while
iterating on it, we really need a copy of items.
* StorwizeHelpers: replace a/b with a//b to use integer division on
Python 3.
* tests-py3.txt: add cinder.tests.unit.test_storwize_svc
Partial-Implements: blueprint cinder-python3
Change-Id: I534a85928816d6cce921545e1820311aedd1b884
This patch refactors the HP LeftHand driver to be
HPE LeftHand.
This is being done because the company responsible for
this driver is now Hewlett Packard Enterprise (HPE).
The driver is now located in the cinder/volume/drivers/hpe
folder.
DocImpact
Implements: blueprint rebrand-hp-lefthand-driver
Change-Id: I42eb5b3a51d547e45338a4964f31e0aca2ce43d8
* Use oslo_serialization.base64.encode_as_text() to get Unicode on
Python 3.
* Replace sys.maxint with sys.maxsize, sys.maxint was removed in
Python 3.
* test_hpe3par: use list(set()) to get FCWWNs is the right order. On
Python 3, the hash function is randomized by default.
* test_hpe3par: fix client getWsApiVersion() to return a valid
version. Before, the comparison between mock.Mock and int raised a
TypeError.
* hpe_3par_common: set version to 3.0.2
* hpe_3par_iscsi: set version to 3.0.1
* tox.ini: add test_hpe3par to Python 3.4
Partial-Implements: blueprint cinder-python3
Change-Id: I2bed171c0db93b8ea83127a69a63c3bb2317b10b
* Replace base64.encodestring() with
oslo_serialization.base64.encode_as_text() to get Unicode
on Python 3.
* Replace string.upper(text) with text.upper()
* Replace string.replace(text, a, b) with text.replace(a, b)
* tox.ini: add test_xio to Python 3.4
Partial-Implements: blueprint cinder-python3
Change-Id: I75a5dee2fd1f8cf45dbf416b0353736a43efd8e8
CreateConsistencyGroupTask, WaitMigrationsCompleteTask: sort the lun
identifier keys to have a determinist order. On Python 3, the hash
function is randomized, so set() order is undefined and changes at
each run.
Other changes:
* Replace map() with list-comprehension to get a list on Python 3.
* Replace assertTrue(str.find(pattern) > 0) with
assertIn(pattern, str) to not fail if pattern is at the beginning
on the string. On Python 3, the hash function is randomized and so
parts of the provider_location are in a random order, it can be at
the beginning.
* tests-py3.txt: add cinder.tests.unit.test_emc_vnxdirect
Partial-Implements: blueprint cinder-python3
Change-Id: I114029c1c9862583e64781379001870a682ea42d
* Port prophetstor driver to Python 3
* Replace "except exception as e:" with "except Exception as e:"
to handle "Fexvisor failed to join the volume ..." and "Fexvisor
failed to remove the volume ..." errors. Here, lower case
"exception" is the cinder.exception module, not an exception class.
On Python 3, "except" requires exception classes.
* tests-py3.txt: add cinder.tests.unit.test_prophetstor_dpl
Partial-Implements: blueprint cinder-python3
Change-Id: I0447b62cc0afe5a10ecbc888dfb6608b69f977d2
* Replace base64.encodestring() with
oslo_serialization.base64.encode_as_text() to accept Unicode as
input (encoded to UTF-8). On Python 3, the function decodes base64
from ASCII to get Unicode.
* tests-py3.txt: add cinder.tests.unit.test_zfssa
Partial-Implements: blueprint cinder-python3
Change-Id: I29a1a752d4cad5796fba1f21fe88238cb4414717
* vzstorage: replace a/b with a//b to use integer division on
Python 3.
* fix os.path.exists mock: only override return for path /fake
(shares config)
* tests-py3.txt: add cinder.tests.unit.test_vzstorage
Note: remove also spaces in parameters in two functions calls to
respect the PEP 8.
Partial-Implements: blueprint cinder-python3
Change-Id: I7cee7009d8bc87cd0294e90cb2967f4560276994
On Python 3, unbound methods are regular functions: use pass
inspect.isfunction to inspect.getmembers().
tox.ini: add test_utils to Python 3.4.
Partial-Implements: blueprint cinder-python3
Change-Id: I4fe9936792a43aff301010780e86244bdf2d05de
* _filter_datastores(): replace filter() with list comprehension
to get a list on Python 3.
* tox.ini: add test_vmware_datastore to Python 3.4.
Partial-Implements: blueprint cinder-python3
Change-Id: Ide4e4adf012e155b99b528ddde937df1a48a079b
Fix the N325 check on Python 3: the AST changed between Python 2 and
Python 3 for try/except.
tox.ini: Add cinder.tests.unit.test_hacking to Python 3.4.
Partial-Implements: blueprint cinder-python3
Change-Id: I7c7d1c5e52f525ade14b13ecf2dec1681997da22
* Set configuration.nfs_oversub_ratio, otherwise tests
fail with TypeError on comparison between mock.Mock and int.
* tox.ini: add test_tintri to Python 3.4.
Change-Id: Ie2b5215795481bdfb11116876d83ef777a10c224
Partial-Implements: blueprint cinder-python3
* Replace ast.literal_eval(response.body) with response.json
* Use oslo_serialization.jsonutils.dump_as_bytes() to encode the
response to JSON as bytes for the HTTP body.
* tests-py3.txt: add cinder.tests.unit.api.contrib.test_admin_actions
Partial-Implements: blueprint cinder-python3
Change-Id: Ib30c701b9dbbcc774dfc5f19a7174ab318006206
* test_make_flat_dict(): only use one dictionary key. On Python 3,
the hash function is now randomized by default and so dictionary
keys are returned in a random order.
* Replace "not cmp(a, b) == 0" with "a != b"
* test_common: replace range(n) with list(range(n)) to get a list on
Python 3. On Python 3, range() now returns an iterator.
* Replace dict.items()[0] with list(dict.items()[0]). On Python 3,
dict.items() now returns a view which is not indexable.
* VolumeTypesController.index(): replace dict.values() with
list(dict.values()) to get a list on Python 3.
* test_xmlutil: use byte strings for XML
* test_extensions: use byte strings for HTTP body
* Add the following tests to tests-py3.txt:
- cinder.tests.unit.api.test_common
- cinder.tests.unit.api.test_extensions
- cinder.tests.unit.api.test_versions
- cinder.tests.unit.api.test_xmlutil
Partial-Implements: blueprint cinder-python3
Change-Id: I40c28f6b6a1cf72ce13774755153c8691b4d621b
* Replace dict.keys()[0] with list(data.keys())[0]. On Python 3,
dict.keys() now returns a view which is not indexable.
* Skip SSL tests on Python 3. Tests hang for an unknown reason, they
must be fixed later.
* Fix unit tests: HTTP body type is bytes, not Unicode.
* Debug.print_generator(): on Python 3, write into sys.stdout.buffer
instead of sys.stdout, because HTTP body type is bytes not Unicode.
* ResponseObject: encode serializer output to UTF-8 if it's Unicode.
* tox.ini: add the following tests to Python 3.4
- cinder.tests.unit.api.openstack.test_wsgi
- cinder.tests.unit.wsgi
Note: Ignore pylint error E1101 on sys.stdout.buffer. pylint on
Python 2 complains that the buffer attribute doesn't exist, whereas
the code is only executed on Python 3 and the attribute exists on
Python 3.
Related-Bug: #1505103
Partial-Implements: blueprint cinder-python3
Change-Id: I0db0e04010e41be71192a2e4db13829114ad6eef
* Replace dict.keys()[0] with list(dict.keys())[0]. On Python 3,
dict.keys() now returns a view which is not indexable.
* tests-py3.txt: add cinder.tests.unit.test_ibm_flashsystem
Partial-Implements: blueprint cinder-python3
Change-Id: Ic77145784acc8c88e77d50a5086019e69d15e6ff
* Replace dict.items()[0] with list(dict.items())[0], same for
dict.values()
* Replace dict.iteritems() with dict.items()
* Replace dict.itervalues() with dict.values()
* Replace a/b with a//b to get integer on Python 3.
* test_get_active_fc_targets(): ignore order when comparing active
FC targets. On Python 3, the hash function is randomized and so
dictionaries values are returned in a random order.
Partial-Implements: blueprint cinder-python3
Change-Id: If2c50606ae68b7f645bfdbe5aaf7510a512e709a