On 09/08/2014 02:49 AM, Jörgen Maas wrote:
Hi Alan,
In short; i agree with all your points and would be VERY happy to
merge your changes.
On Mon, Sep 8, 2014 at 12:18 AM, Alan Evangelista
<alanoe(a)linux.vnet.ibm.com <mailto:alanoe@linux.vnet.ibm.com>> wrote:
I see some terms used in Cobbler which were probably created a
long time ago and are
currently outdated. I'd like to suggest renamings which would make
names reflect better
current code. Examples:
- "kickstart" is commonly used in Cobbler to refer to the file
which is used by Linux installers
to automate Linux installation and configuration. Cobbler supports
Debian, Suse and Red Hat based
distros. However, "kickstart" term is exclusive to Red Hat based
distros, Suse based distros use
"autoyast" and Debian based distros use "preseed". A generic
term
(eg auto-installation file)
would prevent confusion.
- BootAPI and BootCLI are not intuitive names. It seems Cobbler is
limited to managing network
boot. I think CobblerAPI and CobblerCLI are better names.
- I'd expect that PXEGen class would handle all PXE (DHCP + TFTP)
files. However, it builds mainly
boot loader configuration files and files which will be copied to
TFTP server in a Cobbler server,
it does not build DHCP conf file. Also, Cobbler currently support
archs which do not use PXE,
such as Power. I'd rename this to TFTPGen.
- Config class manages collections of Cobbler objects (system,
profile, distro, etc.). Config is
already used in several different contexts in Cobbler, such as
Cobbler config file, DHCP config file,
boot loader config file, etc. It takes a while to figure out that
system/profile/distro data created
by user is maintained by this class. I think that
CollectionManager or something similar would be more
intuitive.
- cobbler/modules/serializer_catalog.py serializes/deserializes
objects to/from files. Catalog is a
generic term which does not add much. Renaming to serializer_file
would make this much easier to understand.
I have already implemented most of these changes in my customized
Cobbler. If the ideas are welcome,
I could apply them in upstream code and submit patches.
All those changes were merged to master branch. My next steps are:
- refactor obj blending, boot loader conf generation, power
management, multiple network interface handling code
- assure XML-RPC interface and CLI are just wrappers and contain
minimum logic
- support selection of boot loader in system
- add support to Petitboot boot loader
- split Cobbler from koan and puppet (improve module architecture if
necessary)
- support selection of automatic installation file format in distros
which allow more than 1 format (eg Debian and Ubuntu allow kickstart and
preseed)
- support basic ACL in Cobbler objects
- add script to gather provisioning statistics
- create a makefile target to create .deb packages
Regards,
Alan Evangelista