code: def get_dbs(self, attr, args, kwargs, **fkwargs):
          
          if not self._ready:
              if not self.setup_router(args=args, kwargs=kwargs, **fkwargs):
                  raise self.UnableToSetupRouter()
  
          retval = self._pre_routing(attr=attr, args=args, kwargs=kwargs, **fkwargs)
          if retval is not None:
              args, kwargs = retval
  
          if not (args or kwargs):
              return self.cluster.hosts.keys()
  
          try:
              db_nums = self._route(attr=attr, args=args, kwargs=kwargs, **fkwargs)
          except Exception as e:
              self._handle_exception(e)
              db_nums = []
  
          return self._post_routing(attr=attr, db_nums=db_nums, args=args, kwargs=kwargs, **fkwargs)
docs: Returns a list of db keys to route the given call to.
  
          :param attr: Name of attribute being called on the connection.
          :param args: List of arguments being passed to ``attr``.
          :param kwargs: Dictionary of keyword arguments being passed to ``attr``.
  
          >>> redis = Cluster(router=BaseRouter)
          >>> router = redis.router
          >>> router.get_dbs('incr', args=('key name', 1))
          [0,1,2]