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)
Reviewed: https:/ /review. opendev. org/c/openstack /cinder/ +/940269 /opendev. org/openstack/ cinder/ commit/ f0562c9bb0fca0a d9bac54ac125572 747c6d5753
Committed: https:/
Submitter: "Zuul (22348)"
Branch: master
commit f0562c9bb0fca0a d9bac54ac125572 747c6d5753
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: I804ab5a88496b1 da82c45ccabdb0f e175aacfbfb