Return None from get_server_by_id on 404
The interface for get_server_by_id SHOULD be None if not found like the rest of the cloud layer. At some point in the past that got broken. Fix it. Change-Id: Ibd4fdc22418679c3562faaabe8fe3d307e8e8283
This commit is contained in:
parent
2e7a093893
commit
e8e99af4d3
@ -27,6 +27,7 @@ from openstack.cloud import exc
|
|||||||
from openstack.cloud import meta
|
from openstack.cloud import meta
|
||||||
from openstack.cloud import _normalize
|
from openstack.cloud import _normalize
|
||||||
from openstack.cloud import _utils
|
from openstack.cloud import _utils
|
||||||
|
from openstack import exceptions
|
||||||
from openstack import proxy
|
from openstack import proxy
|
||||||
from openstack import utils
|
from openstack import utils
|
||||||
|
|
||||||
@ -568,10 +569,20 @@ class ComputeCloudMixin(_normalize.Normalizer):
|
|||||||
return meta.add_server_interfaces(self, server)
|
return meta.add_server_interfaces(self, server)
|
||||||
|
|
||||||
def get_server_by_id(self, id):
|
def get_server_by_id(self, id):
|
||||||
data = proxy._json_response(
|
"""Get a server by ID.
|
||||||
self.compute.get('/servers/{id}'.format(id=id)))
|
|
||||||
server = self._get_and_munchify('server', data)
|
:param id: ID of the server.
|
||||||
return meta.add_server_interfaces(self, self._normalize_server(server))
|
|
||||||
|
:returns: A server dict or None if no matching server is found.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
data = proxy._json_response(
|
||||||
|
self.compute.get('/servers/{id}'.format(id=id)))
|
||||||
|
server = self._get_and_munchify('server', data)
|
||||||
|
return meta.add_server_interfaces(
|
||||||
|
self, self._normalize_server(server))
|
||||||
|
except exceptions.ResourceNotFound:
|
||||||
|
return None
|
||||||
|
|
||||||
def get_server_group(self, name_or_id=None, filters=None):
|
def get_server_group(self, name_or_id=None, filters=None):
|
||||||
"""Get a server group by name or ID.
|
"""Get a server group by name or ID.
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
The ``get_server_by_id`` method is supposed to return ``None`` if the
|
||||||
|
server in question can't be found, but a regression was introduced
|
||||||
|
causing it to raise ``ResourceNotFound`` instead. This has been corrected
|
||||||
|
and ``get_server_by_id`` returns ``None`` correctly again.
|
Loading…
x
Reference in New Issue
Block a user