Version 4 (modified by desai, 17 years ago) (diff) |
---|
Bcfg2 Client Code Refactoring
This branch is for work in decomposing the platform-specific client modules into service/packaging system-specific modules; the platform-specific modules will then just import the service/packaging system-specific modules they require (e.g. Redhat.py would import rpm.py and chkconfig.py, all the platforms will import encap.py, etc.)
A mailing list thread with more discussion of this is here:
Ticket #73 describes some aspects of this issue.
Desai's 4-Step Plan
- create a module Bcfg2.Client.Tool.BaseTool that defines an API for all tools (things like Bcfg2.Client.Tool.RPM and Bcfg2.Client.Tool.SMF, etc)
- build a set of error types that can be raised during tool instantiation and operation
- modify the Bcfg2.Client.Frame code to figure out what methods to call tools for entry verification, installation and removal.
- is things like schema updates and metadata code updates
Desai might try to hack up a baseline for the BaseTool class soon.
Implementation Status
This work is happening at:
https://svn.mcs.anl.gov/repos/bcfg/branches/refactor/client
Bcfg2.Client.Frame is nearly completely finished. (It mainly redirects calls to underlying tools.)
Tool | Status | Who |
RPM | Verify-Only | NLD |
POSIX | Verify-Only | NLD |
Encap | DC | |
APT | ||
SYSV | ||
ChkConfig? | ||
Update-RC.d | ||
SMF | ||
Launchd | ||
Emerge |