@db_api.retry_db_errors<EOL><INDENT>def cfg_sync_routers(self, context, host, router_ids=None,<EOL>hosting_device_ids=None):<DEDENT>
adm_context = bc.context.get_admin_context()<EOL>try:<EOL><INDENT>routers = (<EOL>self._l3plugin.list_active_sync_routers_on_hosting_devices(<EOL>adm_context, host, router_ids, hosting_device_ids))<EOL><DEDENT>except AttributeError:<EOL><INDENT>routers = []<EOL><DEDENT>LOG.debug('<STR_LIT>',<EOL>{'<STR_LIT>': host, '<STR_LIT>': jsonutils.dumps(routers, indent=<NUM_LIT:5>)})<EOL>return routers<EOL>
Sync routers according to filters to a specific Cisco cfg agent.

        :param context: contains user information
        :param host: originator of callback
        :param router_ids: list of router ids to return information about
        :param hosting_device_ids: list of hosting device ids to get
            routers for.
        :returns: a list of routers with their hosting devices, interfaces and
            floating_ips