nova service disable/enable returns 500 on cell environment
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
RedBaron | ||
Icehouse |
Fix Released
|
High
|
Rajesh Tailor | ||
Juno |
Fix Released
|
High
|
Rajesh Tailor |
Bug Description
nova service disable/enable returns 500 on cell environment. Actual enable/disable looks processed correctly.
It also throws following error in nova-api service:
ValueError: invalid literal for int() with base 10: 'region!child@5'
How to reproduce:
$ nova --os-username admin service-list
Output:
+------
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------
| region!child@1 | nova-conductor | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@3 | nova-cells | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@4 | nova-scheduler | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@5 | nova-compute | region!child@ubuntu | nova | enabled | up | 2014-08-
| region@1 | nova-cells | region@ubuntu | internal | enabled | up | 2014-08-
| region@2 | nova-cert | region@ubuntu | internal | enabled | down | 2014-08-
| region@3 | nova-consoleauth | region@ubuntu | internal | enabled | up | 2014-08-
+------
$ nova --os-username admin service-disable 'region!
The above command gives the following error:
ERROR (ClientException): Unknown Error (HTTP 500)
$ nova --os-username admin service-list
Output:
+------
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------
| region!child@1 | nova-conductor | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@3 | nova-cells | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@4 | nova-scheduler | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@5 | nova-compute | region!child@ubuntu | nova | disabled | up | 2014-08-
| region@1 | nova-cells | region@ubuntu | internal | enabled | up | 2014-08-
| region@2 | nova-cert | region@ubuntu | internal | enabled | down | 2014-08-
| region@3 | nova-consoleauth | region@ubuntu | internal | enabled | up | 2014-08-
+------
$ nova --os-username admin service-enable 'region!
The above command gives following error:
ERROR (ClientException): Unknown Error (HTTP 500)
$ nova --os-username admin service-list
+------
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------
| region!child@1 | nova-conductor | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@3 | nova-cells | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@4 | nova-scheduler | region!child@ubuntu | internal | enabled | up | 2014-08-
| region!child@5 | nova-compute | region!child@ubuntu | nova | enabled | up | 2014-08-
| region@1 | nova-cells | region@ubuntu | internal | enabled | up | 2014-08-
| region@2 | nova-cert | region@ubuntu | internal | enabled | down | 2014-08-
| region@3 | nova-consoleauth | region@ubuntu | internal | enabled | up | 2014-08-
+------
The nova-api log shows the following error, after we try to disable/enable the child cell service.
output of nova-api.log:
2014-08-18 15:18:23.848 DEBUG nova.api.
2014-08-18 15:18:23.848 DEBUG nova.api.
2014-08-18 15:18:23.930 ERROR object [req-c8e2b844-
2014-08-18 15:18:23.930 TRACE object Traceback (most recent call last):
2014-08-18 15:18:23.930 TRACE object File "/opt/stack/
2014-08-18 15:18:23.930 TRACE object field.coerce(self, name, value))
2014-08-18 15:18:23.930 TRACE object File "/opt/stack/
2014-08-18 15:18:23.930 TRACE object return self._type.
2014-08-18 15:18:23.930 TRACE object File "/opt/stack/
2014-08-18 15:18:23.930 TRACE object return int(value)
2014-08-18 15:18:23.930 TRACE object ValueError: invalid literal for int() with base 10: 'region!child@5'
2014-08-18 15:18:23.930 TRACE object
2014-08-18 15:18:23.934 ERROR nova.api.openstack [req-c8e2b844-
2014-08-18 15:18:23.934 TRACE nova.api.openstack Traceback (most recent call last):
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return req.get_
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack application, catch_exc_
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack app_iter = application(
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return resp(environ, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return self.app(env, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return resp(environ, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return resp(environ, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/local/
2014-08-18 15:18:23.934 TRACE nova.api.openstack response = self.app(environ, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return resp(environ, start_response)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack resp = self.call_func(req, *args, **self.kwargs)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/usr/lib/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return self.func(req, *args, **kwargs)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack content_type, body, accept)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack action_result = self.dispatch(meth, request, action_args)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return method(req=request, **action_args)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack self.host_
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack db_service)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack service[key] = db_service[key]
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack setattr(self, name, value)
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack field.coerce(self, name, value))
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return self._type.
2014-08-18 15:18:23.934 TRACE nova.api.openstack File "/opt/stack/
2014-08-18 15:18:23.934 TRACE nova.api.openstack return int(value)
2014-08-18 15:18:23.934 TRACE nova.api.openstack ValueError: invalid literal for int() with base 10: 'region!child@5'
Changed in nova: | |
assignee: | nobody → Rajesh Tailor (rajesh-tailor) |
tags: | added: cells |
Changed in nova: | |
importance: | Undecided → High |
Changed in nova: | |
milestone: | none → kilo-1 |
status: | Fix Committed → Fix Released |
tags: | removed: in-stable-juno |
Changed in nova: | |
milestone: | kilo-1 → 2015.1.0 |
Fix proposed to branch: master /review. openstack. org/118672
Review: https:/