'Schedule under-scheduled routers to L3 Agents.
An under-scheduled router is a router that is either completely
un-scheduled (scheduled to 0 agents), or an HA router that is
under-scheduled (scheduled to less than max_l3_agents configuration
option. The function finds all the under-scheduled routers and
schedules them.
:param host: if unspecified, under-scheduled routers are scheduled to
all agents (not necessarily from the requesting host). If
specified, under-scheduled routers are scheduled only to
the agent on \'host\'.
:param router_ids: currently unused and deprecated.
kept for backward compatibility.'

def auto_schedule_routers(self, plugin, context, host, router_ids=None):

    if (router_ids is not None):
        versionutils.report_deprecated_feature(LOG, _LW('Passing    router_ids    has    no    effect    on    L3    agent    scheduling.    This    is    deprecated    and    will    be    removed    in    the    Queens    release.'))
    l3_agent = plugin.get_enabled_agent_on_host(context, lib_const.AGENT_TYPE_L3, host)
    if (not l3_agent):
        return
    underscheduled_routers = self._get_underscheduled_routers(plugin, context)
    target_routers = self._get_routers_can_schedule(plugin, context, underscheduled_routers, l3_agent)
    for router in target_routers:
        self.schedule(plugin, context, router['id'], candidates=[l3_agent])
