API: rados and rbd python libraries not found

Bug #1652501 reported by HT
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack-Ansible
Expired
Undecided
Unassigned

Bug Description

When upgrading from 13.3.10 to 14.0.4 with CEPH backed then symlinks to rbd.so and rados.so inside venv not created.

root@infra1:~# uname -a
Linux infra1 4.2.0-42-generic #49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

root@deploy:/opt/openstack-ansible/playbooks# git describe --abbrev=0 --tags
14.0.4

root@infra1:~# sed -n '70176,70178p' /var/log/cinder/cinder-volume.log
2016-12-21 22:08:45.380 61926 ERROR cinder.volume.manager raise exception.VolumeBackendAPIException(data=msg)
2016-12-21 22:08:45.380 61926 ERROR cinder.volume.manager VolumeBackendAPIException: Bad or unexpected response from the storage volume backend API: rados and rbd python libraries not found
2016-12-21 22:08:45.380 61926 ERROR cinder.volume.manager

workaround:
root@infra1:~# ln -s /usr/lib/python2.7/dist-packages/rbd.so /openstack/venvs/nova-14.0.4/lib/python2.7/site-packages/rbd.so
root@infra1:~# ln -s /usr/lib/python2.7/dist-packages/rados.so /openstack/venvs/nova-14.0.4/lib/python2.7/site-packages/rados.so
root@infra1:~# ln -s /usr/lib/python2.7/dist-packages/rbd.so /openstack/venvs/cinder-14.0.4/lib/python2.7/site-packages/rbd.so
root@infra1:~# ln -s /usr/lib/python2.7/dist-packages/rados.so /openstack/venvs/cinder-14.0.4/lib/python2.7/site-packages/rados.so

Revision history for this message
Jean-Philippe Evrard (jean-philippe-evrard) wrote :

The link should have been done by the ceph-client role, called from your playbook.

Could you tell us which playbook/role ran and didn't link the proper files?
openstack_service_venv_bin should have been set, and ceph_install_python_libs.yml should have run.
I'd be happy to see a complete log of this playbook run.

There -in the ceph-client role- python -c 'import rados; print rados.__file__' should have registered the path to your rados library and python -c 'import rbd; print rbd.__file__' should have registered the path to your rbd library, and then linked the libs in the venv.

Could you also give us an idea of the ansible version you're running?
I'm suspecting an issue with static: no on the include task.

Changed in openstack-ansible:
status: New → Incomplete
Revision history for this message
HT (h5t4) wrote :

This bug report is invalid. Thank you for your guidance!

I created backup '/opt/openstack-ansible/playbooks/roles/ceph_client/tasks/.main.yaml' in 13.3.* version when I changed Hammer to Jewel.
And I somehow managed to check out 14.0.4 without removing it.
Unfortunately it was in search PATH '/opt/openstack-ansible/playbooks/roles' before '/etc/ansible/roles'
It means that correct role never executed by ansible 2.1.1.0
After I corrected my error and rerun 'os-cinder-install.yml' and 'os-nova-install.yml' playbooks all missing symlinks was created.

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for openstack-ansible because there has been no activity for 60 days.]

Changed in openstack-ansible:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.