Commit Graph

1183 Commits (master)

Author SHA1 Message Date
Zuul b72f575e26 Merge "Remove egg_info from setup.cfg" 2023-11-14 19:38:46 +00:00
Zuul fb23a40a65 Merge "Revert "Dell PowerFlex password appears in plain text when creating a volume"" 2023-09-28 15:46:12 +00:00
Yian Zong bbc732c40e Revert "Dell PowerFlex password appears in plain text when creating a volume"
This reverts commit 33661ece80.

Reason for revert: breaks reading password from the config file

Change-Id: I840d8c4d66daf0ab8636617b42cdb47dd4313cc9
2023-09-28 07:48:06 +00:00
Zuul 07b0e4a94b Merge "Update master for stable/2023.2" 2023-09-25 14:56:44 +00:00
Zuul f3b11ddf9e Merge "Dell Powerflex: Add new VOLUME_ALREADY_MAPPED_ERROR" 2023-09-21 10:23:49 +00:00
Zuul 92d9963e6f Merge "Dell PowerFlex password appears in plain text when creating a volume from an image" 2023-09-20 22:15:07 +00:00
tony-saad 33661ece80 Dell PowerFlex password appears in plain text when creating a volume
from an image

This patch fixes the issue of password getting writen in plain text in
logs while creating a new volume. It created a new logger with default
log level at error.

Closes-Bug: #2003179
Change-Id: I0292a30f402e5acddd8bbc31dfaef12ce24bf0b9
2023-09-20 10:47:06 +00:00
tony-saad 42d9a89280 Dell Powerflex: Add new VOLUME_ALREADY_MAPPED_ERROR
Dell Powerflex 4.x changed the error code of VOLUME_ALREADY_MAPPED_ERROR
to 4037. This patch adds that error code.

Closes-Bug: #2013749
Change-Id: I928c97ea977f6d0a0b654f15c80c00523c141406
2023-09-20 08:47:24 +02:00
OpenStack Release Bot 034a6f247a Update master for stable/2023.2
Add file to the reno documentation build to show release notes for

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on

Sem-Ver: feature
Change-Id: I25bef272ded6c7c963c6ad0f95103fe421fa8fe7
2023-09-08 14:55:39 +00:00
Brian Rosmaita eea10dea21 Use generic testing template
Change If402f9ae0ca06fec0 replaced cycle-specific testing templates
that had to be changed in each project's zuul config file with a
generic template that only needs to be updated in one place, namely,
in the openstack-zuul-jobs repo.

Apparently os-brick didn't get the memo, so we fix that now.

Change-Id: I8202283d5bd5ecede3414fe3e92e95e743df2f67
2023-09-01 17:48:18 -04:00
Zuul bb730f37cd Merge "Check paths before extending device" 2023-08-25 16:32:11 +00:00
whoami-rajat 71627c56ac Fix unit tests when hostid file exists
After merging change I0b60f9078f23f8464d8234841645ed520e8ba655, we
noticed an issue with existing unit tests which started failing.
The reason is 'nvme_hostid' was an additional parameter returned
in the response while fetching connector properties from nvme
This is environment specific and won't occur in environments where
'/etc/nvme/hostid' file doesn't exist due to which these tests
passed in gate but failed in the local run when hostid file
was present.
This patch mocks the get_nvme_host_id method for tests so the
hostid is never returned irrespective of the environment.

Closes-Bug: #2032941
Change-Id: I8b1aaedfdb9bef6e34813e39dede9afe98371d2b
2023-08-24 15:28:35 +00:00
Rajat Dhasmana 1435059da5 Check paths before extending device
In a multipath enabled deployment, when we try to extend a volume
and some paths are down, we fail to extend the multipath device and
leave the environment in an inconsistent state. See LP Bug #2032177
for more details.

To handle this, we check if all the paths are up before trying to
extend the device and fail fast if any path is down. This ensures
we don't partially extend some paths and leave the other to the
original size leading to inconsistent state in the environment.

Closes-Bug: 2032177

Change-Id: I5fc02efc5e9657821a1335f1c1ac5fe036e9329a
2023-08-24 11:40:32 +00:00
Zuul eb76f8283e Merge "NVMe-oF: Create /etc/nvme/hostid" 2023-08-24 08:35:34 +00:00
Zuul 94f1f6ef59 Merge "SCSI: Support non SAM LUN addressing" 2023-08-24 08:19:36 +00:00
Gorka Eguileor 16c90d5fe9 NVMe-oF: Create /etc/nvme/hostid
The NVMe-oF connector currently create the `/etc/nvme/hostnqn` file if
it doesn't exist, but it may still be missing the `/etc/nvme/hostid`

Some distribution packages create the file on installation but others
may not.

It is recommended for the file to be present so that nvme doesn't
randomly generate it.

Randomly generating it means that the value will be different for the
same storage array and the same volume if we connect, disconnect, and
connect the volume again.

This patch ensures that the file will exist and will try to use the
system's UUID as reported by DMI or a randomly generated one.

Closes-Bug: #2016029
Change-Id: I0b60f9078f23f8464d8234841645ed520e8ba655
2023-08-23 19:02:42 +02:00
Gorka Eguileor 00caa73776 RBD: Improve close and flush in IOWrapper
On Change-Id Ib3b066a7da071b1c2de78a1a4e569676539bd335 we improved the
RBDVolumeIOWrapper's flush and close methods, and this patch improves
them even further.

If the IOWrapper's close is not explicitly called and it's just
dereferenced (happens in unit tests) then during Garbage Collection the
wrapped image may be destroyed before the wrapper, which would trigger
the image being closed without the wrapper knowing, so when the wrapper
gets destroyed it will fail because it calls its close method, which
calls its flush, which calls the underlying image's flush, which will
fail because the underlying image was already closed.

We need to check if the underlying image has already being flushed
before calling the flush.

Calling the underlying close method for the Image or IOWrapper classes
is not a problem because they are idempotent.

Change-Id: Ib5a517d58427df0d1d1b22ad3dc66f673da147fe
2023-08-23 12:33:37 +02:00
Gorka Eguileor 59961647d3 SCSI: Support non SAM LUN addressing
This patch adds non SAM addressing modes for LUNs, specifically for
SAM-2 and SAM-3 flat addressing.

Code has been manually verified on Pure storage systems that uses SAM-2
addressing mode, because it's unusual for CI jobs to have more than
256 LUNs on a single target.

Closes-Bug: #2006960
Change-Id: If32d054e8f944f162bdc8700d842134a80049877
2023-08-23 12:19:11 +02:00
Zuul 0a5d4c1506 Merge "Fix multipath resize map with friendly names" 2023-08-17 00:56:26 +00:00
Rajat Dhasmana 75714711f2 Fix multipath resize map with friendly names
When multipath is enabled and friendly names are ON and we try
to extend a volume, we pass the SCSI WWID to the multipath_resize_map
method which is not correct.

There are 2 things we can pass to the multipathd resize map command:

1) Multipath device (eg: dm-0)
2) Alias (eg: mpath1) or UUID (eg: 36005076303ffc56200000000000010aa)

The value should be an alias (mpath1) when friendly names are ON
and UUID (36005076303ffc56200000000000010aa) when friendly names
are OFF. However, we only pass the UUID irrespective of the value
set for friendly names.

This patch passes the multipath device path (to multipathd resize
map command) which is the real path of the multipath device (/dev/dm-*).
This fixes the issue as it passes the same value irrespective of if
the friendly names are ON or OFF.

-> self.multipath_resize_map(os.path.realpath(mpath_device))

(Pdb) mpath_device

(Pdb) os.path.realpath(mpath_device)

Closes-Bug: 1609753
Change-Id: I1c60af19c2ebaa9de878cd07cfc0077c5ea56fe3
2023-07-27 21:12:52 +00:00
Zuul bfb55b7b58 Merge "nvmeof: Call findmnt with -v" 2023-07-21 17:07:17 +00:00
Brian Rosmaita d38bcebe69 Remove egg_info from setup.cfg
This was removed from cinder by change If7db350ea55a that removed
py27 support, but apparently we missed it in os-brick.

Change-Id: Ie49b70e69ed07589a9ca155524685d95c460374f
2023-07-21 12:33:32 +00:00
Brian Rosmaita c187a33b7b [docs] add autodoc_mock_imports
The docs job has recently begun failing with:

autodoc: failed to import module 'connector' from module
'os_brick.initiator'; the following exception was raised: No module
named 'cryptography'

We're not directly importing cryptography in os-brick, so address this
by adding 'cryptography' to the autodoc_mock_imports list.

Change-Id: I5128d717f7a31fb9042f690ed7c17a3191f1a99e
2023-07-21 08:27:57 -04:00
Eric Harney edc1bc433b nvmeof: Call findmnt with -v
The -v arg suppresses printing of [/dir] with the
device for bind mounts and btrfs volumes, which is
what we want for this usage.

This fixes _get_host_uuid() failing when using
a btrfs rootfs.

Closes-Bug: #2026257
Change-Id: I2d8f24193ecf821843bf8f4ea14b445561d6225c
2023-07-12 12:23:39 -04:00
Zuul 6d70ace1bb Merge "linuxrbd: Remove rados_connect_timeout parameter" 2023-07-10 08:35:56 +00:00
Zuul 5c840f2815 Merge "mypy: Fix failing mypy job" 2023-07-07 19:02:47 +00:00
Zuul f7432b56f0 Merge "LVM: Remove outdated comment" 2023-07-03 16:29:38 +00:00
Eric Harney 4d41c2986c mypy: Fix failing mypy job
Currently fails w/ "Unused type: ignore comment" errors.

Change-Id: I7cced8b9d8704c1782ac8583ce227efcc21b2847
2023-06-30 08:59:19 -04:00
Zuul ccda511ed5 Merge "Bump mypy to 1.2.0" 2023-05-23 13:11:39 +00:00
Zuul 8daafd376b Merge "Support force disconnect for FC" 2023-05-10 20:03:25 +00:00
Eric Harney 2241a07f6b Bump mypy to 1.2.0
Change-Id: I128de9ac7195adb5fc1467607abe8c1f40f47d16
2023-05-02 09:35:21 -04:00
Zuul f7adadef4f Merge "Revert "Fix iSCSI disconnect_volume when flush fails"" 2023-04-27 15:56:55 +00:00
Brian Rosmaita 1b739ed2d5 Revert "Fix iSCSI disconnect_volume when flush fails"
This reverts commit 8070ac3bd9.

Reason for revert: This requires some more discussion, I should not have ninja-approved it.

Change-Id: I25917b95a32da4fd831d669cd21988f400f258e0
2023-04-27 12:19:16 +00:00
Zuul 7f780b62f5 Merge "Fix iSCSI disconnect_volume when flush fails" 2023-04-26 23:21:09 +00:00
Gorka Eguileor 570df49db9 Support force disconnect for FC
This patch adds support for the force and ignore_errors on the
disconnect_volume of the FC connector like we have in the iSCSI

Related-Bug: #2004555
Change-Id: Ia74ecfba03ba23de9d30eb33706245a7f85e1d66
2023-04-24 11:39:37 +02:00
Zuul b6f0f3c25e Merge "Set packages in setup.cfg" 2023-04-21 16:39:09 +00:00
Rajat Dhasmana 8070ac3bd9 Fix iSCSI disconnect_volume when flush fails
The purpose of providing force=True and ignore_errors=True
is to tell os-brick that we want to disconnect the volume
even if flush fails (force) and not raise any exceptions
(ignore_errors). Currently, in an iSCSI multipath environment,
disconnect_volume can fail when both parameters are True.

The current flow when disconnecting an iSCSI volume is
that if flushing a multipath device fails, we manually
remove the device, logout from the target portals,
and try the flush again.

There are two problems here:

1) code problem: The second flush is not wrapped by
ExceptionChainer. This causes it to raise the exception
immediately after flush fails irrespective of the value
of the ignore_errors flag.

2) conceptual problem: In this situation, there is no point
in making the second flush attempt. Instead, we should just
remove the multipath map from multipathd monitoring since
we have already removed the paths manually.

This patch fixes the conceptual problem, as we don't make a second
flush call and ignore any errors on the execution ``multipathd del map``
thereby also fixing the code problem.

Closes-Bug: #2012251
Change-Id: I828911495a2de550ea997e6f51cc039a7b7fa8cd
2023-04-21 06:32:09 +00:00
Zuul 2d85b5a811 Merge "Bump mypy to 1.1.1" 2023-04-17 20:48:05 +00:00
Zuul 42cbce38c1 Merge "LVM: Fix supports_full_pool_create" 2023-04-17 20:48:04 +00:00
Eric Harney 5926a4d4e2 LVM: Remove outdated comment
-l100%FREE was implemented years ago and is
already used by our code when the LVM version
meets the supports_full_pool_create check.

Change-Id: I8f26e3880429e648e7e985f9c6cb7dff56715727
2023-04-12 11:31:45 -04:00
Zuul 28ffcdbfa1 Merge "LVM: Fix bare raise on LVM command error" 2023-03-23 16:34:16 +00:00
Eric Harney e04d0de40b Bump mypy to 1.1.1
Change-Id: I50944c3efc7e2010d3c6475dd4c79a27c9f94cf6
2023-03-21 09:50:37 -04:00
Eric Harney 9496bb2e47 LVM: Fix supports_full_pool_create
mypy detected this problem -- the
supports_full_pool_create property will always
return True when referenced via the class instead
of via an instance.

Change-Id: Iefc691ae8d5eb001c9abbf554600a8f8132e038c
2023-03-21 09:49:51 -04:00
Eric Harney e15edf6c17 Add Python 3.10 to setup.cfg metadata
We support 3.10 as of Antelope.

Change-Id: Ie3eaf0d16e27e35ec30635c82b38c634db9c4541
2023-03-09 11:21:49 -05:00
Eric Harney f184c8a809 Set packages in setup.cfg
Without this, "tox -e py38" fails with an error from
    error: Multiple top-level packages discovered in
    a flat-layout: ['etc', 'os_brick', 'releasenotes'].

Change-Id: Icd68f845d83df2d4875e61a7e92630e73e4564c4
2023-03-09 11:02:13 -05:00
OpenStack Release Bot a0bc09ba50 Update master for stable/2023.1
Add file to the reno documentation build to show release notes for

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on

Sem-Ver: feature
Change-Id: Ic3ac791f083aa097412dc9075a6b20f2b148db02
2023-02-24 17:34:50 +00:00
Eric Harney 653c4c5c77 Update hacking to 5.0
Update hacking to 5.0 release.

Change-Id: I1c13d2d1effc1b6a91602199f42d59d5bf21ceec
2023-02-10 11:47:43 -05:00
Zuul 65f922b167 Merge "Update minimum requirements in os-brick" 2023-02-10 15:28:42 +00:00
Zuul 4f335d410a Merge "Bump bandit to release 1.7.0" 2023-02-09 22:36:06 +00:00
Eric Harney 05052a1375 LVM: Fix bare raise on LVM command error
This should have an associated message, and is
detected as an error by pylint.

Change-Id: Icc312cb960971ecf2a7754b9056a869c9ec8098a
2023-02-09 11:10:19 -05:00