Convert magnum service to requests_mock
Also add documentation and normalization, of which there was previously not. Change-Id: Ib4ba4fc748117ae4339683ae9fd4f9f958c3cc0e
This commit is contained in:
parent
360a87fe16
commit
7311bf0187
@ -433,3 +433,21 @@ A Cluster Template from magnum.
|
|||||||
updated_at=str() or None,
|
updated_at=str() or None,
|
||||||
volume_driver=str(),
|
volume_driver=str(),
|
||||||
properties=dict())
|
properties=dict())
|
||||||
|
|
||||||
|
MagnumService
|
||||||
|
-------------
|
||||||
|
|
||||||
|
A Magnum Service from magnum
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
MagnumService = dict(
|
||||||
|
location=Location(),
|
||||||
|
binary=str(),
|
||||||
|
created_at=str(),
|
||||||
|
disabled_reason=str() or None,
|
||||||
|
host=str(),
|
||||||
|
id=str(),
|
||||||
|
report_count=int(),
|
||||||
|
state=str(),
|
||||||
|
properties=dict())
|
||||||
|
@ -905,3 +905,34 @@ class Normalizer(object):
|
|||||||
|
|
||||||
ret['properties'] = cluster_template
|
ret['properties'] = cluster_template
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def _normalize_magnum_services(self, magnum_services):
|
||||||
|
ret = []
|
||||||
|
for magnum_service in magnum_services:
|
||||||
|
ret.append(self._normalize_magnum_service(magnum_service))
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def _normalize_magnum_service(self, magnum_service):
|
||||||
|
"""Normalize Magnum magnum_services."""
|
||||||
|
magnum_service = magnum_service.copy()
|
||||||
|
|
||||||
|
# Discard noise
|
||||||
|
magnum_service.pop('links', None)
|
||||||
|
magnum_service.pop('human_id', None)
|
||||||
|
# model_name is a magnumclient-ism
|
||||||
|
magnum_service.pop('model_name', None)
|
||||||
|
|
||||||
|
ret = munch.Munch(location=self._get_current_location())
|
||||||
|
|
||||||
|
for key in (
|
||||||
|
'binary',
|
||||||
|
'created_at',
|
||||||
|
'disabled_reason',
|
||||||
|
'host',
|
||||||
|
'id',
|
||||||
|
'report_count',
|
||||||
|
'state',
|
||||||
|
'updated_at'):
|
||||||
|
ret[key] = magnum_service.pop(key)
|
||||||
|
ret['properties'] = magnum_service
|
||||||
|
return ret
|
||||||
|
@ -2251,5 +2251,5 @@ class OperatorCloud(openstackcloud.OpenStackCloud):
|
|||||||
:raises: OpenStackCloudException on operation error.
|
:raises: OpenStackCloudException on operation error.
|
||||||
"""
|
"""
|
||||||
with _utils.shade_exceptions("Error fetching Magnum services list"):
|
with _utils.shade_exceptions("Error fetching Magnum services list"):
|
||||||
return self.manager.submit_task(
|
return self._normalize_magnum_services(
|
||||||
_tasks.MagnumServicesList())
|
self.manager.submit_task(_tasks.MagnumServicesList()))
|
||||||
|
@ -10,30 +10,31 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
import mock
|
|
||||||
import munch
|
|
||||||
|
|
||||||
import shade
|
|
||||||
from shade.tests.unit import base
|
from shade.tests.unit import base
|
||||||
|
|
||||||
|
|
||||||
magnum_service_obj = munch.Munch(
|
magnum_service_obj = dict(
|
||||||
binary='fake-service',
|
binary='fake-service',
|
||||||
state='up',
|
created_at='2015-08-27T09:49:58-05:00',
|
||||||
report_count=1,
|
disabled_reason=None,
|
||||||
human_id=None,
|
|
||||||
host='fake-host',
|
host='fake-host',
|
||||||
|
human_id=None,
|
||||||
id=1,
|
id=1,
|
||||||
disabled_reason=None
|
report_count=1,
|
||||||
|
state='up',
|
||||||
|
updated_at=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestMagnumServices(base.TestCase):
|
class TestMagnumServices(base.RequestsMockTestCase):
|
||||||
|
|
||||||
@mock.patch.object(shade.OpenStackCloud, 'magnum_client')
|
def test_list_magnum_services(self):
|
||||||
def test_list_magnum_services(self, mock_magnum):
|
self.register_uris([dict(
|
||||||
mock_magnum.mservices.list.return_value = [magnum_service_obj, ]
|
method='GET',
|
||||||
|
uri='https://container-infra.example.com/v1/mservices',
|
||||||
|
json=dict(mservices=[magnum_service_obj]))])
|
||||||
mservices_list = self.op_cloud.list_magnum_services()
|
mservices_list = self.op_cloud.list_magnum_services()
|
||||||
mock_magnum.mservices.list.assert_called_with(detail=False)
|
self.assertEqual(
|
||||||
self.assertEqual(mservices_list[0], magnum_service_obj)
|
mservices_list[0],
|
||||||
|
self.cloud._normalize_magnum_service(magnum_service_obj))
|
||||||
|
self.assert_calls()
|
||||||
|
Loading…
Reference in New Issue
Block a user