[PATCH 00/29] Improve status and error reporting

Samuel Mendoza-Jonas sam at mendozajonas.com
Mon Dec 19 15:18:46 AEDT 2016


This hefty set of patches aim to improve the clarity and relevance of status
and error messages in the user interface. These can largely be grouped together
as:

- Addition of a new 'status log' screen
A new screen holds a full backlog of all status messages sent by pb-discover.
This backlog is also available after exiting and restarting the UI.

- Improved relevance of status messages
Several status messages are added, clarified, or removed to be more useful to
the user. This also includes the addition of a number of internal helper
functions to make the addition of new messages easier.

- Live reporting of download progress
lib/process and discover/paths are extended to support live handling of the
output from asynchronous processes. For utilities concerned with file transfer
(tftp, wget, etc) this allows pb-discover to track download progress. For
small configuration files this is usually instant but becomes much more useful
when tracking the download of larger files such as the kernel and initrd during
boot. This supersedes parts of the previously posted series which adds support
for loading ISO images.

Jeremy Kerr (21):
  types: shorten boot_status definitions
  types: Remove detail and progress from struct status
  ui/ncurses: Add status log UI
  ui/ncurses: remove "Info:" / "Error:" prefix from status area
  discover: separate status-reporting function from boot() callback
  discover: Add helpers for status reporting
  discover: use helpers for status reporting
  discover: Add device-specific status reporting functions
  discover: Use device_handler_status_dev_* for device-specific status
  discover: add handler reference to struct discover_context
  discover: Add reference to url in load_url_result
  discover/status: remove completion messages
  discover/status: report status on link configuration
  discover/status: Be more specific about DHCP event status message
  discover/status: report attempts at PXE configuration download
  discover/status: report on PXE download failures
  discover/status: make boot status calls more consistent
  discover/status: Add parse status for GRUB2, yaboot & kboot parsers
  discover/status: Use full URL in parse status message
  discover/status: Add status messages for payload download results
  ui/ncurses/text-screen: trim long lines

Samuel Mendoza-Jonas (8):
  discover/boot: Improve kexec error reporting
  lib/process: Allow process output to be retrieved on each event
  discover/paths: Add stdout callback parameter for load_url_async()
  discover/device-handler: Add aggregated download progress updates
  discover/paths: Parse Busybox progress information
  discover/paths: Announce download completion
  discover: Maintain a backlog of status updates
  ui/ncurses: Don't announce pb-discover connection

 configure.ac                  |   6 +-
 discover/boot.c               | 148 ++++++++++++---------
 discover/boot.h               |   2 +-
 discover/device-handler.c     | 303 ++++++++++++++++++++++++++++++------------
 discover/device-handler.h     |  21 ++-
 discover/discover-server.c    |  29 +++-
 discover/discover-server.h    |   4 +-
 discover/grub2/grub2.c        |   4 +
 discover/kboot-parser.c       |   4 +
 discover/network.c            |  13 +-
 discover/paths.c              | 113 ++++++++++++++--
 discover/paths.h              |   6 +-
 discover/pxe-parser.c         |  47 +++++--
 discover/yaboot-parser.c      |   4 +
 lib/pb-protocol/pb-protocol.c |  36 ++---
 lib/pb-protocol/pb-protocol.h |   6 +-
 lib/process/process.c         |  41 +++++-
 lib/process/process.h         |   7 +
 lib/types/types.h             |  16 ++-
 test/parser/handler.c         |   4 +-
 test/parser/utils.c           |   9 +-
 ui/common/discover-client.c   |   6 +-
 ui/common/discover-client.h   |   4 +-
 ui/ncurses/Makefile.am        |   5 +-
 ui/ncurses/nc-cui-help.c      |   2 +
 ui/ncurses/nc-cui.c           |  51 +++++--
 ui/ncurses/nc-cui.h           |   3 +
 ui/ncurses/nc-menu.c          |   3 +
 ui/ncurses/nc-statuslog.c     | 108 +++++++++++++++
 ui/ncurses/nc-statuslog.h     |  35 +++++
 ui/ncurses/nc-textscreen.c    |  17 ++-
 ui/test/discover-test.c       |   4 +-
 32 files changed, 814 insertions(+), 247 deletions(-)
 create mode 100644 ui/ncurses/nc-statuslog.c
 create mode 100644 ui/ncurses/nc-statuslog.h

-- 
2.10.2



More information about the Petitboot mailing list