---
cobbler/action_power.py | 1 +
cobbler/item_system.py | 2 +-
cobbler/modules/cli_system.py | 2 +-
installer_templates/settings.template | 1 +
setup.py | 1 +
templates/power_virsh.template | 32 ++++++++++++++++++++++++++++++++
webui_templates/system_edit.tmpl | 2 +-
7 files changed, 38 insertions(+), 3 deletions(-)
create mode 100644 templates/power_virsh.template
diff --git a/cobbler/action_power.py b/cobbler/action_power.py
index d524578..d0a5db6 100644
--- a/cobbler/action_power.py
+++ b/cobbler/action_power.py
@@ -136,6 +136,7 @@ class PowerTool:
"rsa" : os.path.join(powerdir,"power_rsa.template"),
"lpar" : os.path.join(powerdir,"power_lpar.template"),
"bladecenter": os.path.join(powerdir,"power_bladecenter.template"),
+ "virsh" : os.path.join(powerdir,"power_virsh.template"),
}
result = map.get(self.system.power_type, "")
diff --git a/cobbler/item_system.py b/cobbler/item_system.py
index 0125e47..3e38d1b 100644
--- a/cobbler/item_system.py
+++ b/cobbler/item_system.py
@@ -563,7 +563,7 @@ 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
rsai lpar bladecenter none"
+ valid = "bullpap wti apc_snmp ether-wake ipmilan drac ipmitool ilo
rsai lpar bladecenter virsh none"
choices = valid.split(" ")
choices.sort()
if power_type not in choices:
diff --git a/cobbler/modules/cli_system.py b/cobbler/modules/cli_system.py
index 8f28bae..bfe8cef 100644
--- a/cobbler/modules/cli_system.py
+++ b/cobbler/modules/cli_system.py
@@ -100,7 +100,7 @@ class SystemFunction(commands.CobblerFunction):
if not
self.matches_args(args,["dumpvars","remove","report","getks","list"]):
p.add_option("--power-pass", dest="power_pass",
help="password for power management interface")
if not
self.matches_args(args,["dumpvars","poweron","poweroff","reboot","remove","report","getks","list"]):
- p.add_option("--power-type", dest="power_type",
help="one of: none, apc_snmp, bullpap, drac, ether-wake, ilo, ipmilan,
ipmitool, wti, lpar, bladecenter")
+ p.add_option("--power-type", dest="power_type",
help="one of: none, apc_snmp, bullpap, drac, ether-wake, ilo, ipmilan,
ipmitool, wti, lpar, bladecenter, virsh")
if not
self.matches_args(args,["dumpvars","remove","report","getks","list"]):
p.add_option("--power-user", dest="power_user",
help="username for power management interface, if required")
diff --git a/installer_templates/settings.template
b/installer_templates/settings.template
index 9d0e8e4..791ed42 100644
--- a/installer_templates/settings.template
+++ b/installer_templates/settings.template
@@ -179,6 +179,7 @@ omshell_bin: /usr/bin/omshell
# rsa
# lpar
# bladecenter
+# virsh
power_management_default_type: 'ipmitool'
diff --git a/setup.py b/setup.py
index 1ac15c1..c1bc561 100644
--- a/setup.py
+++ b/setup.py
@@ -242,6 +242,7 @@ if __name__ == "__main__":
(powerpath, ['templates/power_ilo.template']),
(powerpath,
['templates/power_lpar.template']),
(powerpath,
['templates/power_bladecenter.template']),
+ (powerpath,
['templates/power_virsh.template']),
# templates for /usr/bin/cobbler-setup
(itemplates,
['installer_templates/modules.conf.template']),
diff --git a/templates/power_virsh.template b/templates/power_virsh.template
new file mode 100644
index 0000000..c116844
--- /dev/null
+++ b/templates/power_virsh.template
@@ -0,0 +1,32 @@
+## Set proper virsh operation
+#if $power_mode == "on"
+ #set operation = "start"
+#else
+ #set operation = "destroy"
+#end if
+
+## Build connection URI
+## driver[+transport]://[EMAIL PROTECTED]:port]/[path][?extraparameters]
+
+## Determine requested driver to use (defaults to 'qemu')
+#if $power_address and $power_address.count(':') > 0
+ #set (driver, power_address) = $power_address.split(':', 1)
+#else
+ #set driver = "qemu"
+#end if
+
+## Was a username requested (defaults to '')?
+#if $power_user
+ #set $username = "%s@" % $power_user
+#else
+ #set $username = ""
+#end if
+
+## Default to localhost
+#if $username and $power_address is None or $power_address == ""
+ #set $power_address = "localhost"
+#end if
+
+## Perform requested action
+## NOTE - may require additional setup by sys-admin to enable passwd-less
operation
+/usr/bin/virsh --connect $driver://$username$power_address/system $operation
$power_id
diff --git a/webui_templates/system_edit.tmpl b/webui_templates/system_edit.tmpl
index 1e5be16..8ecfa73 100644
--- a/webui_templates/system_edit.tmpl
+++ b/webui_templates/system_edit.tmpl
@@ -686,7 +686,7 @@ function page_onload() {
</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", "lpar", "bladecenter" ]
+ #set valid_power = [ "bullpap", "wti", "apc_snmp", "ether-wake",
"ipmilan", "drac", "ipmitool", "ilo", "rsa", "lpar", "bladecenter", "virsh" ]
#set nothing = valid_power.sort()
#for $value in $valid_power:
--
1.6.0.3
_______________________________________________
cobbler mailing list
[email protected]
https://fedorahosted.org/mailman/listinfo/cobbler