diff --git a/nailgun/nailgun/api/handlers/disks.py b/nailgun/nailgun/api/handlers/disks.py index cbcd2fc998..9e18461536 100644 --- a/nailgun/nailgun/api/handlers/disks.py +++ b/nailgun/nailgun/api/handlers/disks.py @@ -27,7 +27,6 @@ from nailgun.api.validators.node import NodeDisksValidator from nailgun.db import db from nailgun.db.sqlalchemy.models import Node from nailgun.db.sqlalchemy.models import NodeAttributes -from nailgun.errors import errors from nailgun.logger import logger from nailgun.volumes.manager import DisksFormatConvertor @@ -106,14 +105,10 @@ class NodeVolumesInformationHandler(BaseHandler): * 404 (node not found in db) """ node = self.get_object_or_404(Node, node_id) - - volumes_info = [] - try: - volumes_info = DisksFormatConvertor.get_volumes_info(node) - except errors.CannotFindVolumesInfoForRole: + if node.cluster is None: logger.error(traceback.format_exc()) raise web.notfound( message='Cannot calculate volumes info. ' - 'Please, add node to a cluster.') - + 'Please, add node to an environment.') + volumes_info = DisksFormatConvertor.get_volumes_info(node) return volumes_info diff --git a/nailgun/nailgun/errors/__init__.py b/nailgun/nailgun/errors/__init__.py index d7d2531c86..36a91e0a37 100644 --- a/nailgun/nailgun/errors/__init__.py +++ b/nailgun/nailgun/errors/__init__.py @@ -39,7 +39,6 @@ default_messages = { # disk errors "NotEnoughFreeSpace": "Not enough free space", - "CannotFindVolumesInfoForRole": "Cannot find volumes info for role", "NotEnoughOsdNodes": "Not enough OSD nodes", # network errors diff --git a/nailgun/nailgun/test/unit/test_node_disks.py b/nailgun/nailgun/test/unit/test_node_disks.py index c0bb5c02cc..4aa3f530cd 100644 --- a/nailgun/nailgun/test/unit/test_node_disks.py +++ b/nailgun/nailgun/test/unit/test_node_disks.py @@ -458,6 +458,17 @@ class TestVolumeManager(BaseIntegrationTest): self.assertEquals(volumes_size, disk['size']) + def test_volume_request_without_cluster(self): + self.env.create_node(api=True) + node = self.env.nodes[-1] + resp = self.app.get( + reverse('NodeVolumesInformationHandler', + kwargs={'node_id': node.id}), + headers=self.default_headers, + expect_errors=True + ) + self.assertEquals(404, resp.status) + def test_allocates_all_free_space_for_os_for_controller_role(self): node = self.create_node('controller') disks = only_disks(node.volume_manager.volumes)