20499 Commits

Author SHA1 Message Date
tushargite96
e36d64585b Update IBM Storwize drivers
IBM Storwize drivers are currently reporting
allocated_capacity_gb. Drivers should not report
this and let Cinder core take care of this value.

Closes-Bug: #1746223
Change-Id: I1c1600edb7c1323e8ad7396b3e5dc4652b04f9f2
2023-02-22 05:25:02 +00:00
Gorka Eguileor
09613c9706 Add missing extend_target driver method
The base target driver class is missing the extend_target method which
is called from the LVM driver.

Since it was missing there some drivers, such as the nvmeof base class,
also missed it when they were implemented.

This patch adds a base implementation that does nothing, since this is
usually the right thing to do for most drivers.

Change-Id: If009af0a385d9203bd74e42e822dca299a119ca7
2023-02-21 19:39:48 +01:00
Gorka Eguileor
a451acf357 LVM nvmet: Add support for multiple ip addresses
The nvmet target driver only supports single portals, which was all that
was available back on the original implementation, but now that it
supports the new connection information format it can provide
multiple portals.

This patch adds support to provide multiple portals when attaching a new
volume, that way os-brick can try the different portals when connecting a
volume until it finds one that works, making it more robust.

Thanks to this features it will also enable multipathing automatically
(without additional changes) once the NVMe-oF os-brick connector
supports it.

Since the new connection information format is necessary to pass
multiple portals it requires that the configuration option
``nvmeof_conn_info_version`` is set to ``2``.

The patch also deprecates the ``iscsi_secondary_ip_addresses``
configuration option in favor of the new
``target_secondary_ip_addresses``.  This is something we already did a
while back for ``iscsi_ip_address`` which was renamed in the same way to
``target_ip_address``.

Change-Id: Iccfbe62406b6202446e974487e0f91465a5d0fa3
2023-02-21 19:39:29 +01:00
Eric Harney
a87d24f363 Ceph backup: Remove leftover unicode comment
The code this was related to (utils.convert_str) was refactored
away a bit ago.

Change-Id: I865306503bf38d4b1974f2ab541c735da08b36f8
2023-02-21 11:23:49 -05:00
Eric Harney
7fcb8bbc87 Tests: Fix typo'd unit test name
"snpashots" -> "snapshots" to make it easier to
find this unit test.

Change-Id: I9a8bcb68f2c6f9a85b862e7bbb5dbf5a65486ae4
2023-02-21 12:43:54 +00:00
Atsushi Kawai
a92aa06e46 Hitachi: add GAD volume support
This patch adds Global-Active-Device("GAD")(*) volume support for
Hitachi VSP driver.
New properties will be added in configuration:
hbsd:topology sets to "active_active_mirror_volume" would specify a GAD
volume.
hitachi_mirror_xxx parameters would specify a secondary storage for GAD
volume.

(*) GAD is one of Hitachi storage product.
It can use volume replication to provide a HA environment for hosts
across systems and sites.

Implements: blueprint hitachi-gad-support
Change-Id: I4543cd036897b4db8b04011b808dd5af34439153
2023-02-20 05:56:27 +00:00
Zuul
e6637b94fa Merge "nvmeof: Support new connection properties" 2023-02-18 19:18:20 +00:00
Zuul
9bdf1a5135 Merge "Fix Migrations UTs using wrong DB" 2023-02-18 15:45:35 +00:00
Zuul
131b0b5913 Merge "Followup: Correct typo in releasenote" 2023-02-18 15:45:31 +00:00
Zuul
cea8848c0b Merge "Hitachi: add an option for host group name format" 2023-02-18 08:35:42 +00:00
Zuul
0660664d77 Merge "Add 3rd Party CI requirements list" 2023-02-18 00:17:38 +00:00
Zuul
764c360c19 Merge "Ceph minimum client on cinder-plugin-ceph-tempest job enable" 2023-02-17 22:12:48 +00:00
Zuul
126855101c Merge "Clear up _reschedule() return value" 2023-02-17 22:12:44 +00:00
Zuul
7fa35fe17c Merge "Remove unsupported options from cinder-manage quota command" 2023-02-17 20:53:51 +00:00
Zuul
3688707f52 Merge "Add install docs for LINSTOR driver dependencies" 2023-02-17 20:29:12 +00:00
Zuul
bc8fcd7c3e Merge "Fix service token documentation" 2023-02-17 20:29:08 +00:00
Atsushi Kawai
5363d21d57 Hitachi: add an option for host group name format
This patch is to add an configuration option which specifies
hostgroup(or iSCSI target) name format.

Implements: blueprint hitachi-vsp-add-hostgroup-name-format-option
Change-Id: Icf3c8dc4ba2fd96cda01d778e3a49406fec3b9db
2023-02-17 18:36:14 +00:00
Zuul
5a3664ae2e Merge "Storage node configuration" 2023-02-17 18:21:37 +00:00
Zuul
1fef72468c Merge "Hitachi: support new storages" 2023-02-17 18:21:33 +00:00
Zuul
e580cee1b9 Merge "[Pure Storage] Add new array status for replication capability" 2023-02-17 18:05:36 +00:00
Simon Dodsley
63bd2d89f3 Add 3rd Party CI requirements list
Change-Id: Ie6ed5b72a419948bd617f04cc87a57094203416e
2023-02-17 12:41:14 -05:00
Zuul
583482501b Merge "Hitachi: Update retype and support storage assisted migration" 2023-02-17 16:30:03 +00:00
Zuul
d6fd72b47d Merge "[SVf] As part of Flashcopy 2.0 adding config parameter to support volumegroup" 2023-02-17 00:31:58 +00:00
Zuul
e596a54219 Merge "nvmet: Fix setup methods" 2023-02-17 00:05:28 +00:00
Simon Dodsley
a87eb13648 [Pure Storage] Add new array status for replication capability
This patch adds a new field for the `get pools` command to show
what replication capability the backend array currently has.

This is based on the status of current array connections in the
backend array.

Response will be `async`, `sync`. `sync` or `trisync`.

`trisync` implies support for `sync` and `async`.
`sync` implies support for `async`.

Change-Id: I46cbb986ed73335270d6dd4ad197197648b55506
2023-02-16 16:26:59 -05:00
Atsushi Kawai
d148f41664 Hitachi: Update retype and support storage assisted migration
This patch update retype operation to different pool and support storage
assisted migration.
Storage assisted migration feature is also used when retype a volume,
which doesn't have any snapshots, to different pool.

Implements: blueprint hitachi-vsp-update-retype
Change-Id: I1f992f7986652098656662bf129b1dd8427ac694
2023-02-16 05:36:08 +00:00
Zuul
b651965b24 Merge "Update hacking to 5.0 series" 2023-02-15 17:46:47 +00:00
sathya-narayana
b17b830668 [SVf] As part of Flashcopy 2.0 adding config parameter to support volumegroup
[Spectrum Virtualize family] As part of Flashcopy 2.0 implementation,
added configuration parameter 'storwize_volume_group' to support volume
group feature.

Implements: blueprint ibm-svf-volumegroup
Change-Id: If9ee94815bb257fb24bfcfca2bee9e64dd499636
2023-02-15 15:00:01 +00:00
Zuul
1a2b0796a2 Merge "Doc: Branding change for Spectrum Virtualize family" 2023-02-15 11:00:19 +00:00
Zuul
4980ba7550 Merge "Dell PowerMax Driver - Add support for Unisphere for PowerMax 10.0" 2023-02-14 22:56:24 +00:00
Zuul
d78d7aa96f Merge "Imported Translations from Zanata" 2023-02-14 16:25:49 +00:00
Zuul
724df7aac4 Merge "Objects: Make OPTIONAL_FIELDS a tuple" 2023-02-14 15:50:37 +00:00
OpenStack Proposal Bot
940e798b0d Imported Translations from Zanata
For more information about this automatic import see:
https://docs.openstack.org/i18n/latest/reviewing-translation-import.html

Change-Id: Ib745cab5ff0d870c4af201bca672e883e7227df4
2023-02-14 03:30:45 +00:00
Mounika Sreeram
972d22ee92 Doc: Branding change for Spectrum Virtualize family
IBM branding name 'Spectrum Virtualize family' is changed
to 'Storage Virtualize family'. Made the branding name change at
all the places in documentation.

Also, Corrected the hyperlink for 'IBM Documentation' by removing
"en" in the link. Instead of making english as default, the link
will redirect based on the browser regional language settings.

Change-Id: Icd668ee471e6b2e33b20f6abcfb7510a4e5e79bb
2023-02-13 08:19:38 +00:00
Zuul
60e080803d Merge "Require tooz>=2.8.0" 2023-02-13 05:14:22 +00:00
Eric Harney
a1d6392862 Require tooz>=2.8.0
This release of tooz contains
54448e9d Replace md5 with oslo version

which is needed for FIPS support.

Change-Id: I506968a245afa2a17be343d1e923d21f0b298cd7
2023-02-10 15:55:21 -05:00
Zuul
2c0781a809 Merge "Bump oslo.versionedobjects to 2.4.0+" 2023-02-10 18:24:21 +00:00
Zuul
3470a800af Merge "Update to hacking 4.1.0" 2023-02-10 18:23:37 +00:00
Zuul
29e8e64486 Merge "Bump boto3 requirement to 1.18.49" 2023-02-10 18:23:32 +00:00
Eric Harney
5899ccd023 Update hacking to 5.0 series
Update hacking to 5.0.

Change-Id: I5a3ece77717e88c7ae3e8854d89b4a351c8cf087
2023-02-10 11:46:57 -05:00
Eric Harney
af749d3107 Objects: Make OPTIONAL_FIELDS a tuple
In some objects this is a list, in some it is a tuple.

Just use tuples for consistency.

Change-Id: I14871e2abd8680db72ab8e3d9ca873cb608e4039
2023-02-09 12:08:59 -05:00
Rajat Dhasmana
8b17248abc Followup: Correct typo in releasenote
This is a followup to 78f8a7bbe6eb12cd2b249eec456a00642181d8af
to correct typo of 'externals' to 'external'.

Change-Id: I88acb611479cbcca541d62e7e16e0b82e159ecd6
2023-02-09 07:20:38 +00:00
Zuul
3cdf861bef Merge "Handle external events in extend volume" 2023-02-08 18:39:50 +00:00
OpenStack Proposal Bot
eec61650ea Imported Translations from Zanata
For more information about this automatic import see:
https://docs.openstack.org/i18n/latest/reviewing-translation-import.html

Change-Id: Ia21087c2e63affd10d45bde86cb0ee938942196f
2023-02-08 03:08:46 +00:00
Zuul
e43efa0408 Merge "RBD: Default rbd_secret_uuid to the cluster FSID" 2023-02-08 01:15:03 +00:00
Gorka Eguileor
7c79e2115a Fix Migrations UTs using wrong DB
Our current migrations unit tests are NOT doing the migrations in the DB
they should.

Migrations are being run in whatever was last used for the normal cinder
UTs, which is SQLite.

This creates some issues such as:

- Migrations can not be run independently, because no "normal cinder UT"
  has been run before, so there is no DB that the migration can use.

  This is easy to test:

  $ . .tox/py310/bin/activate
  $ stestr run -n cinder.tests.unit.db.test_migrations

  That will fail with oslo_db.exception.DBNonExistentDatabase because no
  previous test has created the sqlite DB.

  If we were to run any other UT before them they would work.

- Migrations that run conditional code based on the DB Engine will fail,
  even when running things conditionally.

  For example a migration that uses `index_exists` that only works on
  MySQL will fail even when doing it conditionally and only running it
  on MySQL, because it will actually be run in SQLite:

  is_mysql = engine.dialect.name == 'mysql'
  idx_name = f'{table}_deleted_project_id_idx' +
  if is_mysql and utils.index_exists(engine, table, idx_name):

This patch fixes this by making sure the get_engine method in Cinder
returns the same engine that the migration code is using.

Change-Id: I15f6e4bd180e9a5af82c76d61658a3cb1eac22c8
2023-02-07 13:17:52 +01:00
Gorka Eguileor
8e7ead7c27 LVM nvmet: Add support for shared subsystems
LVM target drivers usually only support unique subsystems/targets, so a
specific subsystem/target is created for each volume.

While this is good from a deployment point of view, it is insufficient
from a testing perspective, since it limits the code paths that can be
tested in os-brick.

Being able to test these 2 different paths in os-brick is very
important, because the shared case usually present very particular
issues: Leftover devices caused by race conditions between nova and
cinder, premature subsystem/target disconnection, not disconnecting
subsystem/target, etc.

Thanks to this patch we'll be able to increase the testing possibilities
of the NVMe-oF os-brick connector to cover combinations of:

- Different connection properties formats: old & new
- Different target sharing: shared & non shared

Change-Id: I396db66f72fbf1f31f279d4431c64c9004a1a665
2023-02-03 14:56:19 +01:00
Gorka Eguileor
daa803b8ee LVM: terminate_connection fails if no initiator
The LVM driver assumes that all connecting hosts will have the iSCSI
initiator installed and configured. If they don't, then there won't be
an "initiator" key in the connector properties dictionary and the call
to terminate connection will always fail with a KeyError exception on
the 'initiator' key.

This is the case if we don't have iSCSI configured on the computes
because we are only using NVMe-oF volumes with the nvmet target.

This patch starts using the dictionary ``get`` method so there is no
failure even when the keys don't exist, and it also differentiates by
target type so they target the identifier they care about, which is the
``initiator`` for iSCSI and ``nqn`` for NVMe-oF.

Closes-Bug: #1966513
Related-Bug: #1786327
Change-Id: Ie967a42188bd020178cb7af527e3dd3ab8975a3d
2023-02-03 14:56:19 +01:00
Gorka Eguileor
8e9a347c0e nvmeof: Support new connection properties
The os-brick nvmeof connector supports  2 different connection
properties formats, the original one and a later one that added support
to multiple portals as well as replicated devices for a software RAID.

Targets that inherit from the nvmeof base target (spdk and nvmet)
supported the original connection properties format, but it was decided
that new features, such as multipathing, would only be added to os-brick
in the new format code path.

This patch adds support to the nvmeof target class (and specifically to
the nvmet target, though it should work for other as well) for the new
connection properties format to enable support for future features.

Support for the old connection properties has been maintained, and is
still the default, since we need an easy way to exert the old code path
in os-brick to ensure that the code still works.

Configuration option ``nvmeof_conn_info_version`` is used to select what
version of the connection properties the nvmet target should use. With
version 1 being the old format and version 2 the new format. Defaults to
the old format to preserve existing behavior.

Change-Id: If3f7f66a5cd23604cc81a6973304db9f9018fdb3
2023-02-03 14:56:19 +01:00
Gorka Eguileor
d892637112 nvmet: Fix setup methods
On ghange Icae9802713867fa148bc041c86beb010086dacc9 we changed from
using the nvmet CLI interface to using it as a Python library.

In that change we incorrectly wrote the ``setup`` methods signature and
they are all missing the ``err_func`` parameter.  It is not failing
because that's on the non-privileged side of things, and then on the
privileged side it forcefully adds the parameter on the call to the
actual library.

This patch adds the missing parameter and handles it on the
non-privileged side.

Change-Id: I615497616d87dfc1683977feafcfbfb9fab8e248
2023-02-03 14:54:09 +01:00