Description of problem: Cinder tries to migrate the volume in a generic way and it fails because it doesn't know how to handle RBD Objects. A new implementation should be added to the RBD driver to handle this scenario and avoid using the generic driver by default. Version-Release number of selected component (if applicable): RHOSP 13.0 RHOSP 16.0 RHOSP 16.1 RHOSP 16.2 How reproducible: Always Steps to Reproduce: 1. openstack volume type create --encryption-provider nova.volume.encryptors.luks.LuksEncryptor --encryption-cipher aes-xts-plain64 --encryption-key-size 256 --encryption-control-location front-end LuksEncryptor-Template-256 2. cinder create 1 --name encrypt-vol --volume-type LuksEncryptor-Template-256 3. cinder retype encrypt-vol ceph --migration-policy on-demand Actual results: feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server volume.save() feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in __exit__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise() feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2535, in migrate_volume feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._migrate_volume_generic(ctxt, volume, host, new_type_id) feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2296, in _migrate_volume_generic feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._clean_temporary_volume(ctxt, volume, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in __exit__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise() feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2275, in _migrate_volume_generic feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._copy_volume_data(ctxt, volume, new_volume, remote='dest') feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2166, in _copy_volume_data feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._detach_volume(ctxt, dest_attach_info, dest_vol, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in __exit__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise() feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2159, in _copy_volume_data feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server src_attach_info = self._attach_volume( feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2098, in _attach_volume feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self._detach_volume(ctxt, attach_info, volume, properties, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 227, in __exit__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.force_reraise() feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/excutils.py", line 200, in force_reraise feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server raise self.value feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/manager.py", line 2091, in _attach_volume feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server volume_utils.brick_attach_volume_encryptor(ctxt, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/volume_utils.py", line 1360, in brick_attach_volume_encryptor feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server encryptor = brick_get_encryptor(connection_info, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/cinder/cinder/volume/volume_utils.py", line 1350, in brick_get_encryptor feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server return encryptors.get_volume_encryptor(root_helper=root_helper, feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/__init__.py", line 87, in get_volume_encryptor feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server encryptor = importutils.import_object( feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/local/lib/python3.8/dist-packages/oslo_utils/importutils.py", line 44, in import_object feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server return import_class(import_str)(*args, **kwargs) feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/luks.py", line 56, in __init__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server super(LuksEncryptor, self).__init__( feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/opt/stack/os-brick/os_brick/encryptors/cryptsetup.py", line 61, in __init__ feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server self.dev_name = 'crypt-%s' % os.path.basename(self.symlink_path) feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server File "/usr/lib/python3.8/posixpath.py", line 142, in basename feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server p = os.fspath(p) feb 19 23:35:54 devstack cinder-volume[127895]: ERROR oslo_messaging.rpc.server TypeError: expected str, bytes or os.PathLike object, not RBDVolumeIOWrapper Expected results: Volume type should be Ceph Additional info: As far as I understand this will be fixed when implementing https://bugzilla.redhat.com/show_bug.cgi?id=1794249