summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Laska <jlaska@redhat.com>2008-11-14 15:54:25 -0500
committerJames Laska <jlaska@redhat.com>2008-11-14 15:54:25 -0500
commit25da3ddd4411c21724636402a9ea19ea1707e942 (patch)
tree438b30a0ece6da2d8e1f56cd2324297ad81f9514
parent6b1c73afc3c3873df9eb6f28a992785dbe6ede58 (diff)
parent7b0e814a66307bd482771e1a4ff962d7fdbc7a6c (diff)
downloadcobbler-25da3ddd4411c21724636402a9ea19ea1707e942.tar.gz
cobbler-25da3ddd4411c21724636402a9ea19ea1707e942.tar.xz
cobbler-25da3ddd4411c21724636402a9ea19ea1707e942.zip
Merge commit 'origin/devel' into devel
-rw-r--r--cobbler/action_power.py6
-rw-r--r--cobbler/commands.py2
-rw-r--r--cobbler/item_system.py19
-rw-r--r--cobbler/modules/cli_system.py5
-rw-r--r--cobbler/remote.py6
-rw-r--r--cobbler/webui/CobblerWeb.py16
-rw-r--r--webui_content/cobblerweb.css3
-rw-r--r--webui_templates/profile_edit.tmpl24
-rw-r--r--webui_templates/system_edit.tmpl118
9 files changed, 158 insertions, 41 deletions
diff --git a/cobbler/action_power.py b/cobbler/action_power.py
index 2f6246ec..80a22ddc 100644
--- a/cobbler/action_power.py
+++ b/cobbler/action_power.py
@@ -77,9 +77,9 @@ class PowerTool:
print "- %s" % cmd
- tool_needed = cmd.split(" ")[0]
- if not os.path.exists(tool_needed):
- raise CX("error: %s is not installed" % tool_needed)
+ #tool_needed = cmd.split(" ")[0]
+ #if not os.path.exists(tool_needed):
+ # print "warning: %s does not seem to be installed" % tool_needed
rc = sub_process.call(cmd, shell=True)
if not rc == 0:
diff --git a/cobbler/commands.py b/cobbler/commands.py
index 6b0293e4..d2da685d 100644
--- a/cobbler/commands.py
+++ b/cobbler/commands.py
@@ -264,8 +264,6 @@ class CobblerFunction:
Boilerplate for objects that offer add/edit/delete/remove/copy functionality.
"""
- print "DEBUG: args = %s" % self.args
-
if "dumpvars" in self.args:
if not self.options.name:
raise CX(_("name is required"))
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index d23d1df9..14a57ca6 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -504,8 +504,9 @@ class System(item.Item):
def set_power_type(self, power_type):
power_type = power_type.lower()
- valid = "bullpap wti apc_snmp ether-wake ipmilan drac ipmitool ilo rsa"
+ valid = "bullpap wti apc_snmp ether-wake ipmilan drac ipmitool ilo rsai none"
choices = valid.split(" ")
+ choices.sort()
if power_type not in choices:
raise CX("power type must be one of: %s" % ",".join(choices))
self.power_type = power_type
@@ -584,6 +585,12 @@ class System(item.Item):
buf = buf + _("virt ram : %s\n") % self.virt_ram
buf = buf + _("virt type : %s\n") % self.virt_type
+ buf = buf + _("power type : %s\n") % self.power_type
+ buf = buf + _("power address : %s\n") % self.power_address
+ buf = buf + _("power user : %s\n") % self.power_user
+ buf = buf + _("power password : %s\n") % self.power_pass
+ buf = buf + _("power id : %s\n") % self.power_id
+
ikeys = self.interfaces.keys()
ikeys.sort()
for name in ikeys:
@@ -665,11 +672,11 @@ class System(item.Item):
'template-files' : self.set_template_files,
'template_files' : self.set_template_files,
'comment' : self.set_comment,
- '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
+ '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
}
diff --git a/cobbler/modules/cli_system.py b/cobbler/modules/cli_system.py
index 92b37aa9..ec3797bc 100644
--- a/cobbler/modules/cli_system.py
+++ b/cobbler/modules/cli_system.py
@@ -41,7 +41,7 @@ class SystemFunction(commands.CobblerFunction):
return "system"
def subcommands(self):
- return ["add","copy","dumpvars","edit","find","poweroff","poweron","list","reboot""remove","rename","report","getks"]
+ return ["add","copy","dumpvars","edit","find","poweroff","poweron","list","reboot","remove","rename","report","getks"]
def add_options(self, p, args):
@@ -95,8 +95,7 @@ class SystemFunction(commands.CobblerFunction):
p.add_option("--power-address", dest="power_address", help="address of power mgmt device, if required")
p.add_option("--power-id", dest="power_id", help="plug-number or blade name, if required")
p.add_option("--power-pass", dest="power_pass", help="password for power management interface")
-
- p.add_option("--power-type", dest="power_type", help="one of: none, bullpap, wti, apc_snmp, ether-wake, ipmilan, drac, ipmitool, ilo")
+ p.add_option("--power-type", dest="power_type", help="one of: none, apc_snmp, bullpap, drac, ether-wake, ilo, ipmilan, ipmitool, wti")
p.add_option("--power-user", dest="power_user", help="username for power management interface, if required")
diff --git a/cobbler/remote.py b/cobbler/remote.py
index 088ab7f6..6cf27e70 100644
--- a/cobbler/remote.py
+++ b/cobbler/remote.py
@@ -1660,6 +1660,12 @@ def test_xmlrpc_rw():
server.modify_system(sid, "mgmt-classes", [ "one", "two", "three"], token)
server.modify_system(sid, "template-files", {}, token)
server.modify_system(sid, "comment", "...", token)
+ server.modify_system(sid, "power_address", "power.example.org", token)
+ server.modify_system(sid, "power_type", "ipmitool", token)
+ server.modify_system(sid, "power_user", "Admin", token)
+ server.modify_system(sid, "power_pass", "magic", token)
+ server.modify_system(sid, "power_id", "7", token)
+
server.save_system(sid,token)
api.deserialize()
diff --git a/cobbler/webui/CobblerWeb.py b/cobbler/webui/CobblerWeb.py
index 4eef2bee..f33dd6f3 100644
--- a/cobbler/webui/CobblerWeb.py
+++ b/cobbler/webui/CobblerWeb.py
@@ -321,7 +321,9 @@ class CobblerWeb(object):
def system_save(self,name=None,oldname=None,comment=None,editmode="edit",profile=None,
new_or_edit=None,
kopts=None, koptspost=None, ksmeta=None, owners=None, server_override=None, netboot='n',
- virtpath=None,virtram=None,virttype=None,virtcpus=None,virtfilesize=None,delete1=None, delete2=None, **args):
+ virtpath=None,virtram=None,virttype=None,virtcpus=None,virtfilesize=None,
+ power_type=None, power_user=None, power_pass=None, power_id=None, power_address=None,
+ delete1=None, delete2=None, **args):
if not self.__xmlrpc_setup():
@@ -382,12 +384,22 @@ class CobblerWeb(object):
self.remote.modify_system(system, 'virt-ram', virtram, self.token)
if virttype:
self.remote.modify_system(system, 'virt-type', virttype, self.token)
-
if virtpath:
self.remote.modify_system(system, 'virt-path', virtpath, self.token)
+
if comment:
self.remote.modify_system(system, 'comment', comment, self.token)
+ if power_type:
+ self.remote.modify_system(system, 'power_type', power_type, self.token)
+ if power_user:
+ self.remote.modify_system(system, 'power_user', power_user, self.token)
+ if power_pass:
+ self.remote.modify_system(system, 'power_pass', power_pass, self.token)
+ if power_id:
+ self.remote.modify_system(system, 'power_id', power_id, self.token)
+ if power_address:
+ self.remote.modify_system(system, 'power_address', power_address, self.token)
interfaces = args.get("interface_list","")
interfaces = interfaces.split(",")
diff --git a/webui_content/cobblerweb.css b/webui_content/cobblerweb.css
index e843db31..f9a46bbd 100644
--- a/webui_content/cobblerweb.css
+++ b/webui_content/cobblerweb.css
@@ -49,4 +49,7 @@ table.sortable caption {
td.nicedit { background-color: #444444; }
+td.virtedit { background-color: #000080; }
+
+td.poweredit { background-color: #8b8878; }
diff --git a/webui_templates/profile_edit.tmpl b/webui_templates/profile_edit.tmpl
index 10f34085..31866881 100644
--- a/webui_templates/profile_edit.tmpl
+++ b/webui_templates/profile_edit.tmpl
@@ -240,10 +240,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtfilesize">Virt Disk (GB)</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="5" style="width: 150px;" name="virtfilesize" id="virtfilesize"
#if $profile
value="$profile.virt_file_size"
@@ -254,10 +254,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtram">Virt RAM (MB)</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="5" style="width: 150px;" name="virtram" id="virtram"
#if $profile
value="$profile.virt_ram"
@@ -268,10 +268,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virttype">Virt Type</label>
</td>
- <td>
+ <td class="virtedit">
#if $profile and $profile.virt_type == "auto"
<input type="radio" name="virttype" id="virttype" value="auto" checked>Any
#else
@@ -311,10 +311,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtpath">Virt Path</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="255" style="width: 400px;" name="virtpath" id="virtpath"
#if $profile
value="$profile.virt_path"
@@ -325,10 +325,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtpath">Virt Bridge</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="255" style="width: 150px;" name="virtbridge" id="virtbridge"
#if $profile
value="$profile.virt_bridge"
@@ -339,10 +339,10 @@ function disablename(value)
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtpath">Virt CPUs</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="255" style="width: 150px;" name="virtcpus" id="virtcpus"
#if $profile
value="$profile.virt_cpus"
diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl
index d0eca31c..68823db5 100644
--- a/webui_templates/system_edit.tmpl
+++ b/webui_templates/system_edit.tmpl
@@ -155,7 +155,16 @@ function save_intf(which)
itable["virtbridge"] = document.getElementById("virtbridge").value
itable["subnet"] = document.getElementById("subnet").value
itable["gateway"] = document.getElementById("gateway").value
- itable["bonding"] = document.getElementById("bonding").value
+
+ var bond = "na"
+ if (document.getElementById("bonding_is_master").checked == true) {
+ bond = "master"
+ } else if (document.getElementById("bonding_is_slave").checked == true) {
+ bond = "slave"
+ }
+
+ itable["bonding"] = bond
+
itable["bondingmaster"] = document.getElementById("bondingmaster").value
itable["bondingopts"] = document.getElementById("bondingopts").value
itable["static"] = document.getElementById("static").checked
@@ -209,7 +218,9 @@ function clear_intf()
document.getElementById("virtbridge").value = ""
document.getElementById("subnet").value = ""
document.getElementById("gateway").value = ""
- document.getElementById("bonding").value = ""
+
+ document.getElementById("bonding_is_na").checked = True
+
document.getElementById("bondingmaster").value = ""
document.getElementById("bondingopts").value = ""
document.getElementById("present").value = "1"
@@ -513,10 +524,10 @@ function page_onload() {
<tr>
- <td>
+ <td class="virtedit">
<label for="virtfilesize">Virt Disk (GB)</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="5" style="width: 150px;" name="virtfilesize" id="virtfilesize"
#if $system
value="$system.virt_file_size"
@@ -527,10 +538,10 @@ function page_onload() {
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtram">Virt RAM (MB)</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="5" style="width: 150px;" name="virtram" id="virtram"
#if $system
value="$system.virt_ram"
@@ -541,10 +552,10 @@ function page_onload() {
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virttype">Virt Type</label>
</td>
- <td>
+ <td class="virtedit">
#if $system and $system.virt_type == "<<inherit>>"
<input type="radio" name="virttype" id="virttype" value="<<inherit>>" checked>Inherit
@@ -583,10 +594,10 @@ function page_onload() {
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtpath">Virt Path</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="255" style="width: 400px;" name="virtpath" id="virtpath"
#if $system
value="$system.virt_path"
@@ -597,10 +608,10 @@ function page_onload() {
</tr>
<tr>
- <td>
+ <td class="virtedit">
<label for="virtpath">Virt CPUs</label>
</td>
- <td>
+ <td class="virtedit">
<input type="text" size="255" style="width: 150px;" name="virtcpus" id="virtcpus"
#if $system
value="$system.virt_cpus"
@@ -611,6 +622,87 @@ function page_onload() {
</tr>
<tr>
+ <td class="poweredit">
+ <label for="power_type">Power Type</label>
+ </td>
+ <td class="poweredit">
+ <select name="power_type" id="power_type">
+ #set valid_power = [ "bullpap", "wti", "apc_snmp", "ether-wake", "ipmilan", "drac", "ipmitool", "ilo", "rsa" ]
+ #set nothing = valid_power.sort()
+
+ #for $value in $valid_power:
+ <option name="$value"
+ #if $system and (($system.power_type == $value) or ($system.power_type == "" and $value == "none"))
+ selected="1"
+ #end if
+ >$value</option>
+ #end for
+ </select>
+ <p class="context-tip">Is a power management device attached?</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="poweredit">
+ <label for="power_address">Power Address</label>
+ </td>
+ <td class="poweredit">
+ <input type="text" size="255" style="width: 150px;" name="power_address" id="power_address"
+ #if $system
+ value="$system.power_address"
+ #end if
+ />
+ <p class="context-tip">Ex: hostname-mgmt.example.org</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="poweredit">
+ <label for="power_id">Power Id</label>
+ </td>
+ <td class="poweredit">
+ <input type="text" size="255" style="width: 150px;" name="power_id" id="power_id"
+ #if $system
+ value="$system.power_id"
+ #end if
+ />
+ <p class="context-tip">Plug number or blade name, if applicable.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="poweredit">
+ <label for="power_user">Power User</label>
+ </td>
+ <td class="poweredit">
+ <input type="text" size="255" style="width: 150px;" name="power_user" id="power_user"
+ #if $system
+ value="$system.power_user"
+ #end if
+ />
+ <p class="context-tip">Power management username, if device requires one.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="poweredit">
+ <label for="power_pass">Power Password</label>
+ </td>
+ <td class="poweredit">
+ <input type="text" size="255" style="width: 150px;" name="power_pass" id="power_pass"
+ #if $system
+ value="$system.power_pass"
+ #end if
+ />
+ <p class="context-tip">Power management password.</p>
+ </td>
+ </tr>
+
+ ## FIXME: it might be a good idea to color code the power section in the same
+ ## way we color code the interface section (see "nicedit" in CSS) as well as
+ ## the virt section being a different color
+
+ <tr>
<td>
<label for="new-interface">Add Interface</label>
</td>
@@ -623,7 +715,7 @@ function page_onload() {
<tr>
<td>
- <label for="interfaces">Inteface</label>
+ <label for="interfaces">Interface</label>
</td>
<td>
<select name="interfaces" id="interfaces" onchange="on_interface_change();">