diff --git a/watcher/api/controllers/v1/service.py b/watcher/api/controllers/v1/service.py index 9933704ee..b843af160 100644 --- a/watcher/api/controllers/v1/service.py +++ b/watcher/api/controllers/v1/service.py @@ -56,8 +56,8 @@ class Service(base.APIBase): def _get_status(self): return self._status - def _set_status(self, name): - service = objects.Service.get_by_name(pecan.request.context, name) + def _set_status(self, id): + service = objects.Service.get(pecan.request.context, id) last_heartbeat = (service.last_seen_up or service.updated_at or service.created_at) if isinstance(last_heartbeat, six.string_types): @@ -108,7 +108,7 @@ class Service(base.APIBase): for field in fields: self.fields.append(field) setattr(self, field, kwargs.get( - field if field != 'status' else 'name', wtypes.Unset)) + field if field != 'status' else 'id', wtypes.Unset)) @staticmethod def _convert_with_links(service, url, expand=True): diff --git a/watcher/tests/api/v1/test_services.py b/watcher/tests/api/v1/test_services.py index fa5fd9159..ccbd45ff8 100644 --- a/watcher/tests/api/v1/test_services.py +++ b/watcher/tests/api/v1/test_services.py @@ -78,13 +78,18 @@ class TestListService(api_base.FunctionalTest): def test_many(self): service_list = [] - for idx in range(1, 6): + for idx in range(1, 4): service = obj_utils.create_test_service( - self.context, id=idx, host='CONTROLLER', + self.context, id=idx, host='CONTROLLER1', + name='SERVICE_{0}'.format(idx)) + service_list.append(service.id) + for idx in range(1, 4): + service = obj_utils.create_test_service( + self.context, id=3+idx, host='CONTROLLER2', name='SERVICE_{0}'.format(idx)) service_list.append(service.id) response = self.get_json('/services') - self.assertEqual(5, len(response['services'])) + self.assertEqual(6, len(response['services'])) for service in response['services']: self.assertTrue( all(val is not None for key, val in service.items()