Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

# 

# (c) 2016 Red Hat Inc. 

# 

# This file is part of Ansible 

# 

# Ansible is free software: you can redistribute it and/or modify 

# it under the terms of the GNU General Public License as published by 

# the Free Software Foundation, either version 3 of the License, or 

# (at your option) any later version. 

# 

# Ansible is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

# GNU General Public License for more details. 

# 

# You should have received a copy of the GNU General Public License 

# along with Ansible. If not, see <http://www.gnu.org/licenses/>. 

# 

from __future__ import (absolute_import, division, print_function) 

__metaclass__ = type 

 

import re 

 

from ansible.plugins.terminal import TerminalBase 

from ansible.errors import AnsibleConnectionFailure 

 

 

class TerminalModule(TerminalBase): 

 

terminal_stdout_re = [ 

re.compile(br'[\r\n](?!\s*<)?(\x1b\S+)*[a-zA-Z_]{1}[a-zA-Z0-9-_.]*[>|#|%](?:\s*)*(\x1b\S+)*$'), 

re.compile(br'[\r\n]?[a-zA-Z]{1}[a-zA-Z0-9-_.]*\(.+\)#(?:\s*)$') 

] 

 

terminal_stderr_re = [ 

re.compile(br"% ?Error"), 

re.compile(br"^% \w+", re.M), 

re.compile(br"% ?Bad secret"), 

re.compile(br"invalid input", re.I), 

re.compile(br"(?:incomplete|ambiguous) command", re.I), 

re.compile(br"connection timed out", re.I), 

re.compile(br"[^\r\n]+ not found", re.I), 

re.compile(br"'[^']' +returned error code: ?\d+"), 

re.compile(br"syntax error"), 

re.compile(br"unknown command"), 

re.compile(br"user not present") 

] 

 

def on_open_shell(self): 

try: 

for cmd in (b'terminal length 0', b'terminal width 511'): 

self._exec_cli_command(cmd) 

except AnsibleConnectionFailure: 

raise AnsibleConnectionFailure('unable to set terminal parameters')