Bug 1642074 - Provisioning disks from OpenStack Block Storage Provider without authentication doesn't work
Summary: Provisioning disks from OpenStack Block Storage Provider without authenticati...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: ovirt-engine
Classification: oVirt
Component: BLL.Storage
Version: 4.2.6.2
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
: ---
Assignee: Tal Nisan
QA Contact: Elad
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-10-23 14:33 UTC by matthias.leopold
Modified: 2018-10-30 10:25 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-10-28 14:35:12 UTC
oVirt Team: Storage
Embargoed:


Attachments (Terms of Use)

Description matthias.leopold 2018-10-23 14:33:58 UTC
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).

Comment 1 Yaniv Lavi 2018-10-28 14:35:12 UTC
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

Comment 2 matthias.leopold 2018-10-30 10:25:14 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.