[sdk]: Block storage service update volume status from reserved to available

Rajat Dhasmana rdhasman at redhat.com
Wed Sep 8 05:05:48 UTC 2021


On Wed, Sep 8, 2021 at 1:02 AM dmeng <dmeng at uvic.ca> wrote:

> Hello there,
> Hope everything is going well.
> I would like to know if there is any method that could update
> the volume status or reset its state. While we creating volumes use the
> block storage service or creating vms with volumes use the compute service,
> sometimes we got volumes stuck in creating/deleteing/attaching/reserved
> state. And we couldn't remove them or reset their state without an admin
> account even we own the project. The way we create volumes and boot vms is
> like the following:
> # create the volume
> cv = cinder.create_volume(name=bv_name, size=size, image_id=imageobj.id, volume_type=volume_type, is_bootable=True)
> # format mapping data
> bdm = [{'uuid': cv.id, 'source_type': 'volume', 'destination_type': 'volume', 'delete_on_termination': True, 'boot_index': 0}]
> # create the vm
> nova.create_server(name=hostname, image_id=imageobj.id, flavor_id=flavorl.id, key_name=key_name, block_device_mapping=bdm, user_data=format_userdata, networks=netid, security_groups=sec_groups)
> In the normal situation, everything works. But in the case of any network issue, the volume might stuck in the process of creating, deleting, or attaching. And if the volume got created successfully, when it tries to create the vm, the volume will be reserved for it, but if anything wrong happen when creating the vm or get timed out, the volume will be in the reserved stage forever. We would like to know if we could update the state or delete them without the admin account?
> We tried the command line tools 'openstack volume set --state available <volume_id>' and 'cinder reset-state --state available <volume_id>', but both got:
> Policy doesn't allow volume_extension:volume_admin_actions:reset_status to be performed. (HTTP 403) (Request-ID: req-b50236c3-5662-4cc0-8602-19e79e80219d)
> ERROR: Unable to reset the state for the specified entity(s).
> For the specific case where a volume is stuck in reserved state and the
above code uses cinder's new attachments API, you can use* ``cinder
--os-volume-api-version 3.27 attachment-list`` *to list all attachments for
volumes and if there exists attachment(s) for your volume, you can delete
them via the command  *``cinder --os-volume-api-version 3.27
attachment-delete <attachment-id>``*

> We are using the chameleon openstack cloud but we are not the admin user there, so wondering if there is any method that we could update the volume in our own project?
> Thanks and have a great day!
> Catherine
Thanks and regards
Rajat Dhasmana
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20210908/66ac423a/attachment.html>

More information about the openstack-discuss mailing list