If you want to suggest a fix or improvement, please post a patch to this
file, and discuss the change in ovirt devel mailing list.


Must

- CI scripts and job (patch to jenkins project)

- travis integration - nicer than ovirt ci, but runs only on ubuntu

- Support GET with Range header

- Support cancellation
  Revoking ticket should cancel ongoing operations using it

- Break into small modules, eliminating globals. Access global state (such
  as tickets/sessions) using functions.

- Configuration file - simple ini file should be fine, check what is
  conf.d system suggested by Alon.

- Packaging
  Based on setup.py, hopefully without keeping a spec in the project

- progress/stats api
  Report stats for all or specific request


Maybe

- Implement io operations in a separate process, so inaccessible storage
  cannot cause the process to get stuck.

- Tune directio.BLOCKSIZE - current value was copied from vdsm

- Scale/stress tests

- Use autoconf for default settings (e.g /run/vdsm/ovirt-imageio-daemon.sock)

- Use server supporting multiple sockets, or implement such listener,
  passing connected sockets to actual http server (similar to
  protocoldetector in vdsm).

- Eliminate polling for shutdown - easily solved if we support multiple
  sockets, just add a pipe or eventfd for signaling shutdown.

- Daemonizing support for system without systemd.
  Check examples in ovirt-engine source:
  packaging/pythonlib/ovirt_engine/service.py
  packaging/services/ovirt-fence-kdump-listener/ovirt-fence-kdump-listener.py
