summaryrefslogtreecommitdiffstats
path: root/cobbler
diff options
context:
space:
mode:
authorRob Lazzurs <rob@lazzurs.net>2009-03-06 13:11:54 +0000
committerRob Lazzurs <rob@lazzurs.net>2009-03-06 13:11:54 +0000
commit2df64c1b0764f682d04596d3c88716b63eda951a (patch)
treee7cde412250b391741472f9c2d9ae261d3e86b4b /cobbler
parent7653a96c3997d0beb92267a103c071c311ca899a (diff)
downloadcobbler-2df64c1b0764f682d04596d3c88716b63eda951a.tar.gz
cobbler-2df64c1b0764f682d04596d3c88716b63eda951a.tar.xz
cobbler-2df64c1b0764f682d04596d3c88716b63eda951a.zip
Adding option to define a Spacewalk management server at the distro/profile/system level
Diffstat (limited to 'cobbler')
-rw-r--r--cobbler/item_distro.py156
-rw-r--r--cobbler/item_profile.py238
-rw-r--r--cobbler/item_system.py251
-rw-r--r--cobbler/modules/cli_distro.py3
-rw-r--r--cobbler/modules/cli_profile.py3
-rw-r--r--cobbler/modules/cli_system.py3
-rw-r--r--cobbler/remote.py3
-rw-r--r--cobbler/utils.py4
-rw-r--r--cobbler/webui/CobblerWeb.py3
9 files changed, 353 insertions, 311 deletions
diff --git a/cobbler/item_distro.py b/cobbler/item_distro.py
index 9b34d2e7..9be4f7d3 100644
--- a/cobbler/item_distro.py
+++ b/cobbler/item_distro.py
@@ -41,24 +41,25 @@ class Distro(item.Item):
"""
Reset this object.
"""
- self.name = None
- self.uid = ""
- self.owners = self.settings.default_ownership
- self.kernel = None
- self.initrd = None
- self.kernel_options = {}
- self.kernel_options_post = {}
- self.ks_meta = {}
- self.arch = 'i386'
- self.breed = 'redhat'
- self.os_version = ''
- self.source_repos = []
- self.mgmt_classes = []
- self.depth = 0
- self.template_files = {}
- self.comment = ""
- self.tree_build_time = 0
- self.redhat_management_key = "<<inherit>>"
+ self.name = None
+ self.uid = ""
+ self.owners = self.settings.default_ownership
+ self.kernel = None
+ self.initrd = None
+ self.kernel_options = {}
+ self.kernel_options_post = {}
+ self.ks_meta = {}
+ self.arch = 'i386'
+ self.breed = 'redhat'
+ self.os_version = ''
+ self.source_repos = []
+ self.mgmt_classes = []
+ self.depth = 0
+ self.template_files = {}
+ self.comment = ""
+ self.tree_build_time = 0
+ self.redhat_management_key = "<<inherit>>"
+ self.redhat_management_server = "<<inherit>>"
def make_clone(self):
ds = self.to_datastruct()
@@ -77,23 +78,24 @@ class Distro(item.Item):
"""
Modify this object to take on values in seed_data
"""
- self.parent = self.load_item(seed_data,'parent')
- self.name = self.load_item(seed_data,'name')
- self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership)
- self.kernel = self.load_item(seed_data,'kernel')
- self.initrd = self.load_item(seed_data,'initrd')
- self.kernel_options = self.load_item(seed_data,'kernel_options')
- self.kernel_options_post = self.load_item(seed_data,'kernel_options_post')
- self.ks_meta = self.load_item(seed_data,'ks_meta')
- self.arch = self.load_item(seed_data,'arch','i386')
- self.breed = self.load_item(seed_data,'breed','redhat')
- self.os_version = self.load_item(seed_data,'os_version','')
- self.source_repos = self.load_item(seed_data,'source_repos',[])
- self.depth = self.load_item(seed_data,'depth',0)
- self.mgmt_classes = self.load_item(seed_data,'mgmt_classes',[])
- self.template_files = self.load_item(seed_data,'template_files',{})
- self.comment = self.load_item(seed_data,'comment')
- self.redhat_management_key = self.load_item(seed_data,'redhat_management_key',"<<inherit>>")
+ self.parent = self.load_item(seed_data,'parent')
+ self.name = self.load_item(seed_data,'name')
+ self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership)
+ self.kernel = self.load_item(seed_data,'kernel')
+ self.initrd = self.load_item(seed_data,'initrd')
+ self.kernel_options = self.load_item(seed_data,'kernel_options')
+ self.kernel_options_post = self.load_item(seed_data,'kernel_options_post')
+ self.ks_meta = self.load_item(seed_data,'ks_meta')
+ self.arch = self.load_item(seed_data,'arch','i386')
+ self.breed = self.load_item(seed_data,'breed','redhat')
+ self.os_version = self.load_item(seed_data,'os_version','')
+ self.source_repos = self.load_item(seed_data,'source_repos',[])
+ self.depth = self.load_item(seed_data,'depth',0)
+ self.mgmt_classes = self.load_item(seed_data,'mgmt_classes',[])
+ self.template_files = self.load_item(seed_data,'template_files',{})
+ self.comment = self.load_item(seed_data,'comment')
+ self.redhat_management_key = self.load_item(seed_data,'redhat_management_key',"<<inherit>>")
+ self.redhat_management_server = self.load_item(seed_data,'redhat_management_server',"<<inherit>>")
# backwards compatibility enforcement
self.set_arch(self.arch)
@@ -159,6 +161,9 @@ class Distro(item.Item):
def set_redhat_management_key(self,key):
return utils.set_redhat_management_key(self,key)
+
+ def set_redhat_management_server(self,server):
+ return utils.set_redhat_management_server(self,server)
def set_source_repos(self, repos):
"""
@@ -209,27 +214,28 @@ class Distro(item.Item):
Return a serializable datastructure representation of this object.
"""
return {
- 'name' : self.name,
- 'kernel' : self.kernel,
- 'initrd' : self.initrd,
- 'kernel_options' : self.kernel_options,
- 'kernel_options_post' : self.kernel_options_post,
- 'ks_meta' : self.ks_meta,
- 'mgmt_classes' : self.mgmt_classes,
- 'template_files' : self.template_files,
- 'arch' : self.arch,
- 'breed' : self.breed,
- 'os_version' : self.os_version,
- 'source_repos' : self.source_repos,
- 'parent' : self.parent,
- 'depth' : self.depth,
- 'owners' : self.owners,
- 'comment' : self.comment,
- 'tree_build_time' : self.tree_build_time,
- 'ctime' : self.ctime,
- 'mtime' : self.mtime,
- 'uid' : self.uid,
- 'redhat_management_key' : self.redhat_management_key
+ 'name' : self.name,
+ 'kernel' : self.kernel,
+ 'initrd' : self.initrd,
+ 'kernel_options' : self.kernel_options,
+ 'kernel_options_post' : self.kernel_options_post,
+ 'ks_meta' : self.ks_meta,
+ 'mgmt_classes' : self.mgmt_classes,
+ 'template_files' : self.template_files,
+ 'arch' : self.arch,
+ 'breed' : self.breed,
+ 'os_version' : self.os_version,
+ 'source_repos' : self.source_repos,
+ 'parent' : self.parent,
+ 'depth' : self.depth,
+ 'owners' : self.owners,
+ 'comment' : self.comment,
+ 'tree_build_time' : self.tree_build_time,
+ 'ctime' : self.ctime,
+ 'mtime' : self.mtime,
+ 'uid' : self.uid,
+ 'redhat_management_key' : self.redhat_management_key,
+ 'redhat_management_server' : self.redhat_management_server
}
def printable(self):
@@ -257,28 +263,30 @@ class Distro(item.Item):
buf = buf + _("owners : %s\n") % self.owners
buf = buf + _("post kernel options : %s\n") % self.kernel_options_post
buf = buf + _("redhat mgmt key : %s\n") % self.redhat_management_key
+ buf = buf + _("redhat mgmt server : %s\n") % self.redhat_management_server
buf = buf + _("template files : %s\n") % self.template_files
return buf
def remote_methods(self):
return {
- 'name' : self.set_name,
- 'kernel' : self.set_kernel,
- 'initrd' : self.set_initrd,
- 'kopts' : self.set_kernel_options,
- 'kopts-post' : self.set_kernel_options_post,
- 'kopts_post' : self.set_kernel_options_post,
- 'arch' : self.set_arch,
- 'ksmeta' : self.set_ksmeta,
- 'breed' : self.set_breed,
- 'os-version' : self.set_os_version,
- 'os_version' : self.set_os_version,
- 'owners' : self.set_owners,
- 'mgmt-classes' : self.set_mgmt_classes,
- 'mgmt_classes' : self.set_mgmt_classes,
- 'template-files': self.set_template_files,
- 'template_files': self.set_template_files,
- 'comment' : self.set_comment,
- 'redhat_management_key' : self.set_redhat_management_key
+ 'name' : self.set_name,
+ 'kernel' : self.set_kernel,
+ 'initrd' : self.set_initrd,
+ 'kopts' : self.set_kernel_options,
+ 'kopts-post' : self.set_kernel_options_post,
+ 'kopts_post' : self.set_kernel_options_post,
+ 'arch' : self.set_arch,
+ 'ksmeta' : self.set_ksmeta,
+ 'breed' : self.set_breed,
+ 'os-version' : self.set_os_version,
+ 'os_version' : self.set_os_version,
+ 'owners' : self.set_owners,
+ 'mgmt-classes' : self.set_mgmt_classes,
+ 'mgmt_classes' : self.set_mgmt_classes,
+ 'template-files' : self.set_template_files,
+ 'template_files' : self.set_template_files,
+ 'comment' : self.set_comment,
+ 'redhat_management_key' : self.set_redhat_management_key,
+ 'redhat_management_server' : self.set_redhat_management_server
}
diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py
index 9396e3cb..3f9e9460 100644
--- a/cobbler/item_profile.py
+++ b/cobbler/item_profile.py
@@ -42,62 +42,64 @@ class Profile(item.Item):
"""
Reset this object.
"""
- self.name = None
- self.uid = ""
- self.random_id = ""
- self.owners = self.settings.default_ownership
- self.distro = (None, '<<inherit>>')[is_subobject]
- self.enable_menu = (self.settings.enable_menu, '<<inherit>>')[is_subobject]
- self.kickstart = (self.settings.default_kickstart , '<<inherit>>')[is_subobject]
- self.kernel_options = ({}, '<<inherit>>')[is_subobject]
- self.kernel_options_post = ({}, '<<inherit>>')[is_subobject]
- self.ks_meta = ({}, '<<inherit>>')[is_subobject]
- self.template_files = ({}, '<<inherit>>')[is_subobject]
- self.virt_cpus = (1, '<<inherit>>')[is_subobject]
- self.virt_file_size = (self.settings.default_virt_file_size, '<<inherit>>')[is_subobject]
- self.virt_ram = (self.settings.default_virt_ram, '<<inherit>>')[is_subobject]
- self.repos = ([], '<<inherit>>')[is_subobject]
- self.depth = 1
- self.virt_type = (self.settings.default_virt_type, '<<inherit>>')[is_subobject]
- self.virt_path = ("", '<<inherit>>')[is_subobject]
- self.virt_bridge = (self.settings.default_virt_bridge, '<<inherit>>')[is_subobject]
- self.dhcp_tag = ("default", '<<inherit>>')[is_subobject]
- self.mgmt_classes = ([], '<<inherit>>')[is_subobject]
- self.parent = ''
- self.server = "<<inherit>>"
- self.comment = ""
- self.ctime = 0
- self.mtime = 0
- self.name_servers = (self.settings.default_name_servers,[])[is_subobject]
- self.name_servers_search = (self.settings.default_name_servers_search,[])[is_subobject]
- self.redhat_management_key = "<<inherit>>"
+ self.name = None
+ self.uid = ""
+ self.random_id = ""
+ self.owners = self.settings.default_ownership
+ self.distro = (None, '<<inherit>>')[is_subobject]
+ self.enable_menu = (self.settings.enable_menu, '<<inherit>>')[is_subobject]
+ self.kickstart = (self.settings.default_kickstart , '<<inherit>>')[is_subobject]
+ self.kernel_options = ({}, '<<inherit>>')[is_subobject]
+ self.kernel_options_post = ({}, '<<inherit>>')[is_subobject]
+ self.ks_meta = ({}, '<<inherit>>')[is_subobject]
+ self.template_files = ({}, '<<inherit>>')[is_subobject]
+ self.virt_cpus = (1, '<<inherit>>')[is_subobject]
+ self.virt_file_size = (self.settings.default_virt_file_size, '<<inherit>>')[is_subobject]
+ self.virt_ram = (self.settings.default_virt_ram, '<<inherit>>')[is_subobject]
+ self.repos = ([], '<<inherit>>')[is_subobject]
+ self.depth = 1
+ self.virt_type = (self.settings.default_virt_type, '<<inherit>>')[is_subobject]
+ self.virt_path = ("", '<<inherit>>')[is_subobject]
+ self.virt_bridge = (self.settings.default_virt_bridge, '<<inherit>>')[is_subobject]
+ self.dhcp_tag = ("default", '<<inherit>>')[is_subobject]
+ self.mgmt_classes = ([], '<<inherit>>')[is_subobject]
+ self.parent = ''
+ self.server = "<<inherit>>"
+ self.comment = ""
+ self.ctime = 0
+ self.mtime = 0
+ self.name_servers = (self.settings.default_name_servers,[])[is_subobject]
+ self.name_servers_search = (self.settings.default_name_servers_search,[])[is_subobject]
+ self.redhat_management_key = "<<inherit>>"
+ self.redhat_management_server = "<<inherit>>"
def from_datastruct(self,seed_data):
"""
Load this object's properties based on seed_data
"""
- self.parent = self.load_item(seed_data,'parent','')
- self.name = self.load_item(seed_data,'name')
- self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership)
- self.distro = self.load_item(seed_data,'distro')
- self.enable_menu = self.load_item(seed_data,'enable_menu', self.settings.enable_menu)
- self.kickstart = self.load_item(seed_data,'kickstart')
- self.kernel_options = self.load_item(seed_data,'kernel_options')
- self.kernel_options_post = self.load_item(seed_data,'kernel_options_post')
- self.ks_meta = self.load_item(seed_data,'ks_meta')
- self.template_files = self.load_item(seed_data,'template_files', {})
- 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>>')
- self.mgmt_classes = self.load_item(seed_data,'mgmt_classes', [])
- self.comment = self.load_item(seed_data,'comment','')
- self.ctime = self.load_item(seed_data,'ctime',0)
- self.mtime = self.load_item(seed_data,'mtime',0)
- self.name_servers = self.load_item(seed_data,'name_servers',[])
- self.name_servers_search = self.load_item(seed_data,'name_servers_search',[])
- self.redhat_management_key = self.load_item(seed_data,'redhat_management_key', '<<inherit>>')
+ self.parent = self.load_item(seed_data,'parent','')
+ self.name = self.load_item(seed_data,'name')
+ self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership)
+ self.distro = self.load_item(seed_data,'distro')
+ self.enable_menu = self.load_item(seed_data,'enable_menu', self.settings.enable_menu)
+ self.kickstart = self.load_item(seed_data,'kickstart')
+ self.kernel_options = self.load_item(seed_data,'kernel_options')
+ self.kernel_options_post = self.load_item(seed_data,'kernel_options_post')
+ self.ks_meta = self.load_item(seed_data,'ks_meta')
+ self.template_files = self.load_item(seed_data,'template_files', {})
+ 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>>')
+ self.mgmt_classes = self.load_item(seed_data,'mgmt_classes', [])
+ self.comment = self.load_item(seed_data,'comment','')
+ self.ctime = self.load_item(seed_data,'ctime',0)
+ self.mtime = self.load_item(seed_data,'mtime',0)
+ self.name_servers = self.load_item(seed_data,'name_servers',[])
+ self.name_servers_search = self.load_item(seed_data,'name_servers_search',[])
+ self.redhat_management_key = self.load_item(seed_data,'redhat_management_key', '<<inherit>>')
+ self.redhat_management_server = self.load_item(seed_data,'redhat_management_server', '<<inherit>>')
# backwards compatibility
if type(self.repos) != list:
@@ -181,6 +183,9 @@ class Profile(item.Item):
def set_redhat_management_key(self,key):
return utils.set_redhat_management_key(self,key)
+ def set_redhat_management_server(self,server):
+ return utils.set_redhat_management_server(self,server)
+
def set_name_servers(self,data):
# FIXME: move to utils since shared with system
data = utils.input_string_or_list(data, delim=" ")
@@ -287,35 +292,36 @@ class Profile(item.Item):
Return hash representation for the serializer
"""
return {
- 'name' : self.name,
- 'owners' : self.owners,
- 'distro' : self.distro,
- 'enable_menu' : self.enable_menu,
- 'kickstart' : self.kickstart,
- 'kernel_options' : self.kernel_options,
- 'kernel_options_post' : self.kernel_options_post,
- 'virt_file_size' : self.virt_file_size,
- 'virt_ram' : self.virt_ram,
- 'virt_bridge' : self.virt_bridge,
- 'virt_cpus' : self.virt_cpus,
- 'ks_meta' : self.ks_meta,
- 'template_files' : self.template_files,
- 'repos' : self.repos,
- 'parent' : self.parent,
- 'depth' : self.depth,
- 'virt_type' : self.virt_type,
- 'virt_path' : self.virt_path,
- 'dhcp_tag' : self.dhcp_tag,
- 'server' : self.server,
- 'mgmt_classes' : self.mgmt_classes,
- 'comment' : self.comment,
- 'ctime' : self.ctime,
- 'mtime' : self.mtime,
- 'name_servers' : self.name_servers,
- 'name_servers_search' : self.name_servers_search,
- 'uid' : self.uid,
- 'random_id' : self.random_id,
- 'redhat_management_key' : self.redhat_management_key
+ 'name' : self.name,
+ 'owners' : self.owners,
+ 'distro' : self.distro,
+ 'enable_menu' : self.enable_menu,
+ 'kickstart' : self.kickstart,
+ 'kernel_options' : self.kernel_options,
+ 'kernel_options_post' : self.kernel_options_post,
+ 'virt_file_size' : self.virt_file_size,
+ 'virt_ram' : self.virt_ram,
+ 'virt_bridge' : self.virt_bridge,
+ 'virt_cpus' : self.virt_cpus,
+ 'ks_meta' : self.ks_meta,
+ 'template_files' : self.template_files,
+ 'repos' : self.repos,
+ 'parent' : self.parent,
+ 'depth' : self.depth,
+ 'virt_type' : self.virt_type,
+ 'virt_path' : self.virt_path,
+ 'dhcp_tag' : self.dhcp_tag,
+ 'server' : self.server,
+ 'mgmt_classes' : self.mgmt_classes,
+ 'comment' : self.comment,
+ 'ctime' : self.ctime,
+ 'mtime' : self.mtime,
+ 'name_servers' : self.name_servers,
+ 'name_servers_search' : self.name_servers_search,
+ 'uid' : self.uid,
+ 'random_id' : self.random_id,
+ 'redhat_management_key' : self.redhat_management_key,
+ 'redhat_management_server' : self.redhat_management_server
}
def printable(self):
@@ -341,6 +347,7 @@ class Profile(item.Item):
buf = buf + _("owners : %s\n") % self.owners
buf = buf + _("post kernel options : %s\n") % self.kernel_options_post
buf = buf + _("redhat mgmt key : %s\n") % self.redhat_management_key
+ buf = buf + _("redhat mgmt server : %s\n") % self.redhat_management_server
buf = buf + _("repos : %s\n") % self.repos
buf = buf + _("server : %s\n") % self.server
buf = buf + _("template_files : %s\n") % self.template_files
@@ -355,41 +362,42 @@ class Profile(item.Item):
def remote_methods(self):
return {
- 'name' : self.set_name,
- 'parent' : self.set_parent,
- 'profile' : self.set_name,
- 'distro' : self.set_distro,
- 'enable-menu' : self.set_enable_menu,
- 'enable_menu' : self.set_enable_menu,
- 'kickstart' : self.set_kickstart,
- 'kopts' : self.set_kernel_options,
- 'kopts-post' : self.set_kernel_options_post,
- 'kopts_post' : self.set_kernel_options_post,
- 'virt-file-size' : self.set_virt_file_size,
- 'virt_file_size' : self.set_virt_file_size,
- 'virt-ram' : self.set_virt_ram,
- 'virt_ram' : self.set_virt_ram,
- 'ksmeta' : self.set_ksmeta,
- 'template-files' : self.set_template_files,
- 'template_files' : self.set_template_files,
- 'repos' : self.set_repos,
- 'virt-path' : self.set_virt_path,
- 'virt_path' : self.set_virt_path,
- 'virt-type' : self.set_virt_type,
- 'virt_type' : self.set_virt_type,
- 'virt-bridge' : self.set_virt_bridge,
- 'virt_bridge' : self.set_virt_bridge,
- 'virt-cpus' : self.set_virt_cpus,
- 'virt_cpus' : self.set_virt_cpus,
- 'dhcp-tag' : self.set_dhcp_tag,
- 'dhcp_tag' : self.set_dhcp_tag,
- 'server' : self.set_server,
- 'owners' : self.set_owners,
- 'mgmt-classes' : self.set_mgmt_classes,
- 'mgmt_classes' : self.set_mgmt_classes,
- 'comment' : self.set_comment,
- 'name_servers' : self.set_name_servers,
- 'name_servers_search' : self.set_name_servers_search,
- 'redhat_management_key' : self.set_redhat_management_key
+ 'name' : self.set_name,
+ 'parent' : self.set_parent,
+ 'profile' : self.set_name,
+ 'distro' : self.set_distro,
+ 'enable-menu' : self.set_enable_menu,
+ 'enable_menu' : self.set_enable_menu,
+ 'kickstart' : self.set_kickstart,
+ 'kopts' : self.set_kernel_options,
+ 'kopts-post' : self.set_kernel_options_post,
+ 'kopts_post' : self.set_kernel_options_post,
+ 'virt-file-size' : self.set_virt_file_size,
+ 'virt_file_size' : self.set_virt_file_size,
+ 'virt-ram' : self.set_virt_ram,
+ 'virt_ram' : self.set_virt_ram,
+ 'ksmeta' : self.set_ksmeta,
+ 'template-files' : self.set_template_files,
+ 'template_files' : self.set_template_files,
+ 'repos' : self.set_repos,
+ 'virt-path' : self.set_virt_path,
+ 'virt_path' : self.set_virt_path,
+ 'virt-type' : self.set_virt_type,
+ 'virt_type' : self.set_virt_type,
+ 'virt-bridge' : self.set_virt_bridge,
+ 'virt_bridge' : self.set_virt_bridge,
+ 'virt-cpus' : self.set_virt_cpus,
+ 'virt_cpus' : self.set_virt_cpus,
+ 'dhcp-tag' : self.set_dhcp_tag,
+ 'dhcp_tag' : self.set_dhcp_tag,
+ 'server' : self.set_server,
+ 'owners' : self.set_owners,
+ 'mgmt-classes' : self.set_mgmt_classes,
+ 'mgmt_classes' : self.set_mgmt_classes,
+ 'comment' : self.set_comment,
+ 'name_servers' : self.set_name_servers,
+ 'name_servers_search' : self.set_name_servers_search,
+ 'redhat_management_key' : self.set_redhat_management_key,
+ 'redhat_management_server' : self.set_redhat_management_server
}
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index baa8980b..ce35817e 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -38,47 +38,48 @@ class System(item.Item):
return cloned
def clear(self,is_subobject=False):
- self.name = None
- self.uid = ""
- self.owners = self.settings.default_ownership
- self.profile = None
- self.image = None
- self.kernel_options = {}
- self.kernel_options_post = {}
- self.ks_meta = {}
- self.interfaces = {}
- self.netboot_enabled = True
- self.depth = 2
- self.mgmt_classes = []
- self.template_files = {}
- self.kickstart = "<<inherit>>" # use value in profile
- self.server = "<<inherit>>" # "" (or settings)
- self.virt_path = "<<inherit>>" # ""
- self.virt_type = "<<inherit>>" # ""
- self.virt_cpus = "<<inherit>>" # ""
- self.virt_file_size = "<<inherit>>" # ""
- self.virt_ram = "<<inherit>>" # ""
- self.virt_type = "<<inherit>>" # ""
- self.virt_path = "<<inherit>>" # ""
- self.virt_bridge = "<<inherit>>" # ""
- self.comment = ""
- self.ctime = 0
- self.mtime = 0
- self.uid = ""
- self.random_id = ""
- self.power_type = self.settings.power_management_default_type
- self.power_address = ""
- self.power_user = ""
- self.power_pass = ""
- self.power_id = ""
- self.hostname = ""
- self.gateway = ""
- self.name_servers = []
- self.name_servers_search = []
- self.bonding = ""
- self.bonding_master = ""
- self.bonding_opts = ""
- self.redhat_management_key = "<<inherit>>"
+ self.name = None
+ self.uid = ""
+ self.owners = self.settings.default_ownership
+ self.profile = None
+ self.image = None
+ self.kernel_options = {}
+ self.kernel_options_post = {}
+ self.ks_meta = {}
+ self.interfaces = {}
+ self.netboot_enabled = True
+ self.depth = 2
+ self.mgmt_classes = []
+ self.template_files = {}
+ self.kickstart = "<<inherit>>" # use value in profile
+ self.server = "<<inherit>>" # "" (or settings)
+ self.virt_path = "<<inherit>>" # ""
+ self.virt_type = "<<inherit>>" # ""
+ self.virt_cpus = "<<inherit>>" # ""
+ self.virt_file_size = "<<inherit>>" # ""
+ self.virt_ram = "<<inherit>>" # ""
+ self.virt_type = "<<inherit>>" # ""
+ self.virt_path = "<<inherit>>" # ""
+ self.virt_bridge = "<<inherit>>" # ""
+ self.comment = ""
+ self.ctime = 0
+ self.mtime = 0
+ self.uid = ""
+ self.random_id = ""
+ self.power_type = self.settings.power_management_default_type
+ self.power_address = ""
+ self.power_user = ""
+ self.power_pass = ""
+ self.power_id = ""
+ self.hostname = ""
+ self.gateway = ""
+ self.name_servers = []
+ self.name_servers_search = []
+ self.bonding = ""
+ self.bonding_master = ""
+ self.bonding_opts = ""
+ self.redhat_management_key = "<<inherit>>"
+ self.redhat_management_server = "<<inherit>>"
def delete_interface(self,name):
"""
@@ -178,6 +179,7 @@ class System(item.Item):
self.name_servers = self.load_item(seed_data, 'name_servers', '<<inherit>>')
self.name_servers_search = self.load_item(seed_data, 'name_servers_search', '<<inherit>>')
self.redhat_management_key = self.load_item(seed_data, 'redhat_management_key', '<<inherit>>')
+ self.redhat_management_server = self.load_item(seed_data, 'redhat_management_server', '<<inherit>>')
# virt specific
@@ -339,6 +341,9 @@ class System(item.Item):
def set_redhat_management_key(self,key):
return utils.set_redhat_management_key(self,key)
+ def set_redhat_management_server(self,server):
+ return utils.set_redhat_management_server(self,server)
+
def set_server(self,server):
"""
If a system can't reach the boot server at the value configured in settings
@@ -637,42 +642,43 @@ class System(item.Item):
def to_datastruct(self):
return {
- 'name' : self.name,
- 'uid' : self.uid,
- 'random_id' : self.random_id,
- 'kernel_options' : self.kernel_options,
- 'kernel_options_post' : self.kernel_options_post,
- 'depth' : self.depth,
- 'interfaces' : self.interfaces,
- 'ks_meta' : self.ks_meta,
- 'kickstart' : self.kickstart,
- 'netboot_enabled' : self.netboot_enabled,
- 'owners' : self.owners,
- 'parent' : self.parent,
- 'profile' : self.profile,
- 'image' : self.image,
- 'server' : self.server,
- 'virt_cpus' : self.virt_cpus,
- 'virt_bridge' : self.virt_bridge,
- 'virt_file_size' : self.virt_file_size,
- 'virt_path' : self.virt_path,
- 'virt_ram' : self.virt_ram,
- 'virt_type' : self.virt_type,
- 'mgmt_classes' : self.mgmt_classes,
- 'template_files' : self.template_files,
- 'comment' : self.comment,
- 'ctime' : self.ctime,
- 'mtime' : self.mtime,
- 'power_type' : self.power_type,
- 'power_address' : self.power_address,
- 'power_user' : self.power_user,
- 'power_pass' : self.power_pass,
- 'power_id' : self.power_id,
- 'hostname' : self.hostname,
- 'gateway' : self.gateway,
- 'name_servers' : self.name_servers,
- 'name_servers_search' : self.name_servers_search,
- 'redhat_management_key' : self.redhat_management_key
+ 'name' : self.name,
+ 'uid' : self.uid,
+ 'random_id' : self.random_id,
+ 'kernel_options' : self.kernel_options,
+ 'kernel_options_post' : self.kernel_options_post,
+ 'depth' : self.depth,
+ 'interfaces' : self.interfaces,
+ 'ks_meta' : self.ks_meta,
+ 'kickstart' : self.kickstart,
+ 'netboot_enabled' : self.netboot_enabled,
+ 'owners' : self.owners,
+ 'parent' : self.parent,
+ 'profile' : self.profile,
+ 'image' : self.image,
+ 'server' : self.server,
+ 'virt_cpus' : self.virt_cpus,
+ 'virt_bridge' : self.virt_bridge,
+ 'virt_file_size' : self.virt_file_size,
+ 'virt_path' : self.virt_path,
+ 'virt_ram' : self.virt_ram,
+ 'virt_type' : self.virt_type,
+ 'mgmt_classes' : self.mgmt_classes,
+ 'template_files' : self.template_files,
+ 'comment' : self.comment,
+ 'ctime' : self.ctime,
+ 'mtime' : self.mtime,
+ 'power_type' : self.power_type,
+ 'power_address' : self.power_address,
+ 'power_user' : self.power_user,
+ 'power_pass' : self.power_pass,
+ 'power_id' : self.power_id,
+ 'hostname' : self.hostname,
+ 'gateway' : self.gateway,
+ 'name_servers' : self.name_servers,
+ 'name_servers_search' : self.name_servers_search,
+ 'redhat_management_key' : self.redhat_management_key,
+ 'redhat_management_server' : self.redhat_management_server
}
def printable(self):
@@ -755,51 +761,52 @@ class System(item.Item):
# compatibility. At some point they may be removed.
return {
- 'name' : self.set_name,
- 'profile' : self.set_profile,
- 'image' : self.set_image,
- 'kopts' : self.set_kernel_options,
- 'kopts-post' : self.set_kernel_options_post,
- 'kopts_post' : self.set_kernel_options_post,
- 'ksmeta' : self.set_ksmeta,
- 'kickstart' : self.set_kickstart,
- 'netboot-enabled' : self.set_netboot_enabled,
- 'netboot_enabled' : self.set_netboot_enabled,
- 'virt-path' : self.set_virt_path,
- 'virt_path' : self.set_virt_path,
- 'virt-type' : self.set_virt_type,
- 'virt_type' : self.set_virt_type,
- 'modify-interface' : self.modify_interface,
- 'modify_interface' : self.modify_interface,
- 'delete-interface' : self.delete_interface,
- 'delete_interface' : self.delete_interface,
- 'virt-path' : self.set_virt_path,
- 'virt_path' : self.set_virt_path,
- 'virt-ram' : self.set_virt_ram,
- 'virt_ram' : self.set_virt_ram,
- 'virt-type' : self.set_virt_type,
- 'virt_type' : self.set_virt_type,
- 'virt-cpus' : self.set_virt_cpus,
- 'virt_cpus' : self.set_virt_cpus,
- 'virt-file-size' : self.set_virt_file_size,
- 'virt_file_size' : self.set_virt_file_size,
- 'server' : self.set_server,
- 'owners' : self.set_owners,
- 'mgmt-classes' : self.set_mgmt_classes,
- 'mgmt_classes' : self.set_mgmt_classes,
- 'template-files' : self.set_template_files,
- 'template_files' : self.set_template_files,
- 'comment' : self.set_comment,
- 'power_type' : self.set_power_type,
- 'power_address' : self.set_power_address,
- 'power_user' : self.set_power_user,
- 'power_pass' : self.set_power_pass,
- 'power_id' : self.set_power_id,
- 'hostname' : self.set_hostname,
- 'gateway' : self.set_gateway,
- 'name_servers' : self.set_name_servers,
- 'name_servers_search' : self.set_name_servers_search,
- 'redhat_management_key' : self.set_redhat_management_key
+ 'name' : self.set_name,
+ 'profile' : self.set_profile,
+ 'image' : self.set_image,
+ 'kopts' : self.set_kernel_options,
+ 'kopts-post' : self.set_kernel_options_post,
+ 'kopts_post' : self.set_kernel_options_post,
+ 'ksmeta' : self.set_ksmeta,
+ 'kickstart' : self.set_kickstart,
+ 'netboot-enabled' : self.set_netboot_enabled,
+ 'netboot_enabled' : self.set_netboot_enabled,
+ 'virt-path' : self.set_virt_path,
+ 'virt_path' : self.set_virt_path,
+ 'virt-type' : self.set_virt_type,
+ 'virt_type' : self.set_virt_type,
+ 'modify-interface' : self.modify_interface,
+ 'modify_interface' : self.modify_interface,
+ 'delete-interface' : self.delete_interface,
+ 'delete_interface' : self.delete_interface,
+ 'virt-path' : self.set_virt_path,
+ 'virt_path' : self.set_virt_path,
+ 'virt-ram' : self.set_virt_ram,
+ 'virt_ram' : self.set_virt_ram,
+ 'virt-type' : self.set_virt_type,
+ 'virt_type' : self.set_virt_type,
+ 'virt-cpus' : self.set_virt_cpus,
+ 'virt_cpus' : self.set_virt_cpus,
+ 'virt-file-size' : self.set_virt_file_size,
+ 'virt_file_size' : self.set_virt_file_size,
+ 'server' : self.set_server,
+ 'owners' : self.set_owners,
+ 'mgmt-classes' : self.set_mgmt_classes,
+ 'mgmt_classes' : self.set_mgmt_classes,
+ 'template-files' : self.set_template_files,
+ 'template_files' : self.set_template_files,
+ 'comment' : self.set_comment,
+ 'power_type' : self.set_power_type,
+ 'power_address' : self.set_power_address,
+ 'power_user' : self.set_power_user,
+ 'power_pass' : self.set_power_pass,
+ 'power_id' : self.set_power_id,
+ 'hostname' : self.set_hostname,
+ 'gateway' : self.set_gateway,
+ 'name_servers' : self.set_name_servers,
+ 'name_servers_search' : self.set_name_servers_search,
+ 'redhat_management_key' : self.set_redhat_management_key,
+ 'redhat_management_server' : self.set_redhat_management_server
}
diff --git a/cobbler/modules/cli_distro.py b/cobbler/modules/cli_distro.py
index 2472f918..7105b403 100644
--- a/cobbler/modules/cli_distro.py
+++ b/cobbler/modules/cli_distro.py
@@ -61,6 +61,7 @@ class DistroFunction(commands.CobblerFunction):
p.add_option("--ksmeta", dest="ksmeta", help="ex: 'blippy=7'")
p.add_option("--mgmt-classes", dest="mgmt_classes", help="list of config management classes (for Puppet, etc)")
p.add_option("--redhat-management-key", dest="redhat_management_key", help="authentication token for RHN/Spacewalk/Satellite")
+ p.add_option("--redhat-management-server", dest="redhat_management_server", help="RHN/Spacewalk/Satellite server")
p.add_option("--template-files", dest="template_files", help="specify files to be generated from templates during a sync")
p.add_option("--name", dest="name", help="ex: 'RHEL-5-i386' (REQUIRED)")
@@ -118,6 +119,8 @@ class DistroFunction(commands.CobblerFunction):
obj.set_template_files(self.options.template_files,self.options.inplace)
if self.options.redhat_management_key is not None:
obj.set_redhat_management_key(self.options.redhat_management_key)
+ if self.options.redhat_management_server is not None:
+ obj.set_redhat_management_server(self.options.redhat_management_server)
return self.object_manipulator_finish(obj, self.api.distros, self.options)
diff --git a/cobbler/modules/cli_profile.py b/cobbler/modules/cli_profile.py
index f5933938..a3ca5d4c 100644
--- a/cobbler/modules/cli_profile.py
+++ b/cobbler/modules/cli_profile.py
@@ -89,6 +89,7 @@ class ProfileFunction(commands.CobblerFunction):
if not self.matches_args(args,["dumpvars","remove","report","getks","list"]):
p.add_option("--redhat-management-key", dest="redhat_management_key", help="authentication token for RHN/Spacewalk/Satellite")
+ p.add_option("--redhat-management-server", dest="redhat_management_server", help="RHN/Spacewalk/Satellite server")
p.add_option("--repos", dest="repos", help="names of cobbler repos")
p.add_option("--server", dest="server_override", help="overrides value in settings file")
p.add_option("--template-files", dest="template_files", help="specify files to be generated from templates during a sync")
@@ -163,6 +164,8 @@ class ProfileFunction(commands.CobblerFunction):
obj.set_name_servers_search(self.options.name_servers_search)
if self.options.redhat_management_key is not None:
obj.set_redhat_management_key(self.options.redhat_management_key)
+ if self.options.redhat_management_server is not None:
+ obj.set_redhat_management_server(self.options.redhat_management_server)
return self.object_manipulator_finish(obj, self.api.profiles, self.options)
diff --git a/cobbler/modules/cli_system.py b/cobbler/modules/cli_system.py
index 12f81a79..7c0924ed 100644
--- a/cobbler/modules/cli_system.py
+++ b/cobbler/modules/cli_system.py
@@ -75,6 +75,7 @@ class SystemFunction(commands.CobblerFunction):
p.add_option("--name-servers", dest="name_servers", help="name servers for static setups")
p.add_option("--name-servers-search", dest="name_servers_search", help="name servers search path for static setups")
p.add_option("--redhat-management-key", dest="redhat_management_key", help="authentication token for RHN/Spacewalk/Satellite")
+ p.add_option("--redhat-management-server", dest="redhat_management_server", help="RHN/Spacewalk/Satellite server")
p.add_option("--static-routes", dest="static_routes", help="sets static routes (see manpage)")
p.add_option("--template-files", dest="template_files",help="specify files to be generated from templates during a sync")
@@ -250,6 +251,8 @@ class SystemFunction(commands.CobblerFunction):
obj.set_name_servers_search(self.options.name_servers_search)
if self.options.redhat_management_key is not None:
obj.set_redhat_management_key(self.options.redhat_management_key)
+ if self.options.redhat_management_server is not None:
+ obj.set_redhat_management_server(self.options.redhat_management_server)
rc = self.object_manipulator_finish(obj, self.api.systems, self.options)
diff --git a/cobbler/remote.py b/cobbler/remote.py
index d1935712..83ab0da1 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -1954,6 +1954,7 @@ def test_xmlrpc_rw():
server.modify_distro(did, "template-files", "/tmp/cobbler.fake=/tmp/a /etc/fstab=/tmp/b",token) # hash or string
server.modify_distro(did, "comment", "...", token)
server.modify_distro(did, "redhat_management_key", "ALPHA", token)
+ server.modify_distro(did, "redhat_management_server", "rhn.example.com", token)
server.save_distro(did, token)
# use the non-XMLRPC API to check that it's added seeing we tested XMLRPC RW APIs above
@@ -1981,6 +1982,7 @@ def test_xmlrpc_rw():
server.modify_profile(pid, "name_servers", ["one","two"], token)
server.modify_profile(pid, "name_servers_search", ["one","two"], token)
server.modify_profile(pid, "redhat_management_key", "BETA", token)
+ server.modify_distro(did, "redhat_management_server", "sat.example.com", token)
server.save_profile(pid, token)
api.deserialize()
@@ -2022,6 +2024,7 @@ def test_xmlrpc_rw():
server.modify_system(sid, "power_pass", "magic", token)
server.modify_system(sid, "power_id", "7", token)
server.modify_system(sid, "redhat_management_key", "GAMMA", token)
+ server.modify_distro(did, "redhat_management_server", "spacewalk.example.com", token)
server.save_system(sid,token)
diff --git a/cobbler/utils.py b/cobbler/utils.py
index 8f4cebaa..72b438fc 100644
--- a/cobbler/utils.py
+++ b/cobbler/utils.py
@@ -1045,6 +1045,10 @@ def set_redhat_management_key(self,key):
self.redhat_management_key = key
return True
+def set_redhat_management_server(self,server):
+ self.redhat_management_server = server
+ return True
+
def set_arch(self,arch,repo=False):
if arch is None or arch == "" or arch == "standard" or arch == "x86":
arch = "i386"
diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py
index b68eacbb..6175ef50 100644
--- a/cobbler/webui/CobblerWeb.py
+++ b/cobbler/webui/CobblerWeb.py
@@ -337,6 +337,7 @@ class CobblerWeb(object):
self.remote.modify_distro(distro, 'os-version', osversion, self.token)
self.remote.modify_distro(distro, 'comment', comment, self.token)
self.remote.modify_distro(distro, 'redhat_management_key', redhatmanagementkey, self.token)
+ self.remote.modify_distro(distro, 'redhat_management_server', redhatmanagementserver, self.token)
self.remote.modify_distro(distro, 'mgmt_classes', mgmt_classes, self.token)
# now time to save, do we want to run duplication checks?
@@ -652,6 +653,7 @@ class CobblerWeb(object):
self.remote.modify_system(system, 'gateway', gateway, self.token)
self.remote.modify_system(system, 'hostname', hostname, self.token)
self.remote.modify_system(system, 'redhat_management_key', redhatmanagementkey, self.token)
+ self.remote.modify_system(system, 'redhat_management_server', redhatmanagementserver, self.token)
self.remote.modify_system(system, 'mgmt_classes', mgmt_classes, self.token)
interfaces = args.get("interface_list","")
@@ -841,6 +843,7 @@ class CobblerWeb(object):
self.remote.modify_profile(profile, 'name_servers', name_servers, self.token)
self.remote.modify_profile(profile, 'name_servers_search', name_servers_search, self.token)
self.remote.modify_profile(profile, 'redhat_management_key', redhatmanagementkey, self.token)
+ self.remote.modify_profile(profile, 'redhat_management_server', redhatmanagementserver, self.token)
self.remote.modify_profile(profile, 'mgmt_classes', mgmt_classes, self.token)
if repos is None: