[Pure Storage] Manage Volume fails from GUI

Bug #2096801 reported by Simon Dodsley
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Simon Dodsley

Bug Description

Historically manage volumes handled from the CLI with a Pure Storage FlashArray worked with no issues, because the `id-type` was specified as `name`.
In the Horizon GUI when selecting `name` as the ID type this now causes a failure in the driver because functions being sent `source-name` in the rather than `name` in the arguments.

Crash details:

Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: DEBUG cinder.volume.flows.common [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Setting Volume 9a79df68-9a55-4cb5-a1e3-74cd966dea3c to error due to: Volume driver PureISCSIDriver get exception. >
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: WARNING cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Task 'cinder.volume.flows.manager.manage_existing.PrepareForQuotaReservationTask;volume:manage_existing' (67ec1188-4b>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: 2 predecessors (most recent first):
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: Atom 'cinder.volume.flows.manager.create_volume.NotifyVolumeActionTask;volume:create, manage_existing.start' {'intention': 'EXECUTE', 'state': 'SUCCESS', 'requires': {'context': <cinder.context.RequestCon>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: |__Flow 'volume_manage_existing_manager': cinder.exception.ManageExistingInvalidReference: Manage existing volume failed due to invalid backend reference {'source-name': 'simon'}: manage_existing requires>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager Traceback (most recent call last):
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/data/venv/lib/python3.12/site-packages/taskflow/engines/action_engine/executor.py", line 52, in _execute_task
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager result = task.execute(**arguments)
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager ^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/cinder/cinder/volume/flows/manager/manage_existing.py", line 58, in execute
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager with excutils.save_and_reraise_exception():
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 227, in __exit__
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager self.force_reraise()
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager raise self.value
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/cinder/cinder/volume/flows/manager/manage_existing.py", line 55, in execute
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager size = self.driver.manage_existing_get_size(volume,
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/cinder/cinder/volume/drivers/pure.py", line 214, in wrapper
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager result = f(*args, **kwargs)
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager ^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/cinder/cinder/volume/drivers/pure.py", line 1919, in manage_existing_get_size
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager volume_info = self._validate_manage_existing_ref(existing_ref)
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager File "/opt/stack/cinder/cinder/volume/drivers/pure.py", line 1640, in _validate_manage_existing_ref
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager raise exception.ManageExistingInvalidReference(
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager cinder.exception.ManageExistingInvalidReference: Manage existing volume failed due to invalid backend reference {'source-name': 'simon'}: manage_existing requires a 'name' key to>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.manager
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: DEBUG cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Task 'cinder.volume.flows.manager.manage_existing.PrepareForQuotaReservationTask;volume:manage_existing' (67ec1188-4b25>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: DEBUG cinder.volume.flows.common [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Setting Volume 9a79df68-9a55-4cb5-a1e3-74cd966dea3c to error due to: Volume manage failed. {{(pid=2654391) error_o>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR cinder.volume.flows.manager.manage_existing [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Volume 9a79df68-9a55-4cb5-a1e3-74cd966dea3c: manage failed.
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: WARNING cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Task 'cinder.volume.flows.manager.manage_existing.PrepareForQuotaReservationTask;volume:manage_existing' (67ec1188-4b>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: DEBUG cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Task 'cinder.volume.flows.manager.create_volume.NotifyVolumeActionTask;volume:create, manage_existing.start' (50495c87->
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: WARNING cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Task 'cinder.volume.flows.manager.create_volume.NotifyVolumeActionTask;volume:create, manage_existing.start' (50495c8>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: WARNING cinder.volume.manager [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Flow 'volume_manage_existing_manager' (bdcb8367-a055-44a4-8cde-da1fb9aacfac) transitioned into state 'REVERTED' from >
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server [None req-8e0cbfba-bf72-4d06-a598-be347f3dd4dc admin None] Exception during message handling: cinder.exception.ManageExistingInvalidReference: Manage existing volume failed d>
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server Traceback (most recent call last):
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_messaging/rpc/server.py", line 172, in _process_incoming
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_messaging/rpc/dispatcher.py", line 309, in dispatch
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server File "/opt/stack/data/venv/lib/python3.12/site-packages/oslo_messaging/rpc/dispatcher.py", line 229, in _do_dispatch
Jan 27 18:56:41 sn1-pool-c07-04 cinder-volume[2654391]: ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)

Changed in cinder:
assignee: nobody → Simon Dodsley (simon-dodsley)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.opendev.org/c/openstack/cinder/+/940269
Committed: https://opendev.org/openstack/cinder/commit/f0562c9bb0fca0ad9bac54ac125572747c6d5753
Submitter: "Zuul (22348)"
Branch: master

commit f0562c9bb0fca0ad9bac54ac125572747c6d5753
Author: Simon Dodsley <email address hidden>
Date: Mon Jan 27 15:10:56 2025 -0500

    [Pure Storage] Manage Volume from GUI fails

    Using the command line for volume management works with no issue, as the
    method requires specifying ``id-type name``.

    When using the GUI the selection of ``name`` as the ID Type actually
    translates to ``source-name``, which seems to be the default value.

    This patch changes references in the Pure Storage driver from ``name``
    to ``source-name``.

    This also means that using the CLI no longer requires the specific
    selection of ``id-type name`` as the default value can now be used.

    Closes-Bug: #2096801

    Change-Id: I804ab5a88496b1da82c45ccabdb0fe175aacfbfb

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/2024.2)

Fix proposed to branch: stable/2024.2
Review: https://review.opendev.org/c/openstack/cinder/+/944301

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.