diff options
-rw-r--r-- | cobbler/action_power.py | 1 | ||||
-rw-r--r-- | cobbler/item_system.py | 2 | ||||
-rw-r--r-- | cobbler/modules/cli_system.py | 2 | ||||
-rw-r--r-- | installer_templates/settings.template | 1 | ||||
-rw-r--r-- | setup.py | 1 | ||||
-rw-r--r-- | templates/power_virsh.template | 32 | ||||
-rw-r--r-- | webui_templates/system_edit.tmpl | 2 |
7 files changed, 38 insertions, 3 deletions
diff --git a/cobbler/action_power.py b/cobbler/action_power.py index 6ee5d6e2..e88c7327 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 9c73a772..8377c01f 100644 --- a/cobbler/item_system.py +++ b/cobbler/item_system.py @@ -569,7 +569,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 03601008..cd75daae 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 9d0e8e4a..791ed428 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' @@ -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 00000000..c1168448 --- /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]://[username@][hostname][: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 0e86a6e7..2a47a050 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: |