Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • N noc
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 455
    • Issues 455
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 25
    • Merge requests 25
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • noc
  • noc
  • Issues
  • #1761
Closed
Open
Issue created Jan 02, 2022 by DarkL@DarkLContributor

При использовании obj_parser в вызове cli не обрабатывается pattern_syntax_error

Вызываем в скрипте

self.cli(cmd, obj_parser=self.parse_ports, cmd_next="n", cmd_stop="q")

В core/script/cli/cli.py строка есть проверка self.profile.rx_pattern_syntax_error.search(self.buffer), но self.buffer всегда пуст.

Если заменить на buffer то обработка происходит, но появляется еще проблема при использовании конструкции вида

        cmd = "show ddm ports status"
        try:
            ports = self.cli(cmd, obj_parser=self.parse_ports, cmd_next="n", cmd_stop="q")
        except self.CLISyntaxError:
            cmd = "show ddm ports all status"
            try:
                ports = self.cli(cmd, obj_parser=self.parse_ports, cmd_next="n", cmd_stop="q")
            except self.CLISyntaxError:
                raise self.NotSupportedError()

Происходит обработка pattern_syntax_error и выполняется попытка отправки следующеё команды, но свич еще не закончил отвечать на предыдущую и как результат и новая конмада не проходит.

2022-01-02 10:42:38,643 [asyncio] Using selector: EpollSelector
2022-01-02 10:42:38,644 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Send: b'show ddm ports status\n'
2022-01-02 10:42:38,644 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Parsing object stream
2022-01-02 10:42:38,755 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b's'
2022-01-02 10:42:38,757 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'h'
2022-01-02 10:42:38,760 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'o'
2022-01-02 10:42:38,762 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'w'
2022-01-02 10:42:38,764 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b' '
2022-01-02 10:42:38,767 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'd'
2022-01-02 10:42:38,769 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'd'
2022-01-02 10:42:38,772 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'm'
2022-01-02 10:42:38,774 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b' '
2022-01-02 10:42:38,776 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'p'
2022-01-02 10:42:38,779 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'o'
2022-01-02 10:42:38,781 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'r'
2022-01-02 10:42:38,783 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b't'
2022-01-02 10:42:38,785 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b's'
2022-01-02 10:42:38,788 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b' '
2022-01-02 10:42:38,790 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b's'
2022-01-02 10:42:38,793 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b't'
2022-01-02 10:42:38,795 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'a'
2022-01-02 10:42:38,797 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b't'
2022-01-02 10:42:38,799 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'u'
2022-01-02 10:42:38,802 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b's'
2022-01-02 10:42:38,804 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'\r'
2022-01-02 10:42:38,806 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'\n'
2022-01-02 10:42:38,859 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'Command: show ddm ports\r\n'
2022-01-02 10:42:38,861 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'\r\n'
2022-01-02 10:42:38,863 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'Next possible completions:\r\n'
2022-01-02 10:42:38,864 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Command: b'show ddm ports status'
2022-01-02 10:42:38,864 [asyncio] Using selector: EpollSelector
2022-01-02 10:42:38,864 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Send: b'show ddm ports all status\n'
2022-01-02 10:42:38,865 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Parsing object stream
2022-01-02 10:42:38,865 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'<portlist>          all                 \r\n'
2022-01-02 10:42:38,868 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'\r\n'
2022-01-02 10:42:38,874 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Received: b'\rDGS-1210-12TS/ME:5# '
2022-01-02 10:42:38,874 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Match: b'DGS\\-1210\\-12TS/ME:5(?<!:(3|6))(?<!:operator)(?<!:user)#'
2022-01-02 10:42:38,874 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Changing state to <prompt>
2022-01-02 10:42:38,875 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Setting timeout: 3600s, error=CLIConnectionReset
2022-01-02 10:42:38,875 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Prompt matched
2022-01-02 10:42:38,875 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Command: b'show ddm ports all status'
2022-01-02 10:42:38,875 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Shutdown session
2022-01-02 10:42:38,875 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Closing stream
2022-01-02 10:42:38,876 [asyncio] Using selector: EpollSelector
2022-01-02 10:42:38,876 [script] [DLink.DxS.get_dom_status|192.168.0.14] [telnet] Send: b'logout'
2022-01-02 10:42:38,876 [script] [DLink.DxS.get_dom_status|192.168.0.14] Result: []
2022-01-02 10:42:38,877 [script] [DLink.DxS.get_dom_status|192.168.0.14] Complete (619.56ms)

NOC About

20.4+master.2223.f6d8cdb3

Assignee
Assign to
Time tracking