(Difference between revisions)
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.
