Description of problem: When using Cinder (Pike release) with RBDDriver backends as an "OpenStack Block Storage Provider" without authentication the configured Cinder "Volume Types" are not recognized and one can't create disks. Error message when opening the "Storage" - "Disk" - "New" dialog in engine.log is: 2018-10-23 16:14:53,132+02 ERROR [org.ovirt.engine.core.bll.storage.disk.cinder.GetCinderVolumeTypesByStorageDomainIdQuery] (default task-141) [0ad71d90-1a19-4986-8ca5-c2da8017b488] Query 'GetCinderVolumeTypesByStorageDomainIdQuery' failed: null 2018-10-23 16:14:53,132+02 ERROR [org.ovirt.engine.core.bll.storage.disk.cinder.GetCinderVolumeTypesByStorageDomainIdQuery] (default task-141) [0ad71d90-1a19-4986-8ca5-c2da8017b488] Exception: java.lang.NullPointerException Using the same configuration with authentication works. Setup of the "OpenStack Block Storage Provider" in "Administration" - "Providers" without authentication works, also testing the provider by pressing "Test" button. Problem is first visible when trying to create disks. Version-Release number of selected component (if applicable): ovirt-engine-4.2.6.4-1.el7.noarch openstack-cinder-11.1.1-1.el7.noarch librbd1-12.2.5-0.el7.x86_64 How reproducible: Switch working setup of oVirt 4.2.6, Keystone (Pike) and Cinder (Pike) to Cinder "auth_strategy = noauth". Try to create a disk in "OpenStack Cinder" storage domain. Steps to Reproduce: 1. Setup oVirt 4.2.6 with externally hosted engine and iSCSI as primary storage. 2. Setup hypervisor hosts as Enterprise Linux (CentOS 7.5) hosts with Ceph Luminous librbd1. 3. Setup Centos 7 VM in oVirt on iSCSI storage and install Cinder and Keystone packages from centos-openstack-pike repository. 4. Setup Keystone according to https://docs.openstack.org/keystone/pike/install/index-rdo.html 5. Setup Cinder according to https://docs.openstack.org/cinder/pike/install/index-rdo.html. 6. Configure at least two backends with "rbd.RBDDriver" in Cinder according to https://docs.openstack.org/cinder/pike/admin/blockstorage-multi-backend.html. 7. Create "OpenStack Block Storage" provider in oVirt with "Provider URL" and "Authentication URL" pointing to Cinder VM. 8. Switch Cinder to "auth_strategy = noauth" and untick "Requires Authentication" in oVirt "OpenStack Block Storage" provider. 9. Try to create a disk in "OpenStack Cinder" storage domain. Actual results: "Volume Type" in drop down menu is empty. oVirt engine log says 2018-10-23 16:14:53,132+02 ERROR [org.ovirt.engine.core.bll.storage.disk.cinder.GetCinderVolumeTypesByStorageDomainIdQuery] (default task-141) [0ad71d90-1a19-4986-8ca5-c2da8017b488] Query 'GetCinderVolumeTypesByStorageDomainIdQuery' failed: null 2018-10-23 16:14:53,132+02 ERROR [org.ovirt.engine.core.bll.storage.disk.cinder.GetCinderVolumeTypesByStorageDomainIdQuery] (default task-141) [0ad71d90-1a19-4986-8ca5-c2da8017b488] Exception: java.lang.NullPointerException Expected results: Disks in various Cinder backends can be created. Additional info: Using the Cinder API with python cinderclient CLI and "auth_strategy = noauth" works (creating and listing disks).
We are not planning to enhance the Cinder integration which is tech preview. In oVirt 4.3 we plan to add offloading support via Cinderlib [1] [2]. We recommend you track that work and help us test once the beta is out. [1] https://cinderlib.readthedocs.io/en/v0.2.1/ [2] WIP feature page https://github.com/oVirt/ovirt-site/blob/a5d38822c5f9dfb6d020734502ca8c501dcf609c/source/develop/release-management/features/storage/cinderlib-integration.html.md
Thanks! Cinderlib looks interesting, moving away from having to run "full" OpenStack services is a very good idea. I'll test it as soon as i can. I very much hope that there will be a migration scenario for users of "full" Cinder volumes, because we are using oVirt with Ceph via Cinder extensively.