---
 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

Reply via email to