Project

General

Profile

Bug #24420

Module 'dashboard' has failed: No module named routes

Added by Benjamin Lu over 1 year ago. Updated 3 months ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
-
Category:
dashboard/general
Target version:
-
Start date:
06/04/2018
Due date:
% Done:

0%

Source:
Community (user)
Tags:
Backport:
mimic, nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

Description

ceph -s
cluster:
id: 8754e3c7-b632-4438-8c33-a15f06959639
health: HEALTH_ERR
Module 'dashboard' has failed: No module named routes =============================================================================
$ ceph --version
ceph version 13.2.0 (79a10589f1f80dfe21e8f9794365ed98143071c4) mimic (stable)

services:
mon: 1 daemons, quorum ubuntu01
mgr: ubuntu01.mon (active)
osd: 6 osds: 6 up, 6 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 6.1 GiB used, 5.5 TiB / 5.5 TiB avail
pgs:

Related issues

Copied to mgr - Backport #40690: mimic: Module 'dashboard' has failed: No module named routes New
Copied to mgr - Backport #40691: nautilus: Module 'dashboard' has failed: No module named routes Resolved

History

#1 Updated by Ricardo Dias over 1 year ago

Please make sure you have the "python-routes" package installed in your system.

apt-get install python-routes

#2 Updated by Benjamin Lu over 1 year ago

"sudo apt-get install python-routes" then restart cluster fixed the error. I wonder why during the cluster build, ceph does not giving any errors regarding the pkg missing ?

Thanks Richrdo Dias for help !

Close this bug now as fixed !

Ben

#3 Updated by Lenz Grimmer over 1 year ago

Benjamin Lu wrote:

"sudo apt-get install python-routes" then restart cluster fixed the error. I wonder why during the cluster build, ceph does not giving any errors regarding the pkg missing ?

This is not a build dependency, but a runtime dependency that seems to have not been properly resolved by the package installer. Did you use pre-built Ceph packages, or did you build from source?

#4 Updated by Benjamin Lu over 1 year ago

I used "ceph-deploy" for ceph pkg installation:

$ ceph-deploy install --release mimic <ceph-node>

#5 Updated by Nathan Cutler over 1 year ago

  • Project changed from mgr to Ceph-deploy
  • Category deleted (dashboard/general)
  • Assignee deleted (Lenz Grimmer)
  • Target version deleted (v13.2.0)

#6 Updated by Nathan Cutler over 1 year ago

@Benjamin: Please consider using ceph-ansible instead of ceph-deploy

http://docs.ceph.com/ceph-ansible/master/

#7 Updated by Alfredo Deza over 1 year ago

  • Project changed from Ceph-deploy to mgr
  • Category set to dashboard/general

I actually think this is a packaging error, ceph-deploy isn't doing anything odd here

#8 Updated by John Spray over 1 year ago

I think I might have had a similar issue at some stage, that on some platforms we were getting python-routes as a side-effect of another package, but not always. Annoyingly I think I just hacked around it at the time.

We probably need an explicit dependency added to the packaging.

#9 Updated by Ricardo Dias about 1 year ago

  • Status changed from New to Resolved

#10 Updated by Hans van den Bogert 6 months ago

What was the resolution? I'm still hitting this with Nautilus. Seems to me the ceph-mgr-dashboard still needs python-routes as a dependency

#11 Updated by Kefu Chai 3 months ago

$ grep -C5 routes  /usr/lib/python2.7/dist-packages/cherrypy/_cpdispatch.py

        Set full_result to True if you wish the controller
        and the action to be passed on to the page handler
        parameters. By default they won't be.
        """ 
        import routes
        self.full_result = full_result
        self.controllers = {}
        self.mapper = routes.Mapper(**mapper_options)
        self.mapper.controller_scan = self.controllers.keys

    def connect(self, name, route, controller, **kwargs):
        self.controllers[name] = controller
        self.mapper.connect(name, route, controller=name, **kwargs)
--
        else:
            cherrypy.serving.request.handler = cherrypy.NotFound()

    def find_handler(self, path_info):
        """Find the right page handler, and set request.config.""" 
        import routes

        request = cherrypy.serving.request

        config = routes.request_config()
        config.mapper = self.mapper
        if hasattr(request, 'wsgi_environ'):
            config.environ = request.wsgi_environ
        config.host = request.headers.get('Host', None)
        config.protocol = request.scheme

#12 Updated by Ricardo Marques 3 months ago

  • Status changed from Resolved to Need Review
  • Pull request ID set to 28835

#13 Updated by Kefu Chai 3 months ago

  • Status changed from Need Review to Pending Backport
  • Backport set to mimic, nautilus

#14 Updated by Nathan Cutler 2 months ago

  • Copied to Backport #40690: mimic: Module 'dashboard' has failed: No module named routes added

#15 Updated by Nathan Cutler 2 months ago

  • Copied to Backport #40691: nautilus: Module 'dashboard' has failed: No module named routes added

Also available in: Atom PDF