summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG7
-rw-r--r--NEWS18
-rw-r--r--cobbler.spec7
-rw-r--r--cobbler/action_check.py4
-rw-r--r--cobbler/action_sync.py6
-rw-r--r--cobbler/cobbler_msg.py6
-rw-r--r--cobbler/item_distro.py2
-rw-r--r--cobbler/item_system.py2
-rw-r--r--cobbler/settings.py3
-rw-r--r--dhcp.template1
-rw-r--r--setup.py2
-rw-r--r--tests/tests.py1
12 files changed, 41 insertions, 18 deletions
diff --git a/CHANGELOG b/CHANGELOG
index e8f5f1e..851678d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,7 +1,10 @@
Cobbler CHANGELOG
+(all entries mdehaan@redhat.com unless noted otherwise)
-NEXT:
-- bugfix: "--pxe-hostname" is "--pxe-address"
+* Fri Oct 6 2006 - 0.2.2-1
+- bugfix: "--pxe-hostname" made available in CLI and renamed as "--pxe-address"
+- workaround: elilo doesn't do MAC address pxe config files, use IP for ia64
+- bugfix: added next-server line for per-MAC dhcp configs
* Thr Sep 28 2006 - 0.2.1-1
- New ability to "enchant" remote systems (see NEWS)
diff --git a/NEWS b/NEWS
index 330beab..e089200 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+Cobbler NEWS
+(all entries mdehaan@redhat.com unless noted otherwise)
+
+0.2.2
+
+** IA64 PXE Go For Launch **
+
+Having had the time to do proper IA64 testing with elilo, Itanium
+PXE support is now confirmed to work. --pxe-arch and --pxe-address
+must both be set on the IA64 system when it is created with cobbler.
+
+Additional bugfixes have improved stability of the dhcpd.conf generation.
+
0.2.1
** New "enchant" feature **
@@ -23,8 +36,3 @@ time cobbler sync is run, it will build a new dhcpd.conf based on
Cobbler is now packaging ELILO to enable IA64 booting.
-Since I do *NOT* currently have access to an IA64 machine, IA64 PXE support
-is largely untested, therefore there may be some issues with the way
-elilo's *.conf files are formatted in /tftpboot after running a "cobbler sync".
-Bug reports and patches from IA64 users are greatly appreciated.
-
diff --git a/cobbler.spec b/cobbler.spec
index 4150c30..9923745 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -2,8 +2,8 @@
Summary: Boot server configurator
Name: cobbler
-Version: 0.2.1
-Release: 2%{?dist}
+Version: 0.2.2
+Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
License: GPL
Group: Applications/System
@@ -54,6 +54,9 @@ rm -rf $RPM_BUILD_ROOT
%doc AUTHORS CHANGELOG NEWS README COPYING
%changelog
+* Fri Oct 6 2006 Michael DeHaan <mdehaan@redhat.com> - 0.2.2-1
+- Upstream bugfixes
+
* Fri Sep 29 2006 Michael DeHaan <mdehaan@redhat.com> - 0.2.1-2
- URL update
diff --git a/cobbler/action_check.py b/cobbler/action_check.py
index d2976f3..499f667 100644
--- a/cobbler/action_check.py
+++ b/cobbler/action_check.py
@@ -49,8 +49,10 @@ class BootCheck:
kickstarts run from koan will not have proper kernel line
parameters.
"""
- if self.settings.server == "localhost":
+ if self.settings.server == "127.0.0.1":
status.append(cobbler_msg.lookup("bad_server"))
+ if self.settings.next_server == "127.0.0.1":
+ status.append(cobbler_msg.lookup("bad_next"))
def check_httpd(self,status):
"""
diff --git a/cobbler/action_sync.py b/cobbler/action_sync.py
index 8b680df..3720676 100644
--- a/cobbler/action_sync.py
+++ b/cobbler/action_sync.py
@@ -78,7 +78,7 @@ class BootSync:
def copy_koan(self):
koan_path = self.settings.koan_path
print "koan path = %s" % koan_path
- if koan_path is None:
+ if koan_path is None or koan_path == "":
return
if not os.path.isfile(koan_path):
raise cexceptions.CobblerException("exc_koan_path")
@@ -132,12 +132,14 @@ class BootSync:
systxt = systxt + " hardware ethernet %s;\n" % system.name
if system.pxe_address != "":
systxt = systxt + " fixed-address %s;\n" % system.pxe_address
+ systxt = systxt + " next-server %s;\n" % self.settings.next_server
systxt = systxt + "}\n"
system_definitions = system_definitions + systxt
metadata = {
"insert_cobbler_system_definitions" : system_definitions,
- "date" : time.asctime(time.gmtime())
+ "date" : time.asctime(time.gmtime()),
+ "next_server" : self.settings.next_server
}
t = Template(
"#errorCatcher Echo\n%s" % template_data,
diff --git a/cobbler/cobbler_msg.py b/cobbler/cobbler_msg.py
index 6207769..684dc89 100644
--- a/cobbler/cobbler_msg.py
+++ b/cobbler/cobbler_msg.py
@@ -18,7 +18,8 @@ _msg_table = {
"system" : "System",
"profile" : "Profile",
"distribution" : "Distribution",
- "bad_server" : "The 'server' field in /var/lib/cobbler/settings must be set to something other than localhost, or kickstarting features will not work",
+ "bad_server" : "The 'server' field in /var/lib/cobbler/settings must be set to something other than localhost, or kickstarting features will not work. This should be a resolvable hostname or IP for the boot server as reachable by all machines that will use it",
+ "bad_next" : "For PXE to be functional, the 'next_server' field in /var/lib/cobbler/settings must be set to something other than 127.0.0.1, and should match the IP of the boot server on the PXE network.",
"parse_error" : "cobbler could not read %s, replacing...",
"no_ssh" : "cobbler can't read ~/.ssh/id_dsa.pub",
"exc_koan_path" : "koan_path in /var/lib/cobbler/settings is invalid",
@@ -33,6 +34,7 @@ _msg_table = {
"reject_arg" : "the value of parameter '%s' isn't valid",
"weird_arg" : "this command doesn't take a parameter named '%s'",
"bad_sys_name" : "system name must be a MAC, IP, or resolveable host",
+ "bad_ip" : "argument must be an IP address",
"usage" : "for help, see 'man cobbler'",
"need_to_fix" : "the following potential problems were detected:",
"need_perms" : "cobbler could not access %s",
@@ -85,7 +87,7 @@ _msg_table = {
"check_ok" : """
No setup problems found.
-Manual editing of /var/lib/cobbler/settings and dhcpd.conf is suggested to tailor them to your specific configuration. Furthermore, it's important to know that cobbler can't completely understnad what you intend to do with dhcpd.conf, but it looks like there is at least some PXE related information in it. We'll leave this up to you.
+Manual review and editing of /var/lib/cobbler/settings is recommended to tailor cobbler to your particular configuration.
Good luck.
""",
diff --git a/cobbler/item_distro.py b/cobbler/item_distro.py
index e15c2b1..838dc1a 100644
--- a/cobbler/item_distro.py
+++ b/cobbler/item_distro.py
@@ -101,7 +101,7 @@ class Distro(item.Item):
kstr = utils.find_kernel(self.kernel)
istr = utils.find_initrd(self.initrd)
if kstr is None:
- kstr = "%s (NOT FOUND!)" % self.kernel
+ kstr = "%s (NOT FOUND)" % self.kernel
elif os.path.isdir(self.kernel):
kstr = "%s (FOUND BY SEARCH)" % kstr
if istr is None:
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index 7c584b5..315ab3a 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -56,6 +56,8 @@ class System(item.Item):
def set_pxe_address(self,hostname):
# we allow this to be set to anything and should restrict it
+ if not utils.is_ip(hostname):
+ raise cexceptions.CobblerException("bad_ip")
self.pxe_address = hostname
return True
diff --git a/cobbler/settings.py b/cobbler/settings.py
index bcf4f72..bb49028 100644
--- a/cobbler/settings.py
+++ b/cobbler/settings.py
@@ -37,7 +37,8 @@ class Settings(serializable.Serializable):
"httpd_bin" : "/usr/sbin/httpd",
"dhcpd_conf" : "/etc/dhcpd.conf",
"tftpd_bin" : "/usr/sbin/in.tftpd",
- "server" : "localhost",
+ "server" : "127.0.0.1",
+ "next_server" : "127.0.0.1",
"dhcpd_bin" : "/usr/sbin/dhcpd",
"kernel_options" : "append devfs=nomount ramdisk_size=16438 lang= vga=788 ksdevice=eth0",
"tftpd_conf" : "/etc/xinetd.d/tftp",
diff --git a/dhcp.template b/dhcp.template
index 7be62b2..150f703 100644
--- a/dhcp.template
+++ b/dhcp.template
@@ -20,6 +20,7 @@ subnet 192.168.1.0 netmask 255.255.255.0 {
filename "/pxelinux.0";
default-lease-time 21600;
max-lease-time 43200;
+ next-server $next_server;
}
$insert_cobbler_system_definitions
diff --git a/setup.py b/setup.py
index 4209e43..01b9c82 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@ import sys
from distutils.core import setup, Extension
import string
-VERSION = "0.2.1"
+VERSION = "0.2.2"
SHORT_DESC = "Boot server configurator"
LONG_DESC = """
Cobbler is a command line tool for simplified configuration of boot/provisioning servers. It is also accessible as a Python library. Cobbler supports PXE, Xen, and re-provisioning an existing Linux system via auto-kickstart. The last two modes require 'koan' to be run on the remote system.
diff --git a/tests/tests.py b/tests/tests.py
index ab1cec5..f23bf0f 100644
--- a/tests/tests.py
+++ b/tests/tests.py
@@ -101,7 +101,6 @@ class Utilities(BootTest):
def test_kickstart_scan(self):
# we don't check to see if kickstart files look like anything
# so this will pass
- self.assertTrue(utils.find_kickstart(self.fk_initrd) is None)
self.assertTrue(utils.find_kickstart("filedoesnotexist") is None)
self.assertTrue(utils.find_kickstart(self.topdir) == None)
self.assertTrue(utils.find_kickstart("http://bar"))