Python Read System Config Kickstart Source Code

Reference:
http://bbs.chinaunix.net/home.php?mod=space&uid=20172731&do=thread&view=me&type=thread&order=dateline&from=space&page=7
http://bbs.chinaunix.net/thread-1302613-1-1.html
http://bbs.chinaunix.net/thread-1304509-1-1.html
http://bbs.chinaunix.net/thread-1305463-1-1.html
http://bbs.chinaunix.net/thread-1305464-1-1.html
http://bbs.chinaunix.net/thread-1308268-1-1.html

之所以选择system-config-kickstart,是因为一直都熟悉这个工具,明白其功能,但不明白其用python是如何实现的,对于python在linux的系统管理方面的作为,最为精辟的论述莫过于《Python for Unix and Linux System
Administration》中第266页中如下内容:
Red Hat is doing a whole slew of things with Python as a company and as an operating system.
从系统管理配置工具到大名鼎鼎的anaconda再到现在的虚拟化管理甚至是集群、存储的管理工具,哪一个不是python写的?
当然,在系统中用python做工具的不止redhat,ubuntu也有不少工具,gentoo,arch等等不一而论,之所以选择redhat的工具,是因为其服务器的领头地位。
如上便是我记录学习历程的理由。
其网址是http://fedoraproject.org/wiki/SystemConfig/Tools,可以下载其正在开发中的版本。下载后,其文件有:

/data/lee/tmp/python/redhat_system_tools/system-config-kickstart $ tree .
.
|-- AUTHORS  //作者
|-- COPYING   //软件版权所有、及协议
|-- Makefile   //make编译配置文件
|-- doc      //文档目录
|   |-- docbook.css
|   |-- figs
|   |   |-- ksconfig-auth.png
|   |   |-- ksconfig-basic.png
|   |   |-- ksconfig-bootloader.png
|   |   |-- ksconfig-confirm.png
|   |   |-- ksconfig-firewall.png
|   |   |-- ksconfig-install.png
|   |   |-- ksconfig-network.png
|   |   |-- ksconfig-part-options.png
|   |   |-- ksconfig-partitions.png
|   |   |-- ksconfig-pkgs.png
|   |   |-- ksconfig-postscript.png
|   |   |-- ksconfig-prescript.png
|   |   |-- ksconfig-raid-device.png
|   |   |-- ksconfig-raid-new.png
|   |   |-- ksconfig-xconfig-general.png
|   |   |-- ksconfig-xconfig-monitor.png
|   |   |-- ksconfig-xconfig-videocard.png
|   |   `-- rhlogo.png
|   |-- index.html
|   |-- intro.html
|   |-- legalnotice.html
|   |-- rhdocs-man.css
|   |-- stylesheet-images
|   |   |-- caution.png
|   |   |-- important.png
|   |   |-- note.png
|   |   |-- tip.png
|   |   `-- warning.png
|   |-- system-config-kickstart-auth.html
|   |-- system-config-kickstart-basic.html
|   |-- system-config-kickstart-bootloader.html
|   |-- system-config-kickstart-bugzilla.html
|   |-- system-config-kickstart-firewall.html
|   |-- system-config-kickstart-install.html
|   |-- system-config-kickstart-interpreter.html
|   |-- system-config-kickstart-network.html
|   |-- system-config-kickstart-partitions.html
|   |-- system-config-kickstart-pkgs.html
|   |-- system-config-kickstart-postinstall-examples.html
|   |-- system-config-kickstart-postinstall.html
|   |-- system-config-kickstart-prescript.html
|   |-- system-config-kickstart-savefile.html
|   |-- system-config-kickstart-xconfig-monitor.html
|   |-- system-config-kickstart-xconfig-videocard.html
|   `-- system-config-kickstart-xconfig.html
|-- man   //在线文档man目录
|   |-- Makefile
|   |-- en
|   |   `-- system-config-kickstart.8
|   `-- ja
|       `-- system-config-kickstart.8
|-- pixmaps  //logo
|   `-- system-config-kickstart.png
|-- po  //存放GNUtext的翻译文件
|   |-- Makefile
|   |-- ar.mo
|   |-- ar.po
|   |-- as.mo
|   |-- as.po
|   |-- bg.mo
|   |-- bg.po
|   |-- bn.mo
|   |-- bn.po
|   |-- bn_IN.mo
|   |-- bn_IN.po
|   |-- bs.mo
|   |-- bs.po
|   |-- ca.mo
|   |-- ca.po
|   |-- cs.mo
|   |-- cs.po
|   |-- cy.mo
|   |-- cy.po
|   |-- da.mo
|   |-- da.po
|   |-- de.mo
|   |-- de.po
|   |-- el.mo
|   |-- el.po
|   |-- en_GB.mo
|   |-- en_GB.po
|   |-- es.mo
|   |-- es.po
|   |-- et.mo
|   |-- et.po
|   |-- fa.mo
|   |-- fa.po
|   |-- fi.mo
|   |-- fi.po
|   |-- fr.mo
|   |-- fr.po
|   |-- gu.mo
|   |-- gu.po
|   |-- he.mo
|   |-- he.po
|   |-- hi.mo
|   |-- hi.po
|   |-- hr.mo
|   |-- hr.po
|   |-- hu.mo
|   |-- hu.po
|   |-- hy.mo
|   |-- hy.po
|   |-- id.mo
|   |-- id.po
|   |-- is.mo
|   |-- is.po
|   |-- it.mo
|   |-- it.po
|   |-- ja.mo
|   |-- ja.po
|   |-- ka.mo
|   |-- ka.po
|   |-- kn.mo
|   |-- kn.po
|   |-- ko.mo
|   |-- ko.po
|   |-- ku.mo
|   |-- ku.po
|   |-- lo.mo
|   |-- lo.po
|   |-- mk.mo
|   |-- mk.po
|   |-- ml.mo
|   |-- ml.po
|   |-- mr.mo
|   |-- mr.po
|   |-- ms.mo
|   |-- ms.po
|   |-- my.mo
|   |-- my.po
|   |-- nb.mo
|   |-- nb.po
|   |-- nl.mo
|   |-- nl.po
|   |-- or.mo
|   |-- or.po
|   |-- pa.mo
|   |-- pa.po
|   |-- pl.mo
|   |-- pl.po
|   |-- pt.mo
|   |-- pt.po
|   |-- pt_BR.mo
|   |-- pt_BR.po
|   |-- ru.mo
|   |-- ru.po
|   |-- si.mo
|   |-- si.po
|   |-- sk.mo
|   |-- sk.po
|   |-- sl.mo
|   |-- sl.po
|   |-- sq.mo
|   |-- sq.po
|   |-- sr.mo
|   |-- sr.po
|   |-- sr@latin.mo
|   |-- sr@latin.po
|   |-- sv.mo
|   |-- sv.po
|   |-- system-config-kickstart.pot
|   |-- ta.mo
|   |-- ta.po
|   |-- te.mo
|   |-- te.po
|   |-- tmp
|   |   `-- system-config-kickstart.glade.h
|   |-- tr.mo
|   |-- tr.po
|   |-- uk.mo
|   |-- uk.po
|   |-- ur.mo
|   |-- ur.po
|   |-- vi.mo
|   |-- vi.po
|   |-- zh_CN.mo
|   |-- zh_CN.po
|   |-- zh_TW.mo
|   `-- zh_TW.po
|-- src   //源文件,这是重点要分析的。
|   |-- #raidOptionsWindow.py#
|   |-- auth.py
|   |-- auth.pyc
|   |-- basic.py
|   |-- basic.pyc
|   |-- bootloader.py
|   |-- bootloader.pyc
|   |-- firewall.py
|   |-- firewall.pyc
|   |-- hardwareLists.py
|   |-- hardwareLists.pyc
|   |-- install.py
|   |-- install.pyc
|   |-- kickstartGui.py
|   |-- kickstartGui.pyc
|   |-- network.py
|   |-- network.pyc
|   |-- packages.py
|   |-- packages.pyc
|   |-- partEntry.py
|   |-- partEntry.pyc
|   |-- partWindow.py
|   |-- partWindow.pyc
|   |-- partition.py
|   |-- partition.pyc
|   |-- profileSystem.py
|   |-- profileSystem.pyc
|   |-- raidOptionsWindow.py
|   |-- raidOptionsWindow.pyc
|   |-- raidWindow.py
|   |-- raidWindow.pyc
|   |-- savedialog.py
|   |-- savedialog.pyc
|   |-- savefile.py
|   |-- savefile.pyc
|   |-- scripts.py
|   |-- scripts.pyc
|   |-- system-config-kickstart
|   |-- system-config-kickstart.glade
|   |-- system-config-kickstart.gladep
|   |-- xconfig.py
|   `-- xconfig.pyc
|-- system-config-kickstart.desktop.in  //gnome或kde的启动器
`-- system-config-kickstart.spec    //rpm包的spec文件

共有10 directories, 221 files。而我们管不了那么多,只有一个src对我们有用。至于文件则是一个都不会放过。