summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2007-11-01 17:48:21 -0400
committerMichael DeHaan <mdehaan@redhat.com>2007-11-01 17:48:21 -0400
commit95e5a65993da2d0b008222501c6a132bb8a3daa2 (patch)
treedc8d4780172d65da070fb8322df2070169a0d28a /cobbler
parent6630f94eb1c6122f761a87b0fcd879423cf3e624 (diff)
downloadthird_party-cobbler-95e5a65993da2d0b008222501c6a132bb8a3daa2.tar.gz
third_party-cobbler-95e5a65993da2d0b008222501c6a132bb8a3daa2.tar.xz
third_party-cobbler-95e5a65993da2d0b008222501c6a132bb8a3daa2.zip
Added a --server-override parameter, which will be used to specify a different server
address for when the server may need to provision boxen on different subnets that therefore need different source URLs and so on. This means cobbler will now be able to represent more than one server address for the same cobbler machine. WUI parts and backend changes to utilize this TBA shortly.
Diffstat (limited to 'cobbler')
-rwxr-xr-xcobbler/cobbler.py6
-rw-r--r--cobbler/item_profile.py13
-rw-r--r--cobbler/item_system.py40
3 files changed, 41 insertions, 18 deletions
diff --git a/cobbler/cobbler.py b/cobbler/cobbler.py
index 4b035a1..78351f6 100755
--- a/cobbler/cobbler.py
+++ b/cobbler/cobbler.py
@@ -447,7 +447,8 @@ class BootCLI:
'--repos' : lambda(a) : profile.set_repos(a),
'--virt-path' : lambda(a) : profile.set_virt_path(a),
'--virt-type' : lambda(a) : profile.set_virt_type(a),
- '--dhcp-tag' : lambda(a) : profile.set_dhcp_tag(a)
+ '--dhcp-tag' : lambda(a) : profile.set_dhcp_tag(a),
+ '--server-override' : lambda(a) : profile.set_server(a)
}
def on_ok():
if newname is not None:
@@ -578,7 +579,8 @@ class BootCLI:
'--kickstart' : lambda(a) : sys.set_kickstart(a),
'--netboot-enabled' : lambda(a) : sys.set_netboot_enabled(a),
'--virt-path' : lambda(a) : sys.set_virt_path(a),
- '--virt-type' : lambda(a) : sys.set_virt_type(a)
+ '--virt-type' : lambda(a) : sys.set_virt_type(a),
+ '--server-override' : lambda(a) : sys.set_server(a)
}
def on_ok():
diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py
index 47750ad..4e1c7c1 100644
--- a/cobbler/item_profile.py
+++ b/cobbler/item_profile.py
@@ -48,6 +48,7 @@ class Profile(item.Item):
self.virt_bridge = (self.settings.default_virt_bridge, '<<inherit>>')[is_subobject]
self.dhcp_tag = ("default", '<<inherit>>')[is_subobject]
self.parent = ''
+ self.server = "<<inherit>>"
def from_datastruct(self,seed_data):
"""
@@ -63,6 +64,7 @@ class Profile(item.Item):
self.repos = self.load_item(seed_data,'repos', [])
self.depth = self.load_item(seed_data,'depth', 1)
self.dhcp_tag = self.load_item(seed_data,'dhcp_tag', 'default')
+ self.server = self.load_item(seed_data,'server', '<<inherit>>')
# backwards compatibility
if type(self.repos) != list:
@@ -128,6 +130,10 @@ class Profile(item.Item):
self.dhcp_tag = dhcp_tag
return True
+ def set_server(self,server):
+ self.server = server
+ return True
+
def set_repos(self,repos):
# allow the magic inherit string to persist
@@ -333,7 +339,8 @@ class Profile(item.Item):
'depth' : self.depth,
'virt_type' : self.virt_type,
'virt_path' : self.virt_path,
- 'dhcp_tag' : self.dhcp_tag
+ 'dhcp_tag' : self.dhcp_tag,
+ 'server' : self.server
}
def printable(self):
@@ -356,6 +363,7 @@ class Profile(item.Item):
buf = buf + _("virt cpus : %s\n") % self.virt_cpus
buf = buf + _("repos : %s\n") % self.repos
buf = buf + _("dhcp tag : %s\n") % self.dhcp_tag
+ buf = buf + _("server : %s\n") % self.server
return buf
def remote_methods(self):
@@ -374,6 +382,7 @@ class Profile(item.Item):
'virt-type' : self.set_virt_type,
'virt-bridge' : self.set_virt_bridge,
'virt-cpus' : self.set_virt_cpus,
- 'dhcp-tag' : self.set_dhcp_tag
+ 'dhcp-tag' : self.set_dhcp_tag,
+ 'server' : self.server
}
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index 749919a..9fa4504 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -37,8 +37,9 @@ class System(item.Item):
self.netboot_enabled = (1, '<<inherit>>')[is_subobject]
self.depth = 2
self.kickstart = "<<inherit>>" # use value in profile
- self.virt_path = "<<inherit>>" # use value in profile
- self.virt_type = "<<inherit>>" # use value in profile
+ self.virt_path = "<<inherit>>" # ""
+ self.virt_type = "<<inherit>>" # ""
+ self.server = "<<inherit>>" # "" (or settings)
def delete_interface(self,name):
"""
@@ -87,6 +88,7 @@ class System(item.Item):
self.virt_path = self.load_item(seed_data, 'virt_path', '<<inherit>>')
self.virt_type = self.load_item(seed_data, 'virt_type', '<<inherit>>')
self.netboot_enabled = self.load_item(seed_data, 'netboot_enabled', 1)
+ self.server = self.load_item(seed_data, 'server', '<<inherit>>')
# backwards compat, these settings are now part of the interfaces data structure
# and will contain data only in upgrade scenarios.
@@ -152,6 +154,14 @@ class System(item.Item):
return True
+ def set_server(self,server):
+ """
+ If a system can't reach the boot server at the value configured in settings
+ because it doesn't have the same name on it's subnet this is there for an override.
+ """
+ self.server = server
+ return True
+
def get_mac_address(self,interface="intf0"):
"""
Get the mac address, which may be implicit in the object name or explicit with --mac-address.
@@ -332,8 +342,8 @@ class System(item.Item):
'kickstart' : self.kickstart,
'virt_type' : self.virt_type,
'virt_path' : self.virt_path,
- #'dhcp_tag' : self.dhcp_tag,
- 'interfaces' : self.interfaces
+ 'interfaces' : self.interfaces,
+ 'server' : self.server
}
def printable(self):
@@ -346,6 +356,7 @@ class System(item.Item):
buf = buf + _("kickstart : %s\n") % self.kickstart
buf = buf + _("virt type : %s\n") % self.virt_type
buf = buf + _("virt path : %s\n") % self.virt_path
+ buf = buf + _("server : %s\n") % self.server
counter = 0
for (name,x) in self.interfaces.iteritems():
@@ -380,16 +391,17 @@ class System(item.Item):
def remote_methods(self):
return {
- 'name' : self.set_name,
- 'profile' : self.set_profile,
- 'kopts' : self.set_kernel_options,
- 'ksmeta' : self.set_ksmeta,
- 'hostname' : self.set_hostname,
- 'kickstart' : self.set_kickstart,
- 'netboot-enabled' : self.set_netboot_enabled,
- 'virt-path' : self.set_virt_path,
- 'virt-type' : self.set_virt_type,
+ 'name' : self.set_name,
+ 'profile' : self.set_profile,
+ 'kopts' : self.set_kernel_options,
+ 'ksmeta' : self.set_ksmeta,
+ 'hostname' : self.set_hostname,
+ 'kickstart' : self.set_kickstart,
+ 'netboot-enabled' : self.set_netboot_enabled,
+ 'virt-path' : self.set_virt_path,
+ 'virt-type' : self.set_virt_type,
'modify-interface' : self.modify_interface,
- 'delete-interface' : self.delete_interface
+ 'delete-interface' : self.delete_interface,
+ 'server' : self.set_server
}