[SRU] Juno nova-* ImportError: No module named rootwrap.cmd (when used without neutron)

Bug #1524177 reported by Ryan Beisner
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu Cloud Archive
Invalid
Undecided
Unassigned
Juno
Fix Released
Critical
Corey Bryant
nova-compute (Juju Charms Collection)
Invalid
Undecided
Unassigned

Bug Description

Following Juno 2014.2.4 and related SRUs:
https://bugs.launchpad.net/cloud-archive/+bug/1518323
https://bugs.launchpad.net/nova/+bug/1353939

When neutron is not related, nova-* services fail on nova-compute units with ImportError: No module named rootwrap.cmd

juno nova-*, from the perspective of our existing amulet tests, is definitely broken following recent Juno SRUs in the cloud archive. I've re-confirmed that the amulet tests were passing for nova-compute/next prior to these updates.

juno nova-*, from the perspective of our full deployments, seems to be fine following the same. These full deploys are the tests, along with tempest, which are exercised during the staging and proposed period.

To differentiate: the amulet test has a minimal topology which doesn't include the neutron-*, whereas the full deploy does.

Granted, nova-network was to-be, then not-to-be deprecated in Juno. Ultimately, as I understand it, upstream decided to hold that deprecation until certain feature parity was met in neutron. It may exist, but I've not located an indicator of anyone actually pulling the nova-network deprecation trigger on Juno.

This issue causes amulet tests to fail for the following openstack-charms, where those tests include nova without neutron:
 - ceilometer
 - heat
 - nova-cloud-controller
 - nova-compute
 - (This list may not be complete, still reviewing.)

nova-api.log:
http://paste.ubuntu.com/13846932/

2015-12-08 22:25:05.002 17818 TRACE nova Traceback (most recent call last):
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/bin/nova-api", line 10, in <module>
2015-12-08 22:25:05.002 17818 TRACE nova sys.exit(main())
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/cmd/api.py", line 55, in main
2015-12-08 22:25:05.002 17818 TRACE nova server = service.WSGIService(api, use_ssl=should_use_ssl)
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 331, in __init__
2015-12-08 22:25:05.002 17818 TRACE nova self.manager = self._get_manager()
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/service.py", line 383, in _get_manager
2015-12-08 22:25:05.002 17818 TRACE nova return manager_class()
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/api/manager.py", line 30, in __init__
2015-12-08 22:25:05.002 17818 TRACE nova self.network_driver.metadata_accept()
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/network/linux_net.py", line 667, in metadata_accept
2015-12-08 22:25:05.002 17818 TRACE nova iptables_manager.apply()
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/network/linux_net.py", line 435, in apply
2015-12-08 22:25:05.002 17818 TRACE nova self._apply()
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/lockutils.py", line 272, in inner
2015-12-08 22:25:05.002 17818 TRACE nova return f(*args, **kwargs)
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/network/linux_net.py", line 455, in _apply
2015-12-08 22:25:05.002 17818 TRACE nova attempts=5)
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/network/linux_net.py", line 1229, in _execute
2015-12-08 22:25:05.002 17818 TRACE nova return utils.execute(*cmd, **kwargs)
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/utils.py", line 187, in execute
2015-12-08 22:25:05.002 17818 TRACE nova return processutils.execute(*cmd, **kwargs)
2015-12-08 22:25:05.002 17818 TRACE nova File "/usr/lib/python2.7/dist-packages/nova/openstack/common/processutils.py", line 222, in execute
2015-12-08 22:25:05.002 17818 TRACE nova cmd=sanitized_cmd)
2015-12-08 22:25:05.002 17818 TRACE nova ProcessExecutionError: Unexpected error while running command.
2015-12-08 22:25:05.002 17818 TRACE nova Command: sudo nova-rootwrap /etc/nova/rootwrap.conf iptables-save -c
2015-12-08 22:25:05.002 17818 TRACE nova Exit code: 1

nova-compute log:
2015-12-08 22:26:03.933 20741 WARNING nova.virt.libvirt.driver [req-a54c8cbd-c24e-4ccf-ad33-d865bf753a82 None] Cannot update service status on host: juju-osci-sv07-machine-5,since it is not registered.
2015-12-08 22:26:04.259 20741 WARNING nova.compute.resource_tracker [-] No compute node record for juju-osci-sv07-machine-5:juju-osci-sv07-machine-5.openstacklocal

A full /var/log tarball is attached from nova-compute/0 in the amulet test topology.

Revision history for this message
Ryan Beisner (1chb1n) wrote :
description: updated
Ryan Beisner (1chb1n)
summary: - nova-* fails with ImportError: No module named rootwrap.cmd, sans
- neutron
+ Juno nova-* ImportError: No module named rootwrap.cmd (when used without
+ neutron)
summary: - Juno nova-* ImportError: No module named rootwrap.cmd (when used without
- neutron)
+ [SRU] Juno nova-* ImportError: No module named rootwrap.cmd (when used
+ without neutron)
Changed in nova-compute (Juju Charms Collection):
status: New → Incomplete
status: Incomplete → Invalid
Changed in cloud-archive:
status: New → In Progress
status: In Progress → Invalid
Revision history for this message
Corey Bryant (corey.bryant) wrote :

This appears to be an issue with the recent change to run dh_python2 with --no-guessing-deps. d/control files in various packages are out-of-date with respect to dependencies specified in the Depends section and this is exposed when dependencies aren't guessed by dh_python2. Unfortunately we need to use --no-guessing-deps due to upstream changes in 2014.2.4 to requirements.txt files where logic changes were causing package install failures do to dh_python2 not being able to handle logic such as !=.

The following packages need to be updated to bring the Depends section inline with upstream: cinder, glance, horizon, and keystone.

Revision history for this message
Corey Bryant (corey.bryant) wrote :

This also affects nova.

Revision history for this message
Ryan Beisner (1chb1n) wrote :

Exercised trusty-juno-staging via the nova-cloud-controller amulet test, where this was first observed (via the nova-compute/0 unit).

PASS:
http://paste.ubuntu.com/13870022/

Revision history for this message
Ryan Beisner (1chb1n) wrote :

FYI nova-compute/0 dpkg -l shows the pkg now present:

ii python-oslo.rootwrap 1.3.0.0-0ubuntu1~cloud0 all Fine filtering of shell commands as 'root'

Revision history for this message
Ryan Beisner (1chb1n) wrote :

Also exercised the normal SRU full deploy bundle against trusty-juno-staging, A-OK.

Pushing to juno-proposed cloud archive pocket.

Revision history for this message
Ryan Beisner (1chb1n) wrote :

Thank you for your work on this.

nova-cloud-controller + heat amulet tests are now passing @ trusty-juno-proposed.

The full deploy bundle is still passing @ trusty-juno-proposed.

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.