diff options
-rw-r--r-- | cobbler/collection.py | 1 | ||||
-rw-r--r-- | cobbler/item_image.py | 9 | ||||
-rw-r--r-- | cobbler/item_profile.py | 9 | ||||
-rw-r--r-- | cobbler/item_system.py | 9 | ||||
-rw-r--r-- | cobbler/remote.py | 2 | ||||
-rw-r--r-- | cobbler/settings.py | 5 | ||||
-rw-r--r-- | cobbler/utils.py | 22 | ||||
-rw-r--r-- | contrib/ruby/lib/cobbler/image.rb | 2 | ||||
-rw-r--r-- | contrib/ruby/lib/cobbler/profile.rb | 1 | ||||
-rw-r--r-- | contrib/ruby/lib/cobbler/system.rb | 1 | ||||
-rw-r--r-- | contrib/ruby/test/test_image.rb | 2 | ||||
-rw-r--r-- | contrib/ruby/test/test_profile.rb | 2 | ||||
-rw-r--r-- | contrib/ruby/test/test_system.rb | 2 | ||||
-rw-r--r-- | installer_templates/settings.template | 5 | ||||
-rw-r--r-- | webui_templates/image_edit.tmpl | 15 | ||||
-rw-r--r-- | webui_templates/profile_edit.tmpl | 13 | ||||
-rw-r--r-- | webui_templates/search.tmpl | 3 | ||||
-rw-r--r-- | webui_templates/system_edit.tmpl | 12 |
18 files changed, 110 insertions, 5 deletions
diff --git a/cobbler/collection.py b/cobbler/collection.py index eedc6d76..55c65f6c 100644 --- a/cobbler/collection.py +++ b/cobbler/collection.py @@ -106,6 +106,7 @@ class Collection(serializable.Serializable): 'inherit' : 'parent', 'ip' : 'ip_address', 'mac' : 'mac_address', + 'virt-auto-boot' : 'virt_auto_boot', 'virt-file-size' : 'virt_file_size', 'virt-ram' : 'virt_ram', 'virt-path' : 'virt_path', diff --git a/cobbler/item_image.py b/cobbler/item_image.py index f9ec38b0..834960c7 100644 --- a/cobbler/item_image.py +++ b/cobbler/item_image.py @@ -49,6 +49,7 @@ class Image(item.Item): self.file = '' self.parent = '' self.depth = 0 + self.virt_auto_boot = self.settings.virt_auto_boot self.virt_ram = self.settings.default_virt_ram self.virt_file_size = self.settings.default_virt_file_size self.virt_path = '' @@ -76,6 +77,7 @@ class Image(item.Item): self.depth = self.load_item(seed_data,'depth',0) self.owners = self.load_item(seed_data,'owners',self.settings.default_ownership) + self.virt_auto_boot = self.load_item(seed_data, 'virt_auto_boot', self.settings.virt_auto_boot) self.virt_ram = self.load_item(seed_data, 'virt_ram', self.settings.default_virt_ram) self.virt_file_size = self.load_item(seed_data, 'virt_file_size', self.settings.default_virt_file_size) self.virt_path = self.load_item(seed_data, 'virt_path') @@ -208,6 +210,9 @@ class Image(item.Item): raise CX("invalid network count") return True + def set_virt_auto_boot(self,num): + return utils.set_virt_auto_boot(self,num) + def set_virt_file_size(self,num): return utils.set_virt_file_size(self,num) @@ -250,6 +255,7 @@ class Image(item.Item): 'depth' : 0, 'parent' : '', 'owners' : self.owners, + 'virt_auto_boot' : self.virt_auto_boot, 'virt_ram' : self.virt_ram, 'virt_path' : self.virt_path, 'virt_type' : self.virt_type, @@ -284,6 +290,7 @@ class Image(item.Item): buf = buf + _("virt bridge : %s\n") % self.virt_bridge buf = buf + _("virt cpus : %s\n") % self.virt_cpus buf = buf + _("network count : %s\n") % self.network_count + buf = buf + _("virt auto boot : %s\n") % self.virt_auto_boot buf = buf + _("virt file size : %s\n") % self.virt_file_size buf = buf + _("virt path : %s\n") % self.virt_path buf = buf + _("virt ram : %s\n") % self.virt_ram @@ -307,6 +314,8 @@ class Image(item.Item): 'virt_cpus' : self.set_virt_cpus, 'network-count' : self.set_network_count, 'network_count' : self.set_network_count, + 'virt-auto-boot' : self.set_virt_auto_boot, + 'virt_auto_boot' : self.set_virt_auto_boot, 'virt-file-size' : self.set_virt_file_size, 'virt_file_size' : self.set_virt_file_size, 'virt-bridge' : self.set_virt_bridge, diff --git a/cobbler/item_profile.py b/cobbler/item_profile.py index 3f9e9460..70160381 100644 --- a/cobbler/item_profile.py +++ b/cobbler/item_profile.py @@ -53,6 +53,7 @@ class Profile(item.Item): self.kernel_options_post = ({}, '<<inherit>>')[is_subobject] self.ks_meta = ({}, '<<inherit>>')[is_subobject] self.template_files = ({}, '<<inherit>>')[is_subobject] + self.virt_auto_boot = (self.settings.virt_auto_boot, '<<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] @@ -117,6 +118,7 @@ class Profile(item.Item): self.virt_type = self.load_item(seed_data,'virt_type', self.settings.default_virt_type) self.virt_bridge = self.load_item(seed_data,'virt_bridge', self.settings.default_virt_bridge) self.virt_cpus = self.load_item(seed_data,'virt_cpus',1) + self.virt_auto_boot = self.load_item(seed_data,'virt_auto_boot',self.settings.virt_auto_boot) # backwards compatibility -- convert string entries to dicts for storage if self.kernel_options != "<<inherit>>" and type(self.kernel_options) != dict: @@ -234,6 +236,9 @@ class Profile(item.Item): return True raise CX(_("kickstart not found: %s") % kickstart) + def set_virt_auto_boot(self,num): + return utils.set_virt_auto_boot(self,num) + def set_virt_cpus(self,num): return utils.set_virt_cpus(self,num) @@ -303,6 +308,7 @@ class Profile(item.Item): 'virt_ram' : self.virt_ram, 'virt_bridge' : self.virt_bridge, 'virt_cpus' : self.virt_cpus, + 'virt_auto_boot' : self.virt_auto_boot, 'ks_meta' : self.ks_meta, 'template_files' : self.template_files, 'repos' : self.repos, @@ -351,6 +357,7 @@ class Profile(item.Item): buf = buf + _("repos : %s\n") % self.repos buf = buf + _("server : %s\n") % self.server buf = buf + _("template_files : %s\n") % self.template_files + buf = buf + _("virt auto boot : %s\n") % self.virt_auto_boot buf = buf + _("virt bridge : %s\n") % self.virt_bridge buf = buf + _("virt cpus : %s\n") % self.virt_cpus buf = buf + _("virt file size : %s\n") % self.virt_file_size @@ -372,6 +379,8 @@ class Profile(item.Item): 'kopts' : self.set_kernel_options, 'kopts-post' : self.set_kernel_options_post, 'kopts_post' : self.set_kernel_options_post, + 'virt-auto-boot' : self.set_virt_auto_boot, + 'virt_auto_boot' : self.set_virt_auto_boot, 'virt-file-size' : self.set_virt_file_size, 'virt_file_size' : self.set_virt_file_size, 'virt-ram' : self.set_virt_ram, diff --git a/cobbler/item_system.py b/cobbler/item_system.py index c911f4d6..bcd448e5 100644 --- a/cobbler/item_system.py +++ b/cobbler/item_system.py @@ -58,6 +58,7 @@ class System(item.Item): self.virt_cpus = "<<inherit>>" # "" self.virt_file_size = "<<inherit>>" # "" self.virt_ram = "<<inherit>>" # "" + self.virt_auto_boot = "<<inherit>>" # "" self.virt_type = "<<inherit>>" # "" self.virt_path = "<<inherit>>" # "" self.virt_bridge = "<<inherit>>" # "" @@ -188,6 +189,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.virt_ram = self.load_item(seed_data,'virt_ram','<<inherit>>') + self.virt_auto_boot = self.load_item(seed_data,'virt_auto_boot','<<inherit>>') self.virt_file_size = self.load_item(seed_data,'virt_file_size','<<inherit>>') self.virt_path = self.load_item(seed_data,'virt_path','<<inherit>>') self.virt_type = self.load_item(seed_data,'virt_type','<<inherit>>') @@ -574,6 +576,9 @@ class System(item.Item): def set_virt_file_size(self,num): return utils.set_virt_file_size(self,num) + def set_virt_auto_boot(self,num): + return utils.set_virt_auto_boot(self,num) + def set_virt_ram(self,num): return utils.set_virt_ram(self,num) @@ -702,6 +707,7 @@ class System(item.Item): 'virt_file_size' : self.virt_file_size, 'virt_path' : self.virt_path, 'virt_ram' : self.virt_ram, + 'virt_auto_boot' : self.virt_auto_boot, 'virt_type' : self.virt_type, 'mgmt_classes' : self.mgmt_classes, 'template_files' : self.template_files, @@ -747,6 +753,7 @@ class System(item.Item): buf = buf + _("virt file size : %s\n") % self.virt_file_size buf = buf + _("virt path : %s\n") % self.virt_path buf = buf + _("virt ram : %s\n") % self.virt_ram + buf = buf + _("virt auto boot : %s\n") % self.virt_auto_boot buf = buf + _("virt type : %s\n") % self.virt_type buf = buf + _("power type : %s\n") % self.power_type @@ -822,6 +829,8 @@ class System(item.Item): 'delete_interface' : self.delete_interface, 'virt-path' : self.set_virt_path, 'virt_path' : self.set_virt_path, + 'virt-auto-boot' : self.set_virt_auto_boot, + 'virt_auto_boot' : self.set_virt_auto_boot, 'virt-ram' : self.set_virt_ram, 'virt_ram' : self.set_virt_ram, 'virt-type' : self.set_virt_type, diff --git a/cobbler/remote.py b/cobbler/remote.py index bbb429c6..c9d668d6 100644 --- a/cobbler/remote.py +++ b/cobbler/remote.py @@ -1979,6 +1979,7 @@ def test_xmlrpc_rw(): server.modify_profile(pid, "kickstart", "/var/lib/cobbler/kickstarts/sample.ks", token) server.modify_profile(pid, "kopts", { "level" : "11" }, token) server.modify_profile(pid, "kopts-post", "noapic", token) + server.modify_profile(pid, "virt-auto-boot", 0, token) server.modify_profile(pid, "virt-file-size", 20, token) server.modify_profile(pid, "virt-ram", 2048, token) server.modify_profile(pid, "repos", [], token) @@ -2050,6 +2051,7 @@ def test_xmlrpc_rw(): server.modify_image(iid, "arch", "x86_64", token) server.modify_image(iid, "file", "nfs://server/path/to/x.iso", token) server.modify_image(iid, "owners", [ "alex", "michael" ], token) + server.modify_image(iid, "virt-auto-boot", 0, token) server.modify_image(iid, "virt-cpus", 1, token) server.modify_image(iid, "virt-file-size", 5, token) server.modify_image(iid, "virt-bridge", "virbr0", token) diff --git a/cobbler/settings.py b/cobbler/settings.py index f90bf865..25ab51eb 100644 --- a/cobbler/settings.py +++ b/cobbler/settings.py @@ -102,10 +102,6 @@ DEFAULTS = { "restart_bin" : "/sbin/service", "restart_dns" : 1, "restart_dhcp" : 1, - "restart_ris_linuxd" : 1, - "restart_xinetd" : 1, - "ris_linuxd_dir" : "/tftpboot/drivers", - "ris_linuxd_flags" : "", "run_install_triggers" : 1, "scm_track_enabled" : 0, "scm_track_mode" : "git", @@ -114,6 +110,7 @@ DEFAULTS = { "tftpd_bin" : "/usr/sbin/in.tftpd", "tftpd_conf" : "/etc/xinetd.d/tftp", "tftpd_rules" : "/var/lib/cobbler/cobbler-tftpd.rules", + "virt_auto_boot" : 0, "vsftpd_bin" : "/usr/sbin/vsftpd", "webdir" : "/var/www/cobbler", "xmlrpc_port" : 25151, diff --git a/cobbler/utils.py b/cobbler/utils.py index d3ec16b9..ac940fff 100644 --- a/cobbler/utils.py +++ b/cobbler/utils.py @@ -1272,6 +1272,28 @@ def set_virt_file_size(self,num): raise CX(_("invalid virt file size")) return True +def set_virt_auto_boot(self,num): + """ + For Virt only. + Specifies whether the VM should automatically boot upon host reboot + 0 tells Koan not to auto_boot virtuals + """ + + if num == "<<inherit>>": + self.virt_auto_boot = "<<inherit>>" + return True + + # num is a non-negative integer (0 means default) + try: + inum = int(num) + if (inum == 0) or (inum == 1): + self.virt_auto_boot = inum + return True + return CX(_("invalid virt_auto_boot value: value must be either '0' (disabled) or '1' (enabled)")) + except: + return CX(_("invalid virt_auto_boot value: value must be either '0' (disabled) or '1' (enabled)")) + return True + def set_virt_ram(self,num): """ For Virt only. diff --git a/contrib/ruby/lib/cobbler/image.rb b/contrib/ruby/lib/cobbler/image.rb index ea9dddc9..03493c93 100644 --- a/contrib/ruby/lib/cobbler/image.rb +++ b/contrib/ruby/lib/cobbler/image.rb @@ -32,7 +32,7 @@ module Cobbler ATTRIBUTES = [:name, :owners, :depth, :virt_file_size, :virt_path, :xml_file, :virt_bridge, :file, :parent, - :image_type, :virt_ram, :virt_cpus, :virt_type, :network_count] + :image_type, :virt_ram, :virt_auto_boot, :virt_cpus, :virt_type, :network_count] ATTRIBUTES.each do |attr| cobbler_field attr diff --git a/contrib/ruby/lib/cobbler/profile.rb b/contrib/ruby/lib/cobbler/profile.rb index 9ee27df1..438ea26c 100644 --- a/contrib/ruby/lib/cobbler/profile.rb +++ b/contrib/ruby/lib/cobbler/profile.rb @@ -44,6 +44,7 @@ module Cobbler cobbler_field :server cobbler_field :virt_bridge cobbler_field :virt_ram + cobbler_field :virt_auto_boot cobbler_field :kernel_options cobbler_field :virt_cpus cobbler_field :ks_meta diff --git a/contrib/ruby/lib/cobbler/system.rb b/contrib/ruby/lib/cobbler/system.rb index 5751ede1..b6d6cea6 100644 --- a/contrib/ruby/lib/cobbler/system.rb +++ b/contrib/ruby/lib/cobbler/system.rb @@ -46,6 +46,7 @@ module Cobbler cobbler_field :virt_file_size cobbler_field :virt_path cobbler_field :virt_ram + cobbler_field :virt_auto_boot cobbler_field :virt_type cobbler_field :virt_bridge diff --git a/contrib/ruby/test/test_image.rb b/contrib/ruby/test/test_image.rb index a29218f7..53ff95cc 100644 --- a/contrib/ruby/test/test_image.rb +++ b/contrib/ruby/test/test_image.rb @@ -47,6 +47,7 @@ module Cobbler 'virt_path' => '<<inherit>>', 'virt_bridge' => '<<inherit>>', 'virt_ram' => '<<inherit>>', + 'virt_auto_boot' => '<<inherit>>', 'virt_cpus' => '<<inherit>>', 'file' => '/var/ftp/pub/Fedora-9-i686-Live-KDE.iso', 'parent' => nil, @@ -60,6 +61,7 @@ module Cobbler 'virt_path' => '<<inherit>>', 'virt_bridge' => '<<inherit>>', 'virt_ram' => '<<inherit>>', + 'virt_auto_boot' => '<<inherit>>', 'virt_cpus' => '<<inherit>>', 'file' => '/var/ftp/pub/Fedora-9-i686-Live.iso', 'parent' => nil, diff --git a/contrib/ruby/test/test_profile.rb b/contrib/ruby/test/test_profile.rb index 237f47b1..76251a9f 100644 --- a/contrib/ruby/test/test_profile.rb +++ b/contrib/ruby/test/test_profile.rb @@ -44,6 +44,7 @@ module Cobbler 'owners' => ['admin'], 'repos' => [], 'server' => '<<inherit>>', + 'virt auto boot' => 0, 'virt bridge' => 'xenbr0', 'virt cpus' => '1', 'virt file size' => '5', @@ -62,6 +63,7 @@ module Cobbler 'owners' => ['admin'], 'repos' => [], 'server' => '<<inherit>>', + 'virt auto boot' => 0, 'virt bridge' => 'xenbr0', 'virt cpus' => '1', 'virt file size' => '5', diff --git a/contrib/ruby/test/test_system.rb b/contrib/ruby/test/test_system.rb index 727ea7ec..db13bc3f 100644 --- a/contrib/ruby/test/test_system.rb +++ b/contrib/ruby/test/test_system.rb @@ -67,6 +67,7 @@ module Cobbler }, 'virt_bridge' => '<<inherit>>', 'virt_ram' => '<<inherit>>', + 'virt_auto_boot' => '<<inherit>>', 'ks_meta' => nil, 'netboot_enabled' => 'True', 'kernel_options' => nil, @@ -89,6 +90,7 @@ module Cobbler 'mac_address' => 'AA:BB:CC:DD:EE:FF'}}, 'virt_bridge' => '<<inherit>>', 'virt_ram' => '<<inherit>>', + 'virt_auto_boot' => '<<inherit>>', 'ks_meta' => nil, 'netboot_enabled' => 'True', 'kernel_options' => nil, diff --git a/installer_templates/settings.template b/installer_templates/settings.template index 483878fe..acf1e4e7 100644 --- a/installer_templates/settings.template +++ b/installer_templates/settings.template @@ -351,6 +351,11 @@ anamon_enabled: 0 tftpd_bin: /usr/sbin/in.tftpd tftpd_conf: /etc/xinetd.d/tftp +# by default, profiles/systems will not be set to 'auto-boot' virtual systems; +# i.e. if a physical system reboots, the virtual systems hosted on that +# physical system will NOT be booted automatically. +virt_auto_boot: 0 + # cobbler's web directory. Don't change this setting -- see the # Wiki on "relocating your cobbler install" if your /var partition # is not large enough. diff --git a/webui_templates/image_edit.tmpl b/webui_templates/image_edit.tmpl index 8c369db1..83a2c218 100644 --- a/webui_templates/image_edit.tmpl +++ b/webui_templates/image_edit.tmpl @@ -196,6 +196,21 @@ function disablename(value) </td> </tr> + ## self.virt_auto_boot = self.settings.virt_auto_boot + + <tr> + <td> + <label for="virtautoboot">Virt AutoBoot</label> + </td> + <td> + <input type="text" size="5" style="width: 150px;" name="virtautoboot" id="virtautoboot" + #if $image + value="$image.virt_auto_boot" + #end if + /> + <p class="context-tip">For virtual installs only, enable/disable VM autoboot.</p> + </td> + </tr> ## self.virt_file_size = self.settings.default_virt_file_size <tr> diff --git a/webui_templates/profile_edit.tmpl b/webui_templates/profile_edit.tmpl index 1091de5a..4cbc20a5 100644 --- a/webui_templates/profile_edit.tmpl +++ b/webui_templates/profile_edit.tmpl @@ -299,6 +299,19 @@ function disablename(value) <tr> <td class="virtedit"> + <label for="virtautoboot">Virt AutoBoot</label> + </td> + <td class="virtedit"> + <input type="text" size="5" style="width: 150px;" name="virtautoboot" id="virtautoboot" + #if $profile + value="$profile.virt_auto_boot" + #end if + /> + <p class="context-tip">For virtual installs only, enable/disable VM autoboot.</p> + </td> + </tr> + <tr> + <td class="virtedit"> <label for="virttype">Virt Type</label> </td> <td class="virtedit"> diff --git a/webui_templates/search.tmpl b/webui_templates/search.tmpl index 44f1eb50..3f0adf07 100644 --- a/webui_templates/search.tmpl +++ b/webui_templates/search.tmpl @@ -58,6 +58,7 @@ <option value="redhat_management_server">red hat management server</option> <option value="repos">repos</option> <option value="template_files">template files</option> + <option value="virt_auto_boot">virt autoboot</option> <option value="virt_bridge">virt bridge</option> <option value="virt_cpus">virt cpus</option> <option value="virt_file_size">virt file size (GB)</option> @@ -104,6 +105,7 @@ <option value="static">static</option> <option value="static_routes">static_routes</option> <option value="template_files">template files</option> + <option value="virt_auto_boot">virt autoboot</option> <option value="virt_bridge">virt bridge</option> <option value="virt_cpus">virt cpus</option> <option value="virt_file_size">virt file size (GB)</option> @@ -135,6 +137,7 @@ <option value="network_count">network count</option> <option value="os_version">os version</option> <option value="owners">owners</option> + <option value="virt_auto_boot">virt autoboot</option> <option value="virt_ram">virt ram (MB)</option> <option value="virt_path">virt path</option> <option value="virt_type">virt type</option> diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl index d567a594..186c91a4 100644 --- a/webui_templates/system_edit.tmpl +++ b/webui_templates/system_edit.tmpl @@ -646,6 +646,18 @@ redhatmanagementserver" <tr> <td class="virtedit"> + <label for="virtautoboot">Virt AutoBoot</label> + </td> + <td class="virtedit"> + <input type="text" size="5" style="width: 150px;" name="virtautoboot" id="virtautoboot" + #if $system + value="$system.virt_auto_boot" + #end if + /> + <p class="context-tip">For virtual installs only, enable/disable VM autoboot.</p> + </td> + <tr> + <td class="virtedit"> <label for="virttype">Virt Type</label> </td> <td class="virtedit"> |