(Difference between revisions)
Jump to: navigation, search

Vdsm TODO

(refactoring)
(Features)
Line 27: Line 27:
  
 
* let Vdsm install and run on hosts with no iscsid (report that iscsi is missing to Engine?)
 
* let Vdsm install and run on hosts with no iscsid (report that iscsi is missing to Engine?)
 +
 +
* add hooks for device hotplug
 +
 +
* add hooks for network operations
  
 
== refactoring ==
 
== refactoring ==

Revision as of 09:07, 8 August 2012

Contents

What Can You Do for Vdsm

Cleanup

  • pylint -E `git ls-files | grep '.py$'` makes me cry. A lot of it is "only" about bad style, but we should clear it up and add it to our make check-local. We should grow up and pass pychecker too.
  • Improve Vdsm portability. We are very much Fedora-centric at best. Do you want to have Vdsm on your pet distribution? Own that port!
  • remove all usage of sudo, and replace with specific calls to superVdsm.
  • have a logrotate-dependent logrotate.conf that works on Fedora and EL equally well.
  • Configure vdsm to use syslog -- done by Mark Wu, but now we need to stop trashing the console.
  • Simplify the SysV init script, split most of its code to a "vdsm-tool". vdsm-tool should assume responsibility on hairy stuff such as configuring multipath, which should not be the business of Vdsm proper.
  • running vdsClient from the project root dir ends with tears. Some PYTHONPATH games should fix this.

Testing

  • write an automatic script that runs on each and every new change to gerrit, and adds an insulting comment if pyflakes fails for the new change.
  • extend the former script, so that it runs a complete `make distcheck && make install` in a confined environment (chroot, VM) and reports if there is an error.
  • run unit and functional tests on reviewed patches (before submission).

Features

  • Support striping for disk images.
  • let Vdsm install and run on hosts with no iscsid (report that iscsi is missing to Engine?)
  • add hooks for device hotplug
  • add hooks for network operations

refactoring

  • In vm.py, libvirtvm.py, clientIF.py there is a mess of prepare*Path functions (end their respective teardowns), which is too complex to fathom. We have to convert all drive specifications (PDIV,GUID,path) into Drive object at the API entry.
  • lvm.PV.guid is devicemapper-owned piece of information; lvm has nothing to do with it, and jumps through hoops to produce it. Instead, it should be produced by devicemapper and consumed directly by blockSD.
  • Define an API.VMState "enumeration" and use API.VMState.UP instead of the string 'Up'.
  • factor betterPopen and betterThreading out of vdsm. They deserve a pipy review under the names cPopen and pthreading respectively.

Bugzilla

  • pick one of the NEW bugs, post a patch to gerrit, and make the bug yours.