summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG6
-rw-r--r--TODO14
-rw-r--r--cobbler.spec2
-rw-r--r--cobbler/action_import.py1
-rw-r--r--cobbler/action_litesync.py2
-rw-r--r--cobbler/action_sync.py19
-rwxr-xr-xcobbler/cobbler.py9
-rw-r--r--cobbler/collection.py7
-rw-r--r--cobbler/settings.py2
9 files changed, 29 insertions, 33 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3cad83c..6ab7dbd 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,14 +1,16 @@
Cobbler CHANGELOG
(all entries mdehaan@redhat.com unless noted otherwise)
-* Fri Mar 16 2007 - 0.4.4
-- Generate PXE configuration files from templates in /etc/cobbler
+* Fri Mar 23 2007 - 0.4.4
+- Generate PXE configuration files from templates in /etc/cobbler to be more customizable
- Fix bug with wrong kickstart metadata being used for import
- Fix bug with argument parsing for --repos
- Much cleaner distro/profile names with --import
- For import, the "tree" parameter is now attached to the distro, not the profile
- Add "links" directory in webdir for symlinking to full kickstart tree paths.
- Misc tweaks to shorten kernel parameter length
+- Giving invalid arguments to "report" will show an error message
+- Distros, Profiles, and System names are now case insensitive.
* Wed Feb 28 2007 - 0.4.3
- Added netboot_enabled option for systems to control install loops in programmatic context.
diff --git a/TODO b/TODO
index 18d0917..e5d6793 100644
--- a/TODO
+++ b/TODO
@@ -9,19 +9,17 @@ more new thoughts:
core:
1 - import over http://, ftp:// in addition to existing file and rsync:// and ssh://
-1 - better support for import from DVD (with cleaner imported names)
5 - "check" should check if services (esp httpd) are started
-3 - allow rsync without ssh option
user interface:
5 - "cobbler add" should be distinguished from "edit" so as to not overwrite
5 - GTK (or Web) UI for Cobbler ?
5 - have -v or --version
-3 - cobbler system names (indeed, everything) should be case insensitive.
-virt:
+koan items:
1 - enable more virtualization types in koan
-4 - (more of a koan item) LVM support
+4 - LVM support
+1 - hwvirt
code cleanup:
5 - remove the cobbler_msg logic since i18n isn't likely
@@ -31,12 +29,8 @@ ideas:
for alternative bootloaders (not neccessarily kickstart related)
to be added. (Low priority)
4 - someone suggested looking at OMAPI for DHCP management
-1 - make syslinux config files be template generated also
small bugs:
-3 - cobbler report with a random parameter produces no output
- that should be an error... is that still the case?
3 - no logrotate or cleanup for /var/log/cobbler (kickstart tracking)
-4 - cobbler import should attach "tree" to distro, not profile
-3 - provide ways to get around max kernel length limits (symlink paths?)
+3 - add warning if kernel arg length is exceeded
diff --git a/cobbler.spec b/cobbler.spec
index 56eb1b2..0a12a08 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -108,7 +108,7 @@ test "x$RPM_BUILD_ROOT" != "x" && rm -rf $RPM_BUILD_ROOT
%changelog
-* Fri Mar 16 2007 Michael DeHaan <mdehaan@redhat.com> - 0.4.4-0
+* Fri Mar 23 2007 Michael DeHaan <mdehaan@redhat.com> - 0.4.4-0
- Upstream changes (see CHANGELOG)
* Wed Feb 28 2007 Michael DeHaan <mdehaan@redhat.com> - 0.4.3-0
diff --git a/cobbler/action_import.py b/cobbler/action_import.py
index 770d031..8afbabd 100644
--- a/cobbler/action_import.py
+++ b/cobbler/action_import.py
@@ -274,6 +274,7 @@ class Importer:
name = name.replace("images-","")
name = name.replace("tree-","")
name = name.replace("--","-")
+ name = name.replace("-pxeboot","")
return name
def get_pxe_arch(self,dirname):
diff --git a/cobbler/action_litesync.py b/cobbler/action_litesync.py
index fddea9d..825bcbe 100644
--- a/cobbler/action_litesync.py
+++ b/cobbler/action_litesync.py
@@ -68,6 +68,8 @@ class BootLiteSync:
self.sync.rmtree(os.path.join(self.settings.webdir, "images", name))
# delete contents of images/$name in tftpboot
self.sync.rmtree(os.path.join(self.settings.tftpboot, "images", name))
+ # delete potential symlink to tree in webdir/links
+ self.sync.rmfile(os.path.join(self.settings.webdir, "links", name))
def add_single_profile(self, name):
# get the profile object:
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index decadd1..98f018b 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -453,13 +453,10 @@ class BootSync:
Cheetah and save as out_path.
"""
- print "DEBUG: AT: ... ", out_path
if type(data_input) != str:
- print "DEBUG: from file"
data = data_input.read()
else:
- print "DEBUG: from string"
data = data_input
# backward support for Cobbler's legacy (and slightly more readable)
@@ -468,18 +465,13 @@ class BootSync:
data = "#errorCatcher Echo\n" + data
- print "DEBUG: data in = %s" % data
t = Template(source=data, searchList=[metadata])
data_out = str(t)
- print "DEBUG: data out = %s" % data_out
if out_path is not None:
- print "DEBUG: making: %s" % os.path.dirname(out_path)
self.mkdir(os.path.dirname(out_path))
fd = open(out_path, "w+")
fd.write(data_out)
fd.close()
- else:
- print "DEBUG: out_path: %s" % out_path
return data_out
def build_trees(self):
@@ -590,16 +582,12 @@ class BootSync:
distro = self.distros.find(profile.distro)
contents = self.write_pxe_file(None,None,profile,distro,False,include_header=False)
if contents is not None:
- pxe_menu_items = pxe_menu_items + contents
+ pxe_menu_items = pxe_menu_items + contents + "\n"
# save the template.
- print "DEBUG: src = %s" % template_data
metadata = { "pxe_menu_items" : pxe_menu_items }
- print "DEBUG: metadata = %s" % metadata
outfile = os.path.join(self.settings.tftpboot, "pxelinux.cfg", "default")
- print "DEBUG: outfile = %s" % outfile
self.apply_template(template_data, metadata, outfile)
- print "** DEBUG: APPLIED **"
template_src.close()
@@ -654,11 +642,14 @@ class BootSync:
distro.kernel_options
))
+
# ---
# generate the append line
append_line = "append %s" % self.hash_to_string(kopts)
if not is_ia64:
append_line = "%s initrd=%s" % (append_line, initrd_path)
+ if len(append_line) >= 255 + len("append "):
+ print "warning: kernel option length exceeds 255"
# ---
# kickstart path rewriting (get URLs for local files)
@@ -679,7 +670,7 @@ class BootSync:
# store variables for templating
metadata["menu_label"] = ""
if not is_ia64 and system is None:
- metadata["menu_label"] = "MENU LABEL %s\n" % profile.name
+ metadata["menu_label"] = "MENU LABEL %s" % profile.name
metadata["profile_name"] = profile.name
metadata["kernel_path"] = kernel_path
metadata["initrd_path"] = initrd_path
diff --git a/cobbler/cobbler.py b/cobbler/cobbler.py
index bdf892f..de0ab18 100755
--- a/cobbler/cobbler.py
+++ b/cobbler/cobbler.py
@@ -151,16 +151,23 @@ class BootCLI:
def report(self,args):
args.append("") # filler
-
+ match = False
for a in args:
if a == '--distros' or len(args) == 1:
self.distro_report([])
+ match = True
if a == '--repos' or len(args) == 1:
self.repo_report([])
+ match = True
if a == '--profiles' or len(args) == 1:
self.profile_report([])
+ match = True
if a == '--systems' or len(args) == 1:
self.system_report([])
+ match = True
+ if not match and a is not None and a != "":
+ raise cexceptions.CobblerException("unknown_cmd",a)
+ match = False
def system_remove(self,args):
"""
diff --git a/cobbler/collection.py b/cobbler/collection.py
index 617ce09..c7e9f46 100644
--- a/cobbler/collection.py
+++ b/cobbler/collection.py
@@ -56,11 +56,12 @@ class Collection(serializable.Serializable):
Return anything named 'name' in the collection, else return None if
no objects can be found.
"""
- if name in self.listing.keys():
- return self.listing[name]
+ n1 = name.lower()
+ for key in self.listing.keys():
+ if key.lower() == n1:
+ return self.listing[name]
return None
-
def to_datastruct(self):
"""
Serialize the collection
diff --git a/cobbler/settings.py b/cobbler/settings.py
index 68ea9b4..9a215c4 100644
--- a/cobbler/settings.py
+++ b/cobbler/settings.py
@@ -25,8 +25,6 @@ DEFAULTS = {
"next_server" : "127.0.0.1",
"dhcpd_bin" : "/usr/sbin/dhcpd",
"kernel_options" : {
- "devfs" : "nomount",
- "ramdisk_size" : 16438,
"lang" : " ",
"text" : None,
"ksdevice" : "eth0",