Bug #43524
Updated by Ernesto Puerta over 4 years ago
Currently, Ceph-Dashboard iSCSI component displays a brief "500 - Internal Error Server" on ceph-iscsi REST API errors. While users can access logs or enable tracebacks, in this specific case a more descriptive message would be welcome. An example of this, when an iSCSI admin tries to remove a target where some user is logged on to, the back-end ceph-iscsi REST API will return a "Client 'iqn.1994-05.xxxx' is logged in to iqn.2001-07.xxxxxx - unable to delete until it's logged out", on", but that message will never hit the dashboard admin. See details below: <pre> exception : Dec 25 10:45:00 xxxxxxx005 rbd-target-api[909]: ::ffff:10.8.128.5 - - [25/Dec/2019 10:45:00] "DELETE /api/client/iqn.2001-07.com.ceph:1577083503381/iqn.1994-05.com.yyyyyy:xxxxxxx025 HTTP/1.1" 400 - Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: [25/Dec/2019:10:45:00] HTTP Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: Traceback (most recent call last): Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/lib/python3.6/site-packages/cherrypy/_cprequest.py", line 638, in respond Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: self._do_respond(path_info) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/lib/python3.6/site-packages/cherrypy/_cprequest.py", line 697, in _do_respond Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: response.body = self.handler() Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/lib/python3.6/site-packages/cherrypy/lib/encoding.py", line 219, in __call__ Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: self.body = self.oldhandler(*args, **kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/lib/python3.6/site-packages/cherrypy/_cptools.py", line 230, in wrap Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: return self.newhandler(innerfunc, *args, **kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/services/exception.py", line 88, in dashboard_exception_handler Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: return handler(*args, **kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/lib/python3.6/site-packages/cherrypy/_cpdispatch.py", line 54, in __call__ Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: return self.callable(*self.args, **self.kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 649, in inner Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: ret = func(*args, **kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 842, in wrapper Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: return func(*vpath, **params) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 454, in wrapper Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: raise ex Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 444, in wrapper Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: status, value = task.wait(self.wait_for) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/tools.py", line 623, in wait Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: raise self.exception Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/tools.py", line 540, in _run Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: val = self.task.fn(*self.task.fn_args, **self.task.fn_kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/iscsi.py", line 286, in set Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: portals, disks, clients, groups) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/controllers/iscsi.py", line 331, in _delete Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: client_iqn) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/rest_client.py", line 507, in func_wrapper Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: **kwargs) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/services/iscsi_client.py", line 166, in delete_client Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: return request() Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/rest_client.py", line 313, in __call__ Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: data, raw_content) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: File "/usr/share/ceph/mgr/dashboard/rest_client.py", line 433, in do_request Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: resp.content) Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: dashboard.rest_client.RequestException: iscsi REST API failed request with status code 400 Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: (b'{\n "message": "Client \'iqn.1994-05.com.yyyyyy:xxxxxxx025\' is logged in to' Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: b" iqn.2001-07.com.ceph:1577083503381- unable to delete until it's logged " Dec 25 10:45:00 xxxxxxx005 ceph-mgr[14248]: b'out"\n}\n') </pre>