During detach operation for Multi attach type volumes
the first detach from the host is successful.
In the second detach operation the volume remains in
detaching state.
Fixed the above issue by adding a check for multi-attach
volumes and get the host mapping info of a volume.
If the volume is attached to multiple hosts, then skip
the delete host operation and return.
Closes-bug: #1951046
Change-Id: I8f4586292d1310d6f7bd9fd22b98715f3414d23c
There might be a case where the exception raised by `op_features`
could be other than AttributeError. When any exception other than
AttributeError is raised, we should log and avoid raising an
exception.
Closes-Bug: #1942210
Co-Authored-By: Gorka Eguileor <geguileo@redhat.com>
Change-Id: I513abe980b73d7e7b1a3cd9c7ff89490f7fd6b08
Lenovo driver: Return additional options from get_driver_options that
the driver may use but were not previously being returned
Seagate driver: Implement get_driver_options static method
Change-Id: Ic66a055358c4afaf198acad48f0afd75d9304dca
In multi host environment, if volume is attached to instances present
on different hosts, detach operation works partially.
As a result, at later time the volume cannot be deleted.
Details are explained in launchpad bug.
This patch performs following:
During detach volume from instance, both possibilities are considered:
the instances can reside:
[1] either on same host.
[2] or on different hosts.
case [1]:
In such case, behaviour is same as earlier i.e vlun is not deleted
upon each detach operation i.e skip remainder of terminate volume
connection. The vluns are deleted only on last detach operation.
case [2]:
In such case, vlun of that host on 3par array is deleted separately
upon each detach operation.
Closes-Bug: #1958122
Change-Id: I47e8e86a495802a21570e23ecf7428fccc8b3d60
A temporary volume can be deleted while it is in use by DELETE API
accidentally because its status is `available`. To avoid this deletion,
this fix sets a value which doesn't accept deletion to volume status of
a temporary volume. When a temporary volume is used for backing up,
`backing-up` is set. When a temporary volume is used for reverting a
snapshot, `in-use` is set because the volume is attached by a host.
Closes-Bug: #1970768
Change-Id: Ib6a2e4d68e532b91161df5245c17ce815f12f935
message_field.Action.REIMAGE_VOLUME doesn't exist. This patch adds the REIMAGE_VOLUME.
The content of message_field.Detail.NOTIFY_COMPUTE_SERVICE_FAILED is "Compute service failed to extend volume".
This message should be "Compute service failed to reimage volume". This patch adds the new REIMAGE_VOLUME_FAILED detail parameter for this message.
Closes-Bug: #1968170
Change-Id: I3e17c6a2a7f252a9d324a1fea616e22869e55702
[Spectrum Virtualize family] Deletion and extend of the volume
in reverse replication failed.
Added necessary code changes to storwize cinder driver to
delete and extend the volume successfully in reverse replication.
Also, added support to extend the volume for failover scenarios.
Bugs are inter-dependent on reverse-replication, hence addressed
the bugs in a single commit.
Closes-Bug: #1960315
Closes-Bug: #1966639
Change-Id: I00d56980e0e8b8dfebd4e7495f625173f0421b75
We're supposed to fail an import request for an already existing
backup, but the current code confuses an existing backup record with
one we created for the import, and during quota rollback, will
destroy either one. Simplify the logic so that we check whether
there's an already existing backup first and bail without even
bothering to make an unnecessary reservation, hence leaving us nothing
to roll back or delete by mistake.
Also revise and add tests.
Closes-bug: #1965847
Change-Id: I3c0e365f5dc3c32975343f538c6029f02ac7c2b5
Fix error from change I216f84ed379d that prevents a hyperlink
from being rendered correctly in HTML.
Change-Id: I6544e5d68714c439cc667f1e20e70841eaa0a88b
[Spectrum Virtualize family] During creation of GMCV type volume
there are multiple lsvdisk calls made for checking the existence
of source change volume, aux volume and change aux volume.
Along with these calls there is a lssystem call which can be
optimized.
This patch optimizes these lsvdisk and lssystem calls which in
turn reduces the computational time for creating GMCV volumes.
Closes-Bug: #1961548
Change-Id: Id00cda88132184e66fbf6c03965f1de30cf02dcf
Cinder has multiple drivers reporting the same storage_protocol in their
stats but with different strings:
For example we have the following variants:
- nfs and NFS
- nveof, NVMe-oF, NVMeOF
- iSCSI, iscsi
- FC, fc, fibre_channel
This patch documents the right values (to use existing constants) and
makes the scheduler treat all variants as if they were equal.
This is done by changing the storage_protocol into a list in the
scheduler upon reception of the stats from the volume. Most of the code
in the scheduler is already able to handle this, the only changes
necessary are on the filter and goodness function code, which will now
run the respective functions for all the different protocol alternatives
and select the right one, but only when the function actually uses the
storage_protocol.
The API will now report the preferred protocol name in operations like
"cinder get-pools --detail".
Closes-Bug: #1966103
Change-Id: I07d74078dbb102490dd722029e32c74cec3aa44c
When using the LVM cinder driver the cacheable capability is not being
reported by the backend to the scheduler when the transport protocol is
NVMe-oF (nvmet target driver), but it is properly reported if it's the
LIO target driver.
This also happens with other drivers that should be reporting that they
are cacheable.
This happens because even if the volume manager correctly uses the
"storage_protocol" reported by the drivers on their stats to add the
"cacheable" capability for iSCSI, FC, and NVMe-oF protocols, it isn't
taking into account all the variants these have:
- FC, fc, fibre_channel
- iSCSI, iscsi
- NVMe-oF, nvmeof, NVMeOF
Same thing happens for the shared_targets of the volumes, which are not
missing an iSCSI variant.
This patch creates constants for the different storge protocols to try
to avoid these variants (as agreed on the PTG) and also makes the
cacheable and shared_targets check against all the existing variants.
This change facilitates identifying NVMe-oF drivers (for bug 1961102)
for the shared_targets part.
Closes-Bug: #1969366
Related-Bug: #1961102
Change-Id: I1333b0471974e94eb2b3b79ea70a06e0afe28cd9
[Spectrum Virtualize family] Currently, SVf does not support
extend operation for GMCV volumes which are a part of a
consistency group(CG). Added necessary code changes to
storwize cinder driver to support this operation.
Closes-Bug: #1960314
Change-Id: I9e9dd4f81582ec0d60b64c281f47bd48e907d0ea
[Spectrum Virtualize family] While retyping GM to GM or MM to MM or
GMCV to GMCV, chfcmap() call is being made which is resulting in retype
operation failure.
Error: CMMVC7154E The task cannot be completed because the specified
FlashCopy mapping is controlled by a Metro Mirror or Global Mirror
relationship.
chfcmap() should not be called for any FC map which is rc_controlled.
Hence while retyping global mirror to global mirror or
metro mirror to metro mirror or GMCV to GMCV volume, this error comes
up as the FC map of the volume is rc_controlled for these replication
volume-types.
Closes-Bug: #1968159
Change-Id: Ic97a2501b4c895b2b655284bcc320036c2d4e217
This went EOL in December 2018. We don't need this logic. A release note
is included, even though this isn't really needed (we don't formalize
our support for different MySQL versions anywhere, and are mostly
dependent on what SQLAlchemy/oslo.db support)
Change-Id: Ie78d6e7612d84c712c8dc6fb5effc2b8bd5b4b22
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Managing a volume to an encrypted volume type should not be allowed.
One reason is that there is no way for an operator to specify an
encryption key ID for the volume. Another is that we already don't
allow a volume of an encrypted type to be un-managed, so this change
will be symmetric.
Also update and correct the api-ref for this call.
Co-authored-by: Yadiel Xuan(轩艳东) <xuanyandong@inspur.com>
Co-authored-by: Brian Rosmaita <rosmaita.fossdev@gmail.com>
Change-Id: Ic2da41f3962c1108f974aca952bce3da6d6ac277
Closes-bug: #1944577
Add file to the reno documentation build to show release notes for
stable/yoga.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.
Sem-Ver: feature
Change-Id: I0204daab831d56dffcb41fb3775b9b6a917c0f5a
Defining particular ports in extra spec "hbsd:target_ports"
determines which of the ports specified by the hitachi_target_ports
or the hitachi_compute_target_ports parameters are used to create LUN
paths during volume attach operations for each volume type.
Implements: blueprint hitachi-vsp-tgt-port-asgn
Change-Id: I2e8d80261fa797c8f3c83c078c29cf1173d46c3c
This patch support AIX as host OS type for the Hitachi VSP driver.
When running "cinder attachment-create" command with the option "--ostype aix",
"AIX" is set as host OS type.
Implements: blueprint hitachi-vsp-aix-os-type
Change-Id: Ia3378099789f13d60ba3657d1d3a626e7bc9dced
[Spectrum Virtualize family] Providing support to IBM Storwize cinder
driver to use portsets to manage host attachment, backend storage
connectivity and IP replication traffic.
Portsets are groupings of logical addresses that are associated with
specific traffic types. Portsets are created on the storage. Hosts are
then created using the portset info given by the admin.
Implements: blueprint ibm-svf-portset
Change-Id: I38c9889bff2d18d3dadd49f28b8436a77b131a22
This is a followup patch to address review comments on change
I031aae50ee82198648f46c503bba04c6e231bbe5.
Change-Id: I38884b313ea63ff76bc65c41580343226a128ae8
This patch adds volume re-image API to enable the ability to
re-image a specific volume.
Implements: blueprint add-volume-re-image-api
Co-Authored-by: Rajat Dhasmana <rajatdhasmana@gmail.com>
Change-Id: I031aae50ee82198648f46c503bba04c6e231bbe5
This patch fixes multiple issues related to request ids:
- Duplicated request ID in logs
- Missing request id header in response
- Wrong request ID in response header when using noauth
The source of these issues is the fact that the request ID and the
request context are set too late, or not at all, in the paste filter
chain.
And the last bug is fixed as a freebie when the code in auth.py is
refactored to reduce code duplication on setting the cinder.context key
in the request's environment.
The patch fixes these issue by changing the filter chains to have the
request_id filter as the first filter, and using our own filter for it,
to ensure that the context is correctly set.
Not sure if values now defined in ENV_OVERWRITES are still necessary,
so the patch preserves current behavior.
Closes-Bug: #1960019
Closes-Bug: #1960020
Closes-Bug: #1960021
Closes-Bug: #1960329
Change-Id: Ide831a221a7561bbb7da193f0edb011f1989420e
This patch adds support for active/active replication in the
FlashArray driver.
failover_host has been split into two parts (failover and
failover_completed) to allow all nodes in a cluster to properly
switch between primary and secondary backends after a succesful
failover or failback procedure.
Change-Id: I94e9c1106d4be0049b98ec7131ec88c9f9a32588