Fixes eos sending 'None' to device (#33015)

* Fix network_cli sometimes sending 'None' to device

* Also fix `--become-method=enable`
pull/33022/head
Nathaniel Case 7 years ago committed by GitHub
parent 5747bf34d1
commit 71a6dcdf3e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -59,7 +59,7 @@ def set_constant(name, value, export=vars()):
# CONSTANTS ### yes, actual ones
BECOME_METHODS = ['sudo', 'su', 'pbrun', 'pfexec', 'doas', 'dzdo', 'ksu', 'runas', 'pmrun']
BECOME_METHODS = ['sudo', 'su', 'pbrun', 'pfexec', 'doas', 'dzdo', 'ksu', 'runas', 'pmrun', 'enable']
BECOME_ERROR_STRINGS = {
'sudo': 'Sorry, try again.',
'su': 'Authentication failure',
@ -68,7 +68,8 @@ BECOME_ERROR_STRINGS = {
'doas': 'Permission denied',
'dzdo': '',
'ksu': 'Password incorrect',
'pmrun': 'You are not permitted to run this command'
'pmrun': 'You are not permitted to run this command',
'enable': '',
} # FIXME: deal with i18n
BECOME_MISSING_STRINGS = {
'sudo': 'sorry, a password is required to run sudo',
@ -78,7 +79,8 @@ BECOME_MISSING_STRINGS = {
'doas': 'Authorization required',
'dzdo': '',
'ksu': 'No password given',
'pmrun': ''
'pmrun': '',
'enable': '',
} # FIXME: deal with i18n
BLACKLIST_EXTS = ('.pyc', '.pyo', '.swp', '.bak', '~', '.rpm', '.md', '.txt')
BOOL_TRUE = BOOLEANS_TRUE

@ -116,7 +116,7 @@ class Connection(ConnectionBase):
cmd = json.loads(to_text(cmd, errors='surrogate_or_strict'))
kwargs = {'command': to_bytes(cmd['command'], errors='surrogate_or_strict')}
for key in ('prompt', 'answer', 'send_only'):
if key in cmd:
if cmd.get(key) is not None:
kwargs[key] = to_bytes(cmd[key], errors='surrogate_or_strict')
return self.send(**kwargs)
except ValueError:

Loading…
Cancel
Save