[Pulp-dev] cli without TTY fails with "IOError: [Errno 25] Inappropriate ioctl for device"

Andreas.Piesk at voeb-zvd.de Andreas.Piesk at voeb-zvd.de
Fri Apr 10 18:58:22 UTC 2020


Hello list,

i have the issue described in https://pulp.plan.io/issues/4068, it's not 
entirely fixed:

$ echo bla | while read A; do pulp-admin rpm repo list --repo-id $A; done
Traceback (most recent call last):
  File "/usr/bin/pulp-admin", line 9, in <module>
    load_entry_point('pulp-client-admin==2.21.1', 'console_scripts', 
'pulp-admin')()
  File "/usr/lib/python2.7/site-packages/pulp/client/admin/__init__.py", 
line 9, in main
    exit_code = launcher.main(read_config(), 
exception_handler_class=AdminExceptionHandler)
  File "/usr/lib/python2.7/site-packages/pulp/client/launcher.py", line 
102, in main
    extensions_loader.load_extensions(extensions_dir, context, role)
  File 
"/usr/lib/python2.7/site-packages/pulp/client/extensions/loader.py", line 
130, in load_extensions
    entry_point.load()(context)
  File 
"/usr/lib/python2.7/site-packages/pulp_rpm/extensions/admin/rpm_repo/pulp_cli.py", 
line 94, in initialize
    renderer = status.RpmStatusRenderer(context)
  File 
"/usr/lib/python2.7/site-packages/pulp_rpm/extensions/admin/status.py", 
line 46, in __init__
    self.download_bar = self.prompt.create_progress_bar()
  File "/usr/lib/python2.7/site-packages/pulp/client/extensions/core.py", 
line 420, in create_progress_bar
    width = self.terminal_size()[0]
  File "/usr/lib/python2.7/site-packages/okaara/prompt.py", line 379, in 
terminal_size
    ioctl = fcntl.ioctl(0, termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 
0, 0))
IOError: [Errno 25] Inappropriate ioctl for device

It's not only terminal_size() called from pulp, okaara itself calls 
terminal_size() internally:

$ echo bla | while read A; do pulp-admin rpm repo list --repo-id $A; done
Traceback (most recent call last):
  File "/usr/bin/pulp-admin", line 9, in <module>
    load_entry_point('pulp-client-admin==2.21.1', 'console_scripts', 
'pulp-admin')()
  File "/usr/lib/python2.7/site-packages/pulp/client/admin/__init__.py", 
line 9, in main
    exit_code = launcher.main(read_config(), 
exception_handler_class=AdminExceptionHandler)
  File "/usr/lib/python2.7/site-packages/pulp/client/launcher.py", line 
115, in main
    code = cli.run(args)
  File "/usr/lib/python2.7/site-packages/pulp/client/extensions/core.py", 
line 481, in run
    code = self.context.exception_handler.handle_exception(e)
  File 
"/usr/lib/python2.7/site-packages/pulp/client/extensions/exceptions.py", 
line 98, in handle_exception
    exit_code = handle_func(e)
  File 
"/usr/lib/python2.7/site-packages/pulp/client/extensions/exceptions.py", 
line 428, in handle_unexpected
    self.prompt.render_failure_message(msg)
  File "/usr/lib/python2.7/site-packages/pulp/client/extensions/core.py", 
line 182, in render_failure_message
    self.write(message, color=COLOR_FAILURE, tag=tag)
  File "/usr/lib/python2.7/site-packages/pulp/client/extensions/core.py", 
line 468, in write
    Prompt.write(self, content, new_line, center, color, tag, skip_wrap)
  File "/usr/lib/python2.7/site-packages/okaara/prompt.py", line 172, in 
write
    content = self.wrap(content)
  File "/usr/lib/python2.7/site-packages/okaara/prompt.py", line 266, in 
wrap
    wrap_width = self.terminal_size()[0]
  File "/usr/lib/python2.7/site-packages/okaara/prompt.py", line 379, in 
terminal_size
    ioctl = fcntl.ioctl(0, termios.TIOCGWINSZ, struct.pack('HHHH', 0, 0, 
0, 0))
IOError: [Errno 25] Inappropriate ioctl for device

Workaround is to disable wrap_to_terminal in admin.conf and consumer.conf:

#wrap_to_terminal: true
wrap_width: 80

Best Regards,
-ap





More information about the Pulp-dev mailing list