From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga ./conga.spec.in.in luci/cluster/cluster_ ...
Date: 29 Sep 2010 17:08:32 -0000 [thread overview]
Message-ID: <20100929170832.23815.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe at sourceware.org 2010-09-29 17:08:26
Modified files:
. : conga.spec.in.in
luci/cluster : cluster_config-macros fence-macros
resource-form-macros
validate_config_multicast.js validate_fence.js
luci/docs : Makefile
luci/plone-custom: conga.js
luci/site/luci/Extensions: FenceHandler.py LuciClusterInfo.py
LuciValidation.py
conga_storage_constants.py
luci/site/luci/Extensions/ClusterModel: FenceDeviceAttr.py
ModelBuilder.py
ricci : Makefile
Added files:
luci/docs : luci_admin.8
ricci/docs : Makefile ricci.8
Log message:
Sync up with RHEL56 dist cvs
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.45.2.116&r2=1.45.2.117
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/cluster_config-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.7&r2=1.3.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.17&r2=1.2.2.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.21.2.17&r2=1.21.2.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_config_multicast.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.5&r2=1.3.2.6
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_fence.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.13&r2=1.1.2.14
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/docs/luci_admin.8.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/docs/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.2.2.1&r2=1.2.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/plone-custom/conga.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.3.2.10&r2=1.3.2.11
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.22&r2=1.4.2.23
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciClusterInfo.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.19&r2=1.1.4.20
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciValidation.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.6.2.16&r2=1.6.2.17
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/conga_storage_constants.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.8.2.2&r2=1.8.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.4&r2=1.5.2.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.4.15&r2=1.1.4.16
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.11.2.2&r2=1.11.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/docs/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.2.2.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/docs/ricci.8.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=NONE&r2=1.1.2.1
--- conga/conga.spec.in.in 2009/05/21 13:32:03 1.45.2.116
+++ conga/conga.spec.in.in 2010/09/29 17:08:23 1.45.2.117
@@ -142,6 +142,8 @@
%if "%{include_zope_and_plone}" == "yes"
%{_libdir}/luci/zope
%endif
+%doc
+%{_mandir}/man8/luci_admin.8*
%pre -n luci
groupmod luci >&/dev/null
@@ -287,6 +289,8 @@
%config(noreplace) %{_sysconfdir}/oddjobd.conf.d/ricci-modvirt.oddjob.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/ricci-modvirt.systembus.conf
%{_libexecdir}/ricci-modvirt
+%doc
+%{_mandir}/man8/ricci.8*
%pre -n ricci
getent group ricci >/dev/null || groupadd -r ricci
--- conga/luci/cluster/cluster_config-macros 2010/08/05 18:01:15 1.3.2.7
+++ conga/luci/cluster/cluster_config-macros 2010/09/29 17:08:24 1.3.2.8
@@ -608,7 +608,14 @@
</tal:block>
</td>
</tr>
-
+ <tr class="systemsTable"
+ tal:condition="python:os_version != 'rhel4'">
+ <td class="systemsTable">
+ <input type="radio" name="mcast" value="broadcast"
+ onclick="disable_mcast('mcast_address', 'mcast_interface')"
+ tal:attributes="checked python: clusterinfo['is_bcast'] == 'True'"/>Use broadcast
+ </td>
+ </tr>
<tr class="systemsTable">
<td class="systemsTable">
Multicast address
--- conga/luci/cluster/fence-macros 2010/08/07 04:11:22 1.2.2.17
+++ conga/luci/cluster/fence-macros 2010/09/29 17:08:24 1.2.2.18
@@ -10,7 +10,7 @@
<html>
<head>
- <title tal:content="string:" />
+ <title tal:content="string:" />
</head>
<body>
@@ -186,6 +186,10 @@
<tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo" />
</tal:block>
+ <tal:block tal:condition="python: cur_fence_type == 'fence_ilo_mp'">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo_mp" />
+ </tal:block>
+
<tal:block tal:condition="python: cur_fence_type == 'fence_drac'">
<tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
</tal:block>
@@ -254,6 +258,18 @@
<tal:block metal:use-macro="here/fence-macros/macros/fence-form-scsi" />
</tal:block>
+ <tal:block tal:condition="python: cur_fence_type == 'fence_cisco_mds'">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-cisco_mds" />
+ </tal:block>
+
+ <tal:block tal:condition="python: cur_fence_type == 'fence_ifmib'">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ifmib" />
+ </tal:block>
+
+ <tal:block tal:condition="python: cur_fence_type == 'fence_ucs'">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+ </tal:block>
+
<tal:block tal:condition="python: cur_fence_type == 'fence_manual'">
<tal:block metal:use-macro="here/fence-macros/macros/fence-form-manual" />
</tal:block>
@@ -339,6 +355,9 @@
<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
<option name="fence_vmware" value="fence_vmware">VMware Fencing</option>
<option name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
+ <option name="fence_cisco_mds" value="fence_cisco_mds">Cisco MDS</option>
+ <option name="fence_ucs" value="fence_ucs">Cisco UCS</option>
+ <option name="fence_ifmib" value="fence_ifmib">IF MIB</option>
</div>
<div metal:define-macro="fence-option-list">
@@ -352,6 +371,7 @@
<option name="fence_gnbd" value="fence_gnbd">GNBD</option>
<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
<option name="fence_ilo" value="fence_ilo">HP iLO</option>
+ <option name="fence_ilo_mp" value="fence_ilo_mp">HP iLO MP</option>
<option name="fence_rsa" value="fence_rsa">IBM RSA II</option>
<option name="fence_rsb" value="fence_rsb">Fujitsu Siemens RSB</option>
<option name="fence_bladecenter" value="fence_bladecenter">IBM Blade Center</option>
@@ -363,6 +383,9 @@
<option name="fence_scsi" value="fence_scsi">SCSI Fencing</option>
<option name="fence_vmware" value="fence_vmware">VMware Fencing</option>
<option name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
+ <option name="fence_cisco_mds" value="fence_cisco_mds">Cisco MDS</option>
+ <option name="fence_ucs" value="fence_ucs">Cisco UCS</option>
+ <option name="fence_ifmib" value="fence_ifmib">IF MIB</option>
<option name="fence_manual" value="fence_manual">Manual Fencing</option>
</div>
@@ -676,6 +699,100 @@
</div>
</div>
+<div metal:define-macro="fence-form-ilo_mp"
+ tal:attributes="id cur_fencedev/name | nothing">
+
+ <div id="fence_ilo_mp" class="fencedev">
+ <table>
+ <tr>
+ <td><strong class="cluster">Fence Type</strong></td>
+ <td>HP iLO MP</td>
+ </tr>
+ <tr>
+ <td>Name</td>
+ <td>
+ <input name="name" type="text"
+ tal:attributes="value cur_fencedev/name | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Hostname</td>
+ <td>
+ <input name="ipaddr" type="text"
+ tal:attributes="value cur_fencedev/ipaddr | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ tal:attributes="value cur_fencedev/ipport | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Login</td>
+ <td>
+ <input name="login" type="text"
+ tal:attributes="value cur_fencedev/login | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Password</td>
+ <td>
+ <input name="passwd" type="password" autocomplete="off"
+ tal:attributes="value cur_fencedev/passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span title="Full path to a script to generate fence password">Password Script (optional)</span>
+ </td>
+ <td>
+ <input type="text" name="passwd_script"
+ tal:attributes="
+ value cur_fencedev/passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr tal:condition="exists:clusterinfo/has_fence_ssh">
+ <td>
+ <span title="Enable SSH operation">Use SSH</span>
+ </td>
+ <td>
+ <input tal:condition="exists:cur_fencedev"
+ type="checkbox" name="secure"
+ tal:attributes="
+ checked python:(cur_fencedev and cur_fencedev.has_key('secure') and (cur_fencedev['secure'] == '1' or cur_fencedev['secure'].lower() == 'true')) and 'checked' or ''" />
+ <input tal:condition="not:exists:cur_fencedev"
+ type="checkbox" name="secure" />
+ </td>
+ </tr>
+ <tr>
+ <td>Force command prompt</td>
+ <td>
+ <input type="text" class="text" name="cmd_prompt"
+ tal:attributes="value cur_fencedev/cmd_prompt | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Power wait (seconds)</td>
+ <td>
+ <input type="text" name="power_wait"
+ tal:attributes="
+ value cur_fencedev/power_wait | nothing" />
+ </td>
+ </tr>
+ </table>
+
+ <tal:block tal:condition="exists: cur_fencedev">
+ <input type="hidden" name="existing_device" value="1" />
+ <input type="hidden" name="orig_name"
+ tal:attributes="value cur_fencedev/name | nothing" />
+ </tal:block>
+
+ <input type="hidden" name="fence_type" value="fence_ilo_mp" />
+ </div>
+</div>
+
<div metal:define-macro="fence-form-drac"
tal:attributes="id cur_fencedev/name | nothing">
@@ -1727,134 +1844,635 @@
</div>
</div>
-<div metal:define-macro="fence-form-list">
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-apc" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-mcdata" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-wti" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsa" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsb" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-brocade" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-sanbox2" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vixel" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-gnbd" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-egenera" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bladecenter" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bullpap" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rps10" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ipmilan" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-xvm" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-scsi" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-lpar" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-manual" />
-</div>
-
-<div metal:define-macro="shared-fence-form-list">
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-apc" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-mcdata" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-wti" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-brocade" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-sanbox2" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vixel" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-gnbd" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-egenera" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bladecenter" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bullpap" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-xvm" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-scsi" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-lpar" />
- <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" />
-</div>
-
-<div metal:define-macro="shared-fence-device-list">
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:define="cur_fence_type cur_fencedev/agent | nothing">
- <tal:block metal:use-macro="here/fence-macros/macros/fencedev-cond-ladder" />
- </tal:block>
- </tal:block>
-</div>
-
-<div metal:define-macro="fence-instance-form-apc"
- tal:omit-tag="exists: cur_fence_dev_id">
+<div metal:define-macro="fence-form-ucs"
+ tal:attributes="id cur_fencedev/name | nothing">
- <div id="fence_apc_instance" name="fence_apc" class="fencedev_instance"
- tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_ucs" class="fencedev">
<table>
<tr>
- <td>Port</td>
+ <td><strong class="cluster">Fence Type</strong></td>
+ <td>Cisco UCS</td>
+ </tr>
+ <tr>
+ <td>Name</td>
<td>
- <input name="port" type="text"
- tal:attributes="value cur_instance/port | nothing" />
+ <input name="name" type="text"
+ tal:attributes="value cur_fencedev/name | nothing" />
</td>
</tr>
<tr>
- <td>Switch (optional)</td>
+ <td>IP Address</td>
<td>
- <input name="switch" type="text"
- tal:attributes="value cur_instance/switch | nothing" />
+ <input name="ipaddr" type="text"
+ tal:attributes="value cur_fencedev/ipaddr | nothing" />
</td>
</tr>
- <tr tal:condition="exists:clusterinfo/has_fence_ssh">
+ <tr>
+ <td>IP port (optional)</td>
<td>
- <span title="Enable SSH operation">Use SSH</span>
+ <input name="ipport" type="text" class="text"
+ tal:attributes="value cur_fencedev/ipport | nothing" />
</td>
+ </tr>
+ <tr>
+ <td>Login</td>
<td>
- <input tal:condition="exists:cur_instance"
- type="checkbox" name="secure"
+ <input name="login" type="text"
+ tal:attributes="value cur_fencedev/login | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Password</td>
+ <td>
+ <input name="passwd" type="password" autocomplete="off"
+ tal:attributes="value cur_fencedev/passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span title="Full path to a script to generate fence password">Password Script (optional)</span>
+ </td>
+ <td>
+ <input type="text" name="passwd_script"
tal:attributes="
- checked python:(cur_instance and cur_instance.has_key('secure') and (cur_instance['secure'] == '1' or cur_instance['secure'].lower() == 'true')) and 'checked' or ''" />
- <input tal:condition="not:exists:cur_instance"
- type="checkbox" name="secure" />
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Use SSL connections</td>
+ <td>
+ <input tal:condition="exists:cur_fencedev"
+ type="checkbox" name="ssl"
+ tal:attributes="
+ checked python:(cur_fencedev and cur_fencedev.has_key('ssl') and (cur_fencedev['ssl'] == '1' or cur_fencedev['ssl'].lower() == 'true')) and 'checked' or ''" />
+ <input tal:condition="not:exists:cur_fencedev"
+ type="checkbox" name="ssl" />
+ </td>
+ </tr>
+ <tr>
+ <td>Power wait (seconds)</td>
+ <td>
+ <input type="text" name="power_wait"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/power_wait | nothing" />
</td>
</tr>
- <tr><td colspan="2">
- <div class="hbSubmit">
- <tal:block tal:condition="exists:cur_fence_instance_id">
- <input type="button" name="remove_fence"
- value="Remove this instance"
- tal:attributes="onclick python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
- </tal:block>
- <tal:block tal:condition="not:exists:cur_fence_instance_id">
- <input type="button" name="remove_fence"
- value="Remove this instance" />
- </tal:block>
- </div>
- </td></tr>
</table>
- <input type="hidden" name="option" tal:condition="exists:cur_instance"
- tal:attributes="value cur_instance/option |nothing" />
- <input type="hidden" name="fence_type" value="fence_apc" />
- <input type="hidden" name="fence_instance" value="1" />
- <input tal:condition="exists: cur_instance"
- type="hidden" name="existing_instance" value="1" />
- <input type="hidden" name="parent_fencedev"
- tal:attributes="value cur_fence_dev_id | nothing" />
+ <tal:block tal:condition="exists: cur_fencedev">
+ <input type="hidden" name="existing_device" value="1" />
+ <input type="hidden" name="orig_name"
+ tal:attributes="value cur_fencedev/name | nothing" />
+ </tal:block>
+
+ <input type="hidden" name="fence_type" value="fence_ucs" />
+ <input type="hidden" name="sharable" value="1" />
</div>
</div>
-<div metal:define-macro="fence-instance-form-lpar"
- tal:omit-tag="exists: cur_fence_dev_id">
- <div id="fence_lpar_instance" name="fence_lpar" class="fencedev_instance"
- tal:omit-tag="exists: cur_fence_dev_id">
+<div metal:define-macro="fence-form-ifmib"
+ tal:attributes="id cur_fencedev/name | nothing">
+
+ <div id="fence_ifmib" class="fencedev">
<table>
<tr>
- <td>Partition</td>
+ <td><strong class="cluster">Fence Type</strong></td>
+ <td>IF MIB</td>
+ </tr>
+ <tr>
+ <td>Name</td>
<td>
- <input name="partition" type="text"
+ <input name="name" type="text"
tal:attributes="
- value cur_instance/partition | nothing" />
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/name | nothing" />
</td>
</tr>
-
<tr>
- <td>Managed System</td>
+ <td>IP address or hostname</td>
<td>
- <input name="managed" type="text"
+ <input name="ipaddr" type="text"
tal:attributes="
- value cur_instance/managed | nothing" />
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/ipaddr | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/udpport | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Login</td>
+ <td>
+ <input name="login" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/login | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Password</td>
+ <td>
+ <input name="passwd" type="password" autocomplete="off"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span title="Full path to a script to generate fence password">Password Script (optional)</span>
+ </td>
+ <td>
+ <input type="text" name="passwd_script"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP version</td>
+ <td>
+ <select name="snmp_version"
+ tal:define="snmp_version cur_fencedev/snmp_version | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_version == 'default' and 'selected'"/>
+ <option value="1"
+ tal:content="string:1"
+ tal:attributes="selected python: snmp_version == '1' and 'selected'"/>
+ <option value="2c"
+ tal:content="string:2c"
+ tal:attributes="selected python: snmp_version == '2c' and 'selected'"/>
+ <option value="3"
+ tal:content="string:3"
+ tal:attributes="selected python: snmp_version == '3' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP community</td>
+ <td>
+ <input name="community" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/community | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP security level</td>
+ <td>
+ <select name="snmp_sec_level"
+ tal:define="snmp_sec_level cur_fencedev/snmp_sec_level | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_sec_level == 'default' and 'selected'"/>
+
+ <option value="noAuthNoPriv"
+ tal:content="string:noAuthNoPriv"
+ tal:attributes="selected python: snmp_sec_level == 'noAuthNoPriv' and 'selected'"/>
+
+ <option value="authNoPriv"
+ tal:content="string:authNoPriv"
+ tal:attributes="selected python: snmp_sec_level == 'authNoPriv' and 'selected'"/>
+
+ <option value="authPriv"
+ tal:content="string:authPriv"
+ tal:attributes="selected python: snmp_sec_level == 'authPriv' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP authentication protocol</td>
+ <td>
+ <select name="snmp_auth_prot"
+ tal:define="snmp_auth_prot cur_fencedev/snmp_auth_prot | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_auth_prot == 'default' and 'selected'"/>
+
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_auth_prot == 'default' and 'selected'"/>
+
+ <option value="MD5"
+ tal:content="string:MD5"
+ tal:attributes="selected python: snmp_auth_prot == 'MD5' and 'selected'"/>
+
+ <option value="SHA"
+ tal:content="string:SHA"
+ tal:attributes="selected python: snmp_auth_prot == 'SHA' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP privacy protocol</td>
+ <td>
+ <select name="snmp_priv_prot"
+ tal:define="snmp_priv_prot cur_fencedev/snmp_priv_prot | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_priv_prot == 'default' and 'selected'"/>
+ <option value="DES"
+ tal:content="string:DES"
+ tal:attributes="selected python: snmp_priv_prot == 'DES' and 'selected'"/>
+ <option value="AES"
+ tal:content="string:AES"
+ tal:attributes="selected python: snmp_priv_prot == 'AES' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP privacy protocol password</td>
+ <td>
+ <input name="snmp_priv_passwd" type="password" autocomplete="off"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/snmp_priv_passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ SNMP privacy protocol script
+ </td>
+ <td>
+ <input type="text" name="snmp_priv_passwd_script"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/snmp_priv_passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Power wait (seconds)</td>
+ <td>
+ <input type="text" name="power_wait"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/power_wait | nothing" />
+ </td>
+ </tr>
+ </table>
+
+ <tal:block tal:condition="exists: cur_fencedev">
+ <input type="hidden" name="existing_device" value="1" />
+ <input type="hidden" name="orig_name"
+ tal:attributes="value cur_fencedev/name | nothing" />
+ </tal:block>
+
+ <input type="hidden" name="sharable" value="1" />
+ <input type="hidden" name="fence_type" value="fence_ifmib" />
+ </div>
+</div>
+
+<div metal:define-macro="fence-form-cisco_mds"
+ tal:attributes="id cur_fencedev/name | nothing">
+
+ <div id="fence_cisco_mds" class="fencedev">
+ <table>
+ <tr>
+ <td><strong class="cluster">Fence Type</strong></td>
+ <td>Cisco MDS</td>
+ </tr>
+ <tr>
+ <td>Name</td>
+ <td>
+ <input name="name" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/name | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>IP address or hostname</td>
+ <td>
+ <input name="ipaddr" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/ipaddr | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/udpport | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Login</td>
+ <td>
+ <input name="login" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/login | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Password</td>
+ <td>
+ <input name="passwd" type="password" autocomplete="off"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <span title="Full path to a script to generate fence password">Password Script (optional)</span>
+ </td>
+ <td>
+ <input type="text" name="passwd_script"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP version</td>
+ <td>
+ <select name="snmp_version"
+ tal:define="snmp_version cur_fencedev/snmp_version | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_version == 'default' and 'selected'"/>
+ <option value="1"
+ tal:content="string:1"
+ tal:attributes="selected python: snmp_version == '1' and 'selected'"/>
+ <option value="2c"
+ tal:content="string:2c"
+ tal:attributes="selected python: snmp_version == '2c' and 'selected'"/>
+ <option value="3"
+ tal:content="string:3"
+ tal:attributes="selected python: snmp_version == '3' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP community</td>
+ <td>
+ <input name="community" type="text"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/community | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP security level</td>
+ <td>
+ <select name="snmp_sec_level"
+ tal:define="snmp_sec_level cur_fencedev/snmp_sec_level | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_sec_level == 'default' and 'selected'"/>
+
+ <option value="noAuthNoPriv"
+ tal:content="string:noAuthNoPriv"
+ tal:attributes="selected python: snmp_sec_level == 'noAuthNoPriv' and 'selected'"/>
+
+ <option value="authNoPriv"
+ tal:content="string:authNoPriv"
+ tal:attributes="selected python: snmp_sec_level == 'authNoPriv' and 'selected'"/>
+
+ <option value="authPriv"
+ tal:content="string:authPriv"
+ tal:attributes="selected python: snmp_sec_level == 'authPriv' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP authentication protocol</td>
+ <td>
+ <select name="snmp_auth_prot"
+ tal:define="snmp_auth_prot cur_fencedev/snmp_auth_prot | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_auth_prot == 'default' and 'selected'"/>
+
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_auth_prot == 'default' and 'selected'"/>
+
+ <option value="MD5"
+ tal:content="string:MD5"
+ tal:attributes="selected python: snmp_auth_prot == 'MD5' and 'selected'"/>
+
+ <option value="SHA"
+ tal:content="string:SHA"
+ tal:attributes="selected python: snmp_auth_prot == 'SHA' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP privacy protocol</td>
+ <td>
+ <select name="snmp_priv_prot"
+ tal:define="snmp_priv_prot cur_fencedev/snmp_priv_prot | string:default"
+ tal:attributes="disabled cur_fencedev/isShared | nothing">
+ <option value=""
+ tal:content="string:Default"
+ tal:attributes="selected python: snmp_priv_prot == 'default' and 'selected'"/>
+ <option value="DES"
+ tal:content="string:DES"
+ tal:attributes="selected python: snmp_priv_prot == 'DES' and 'selected'"/>
+ <option value="AES"
+ tal:content="string:AES"
+ tal:attributes="selected python: snmp_priv_prot == 'AES' and 'selected'"/>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>SNMP privacy protocol password</td>
+ <td>
+ <input name="snmp_priv_passwd" type="password" autocomplete="off"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/snmp_priv_passwd | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>
+ SNMP privacy protocol script
+ </td>
+ <td>
+ <input type="text" name="snmp_priv_passwd_script"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/snmp_priv_passwd_script | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Power wait (seconds)</td>
+ <td>
+ <input type="text" name="power_wait"
+ tal:attributes="
+ disabled cur_fencedev/isShared | nothing;
+ value cur_fencedev/power_wait | nothing" />
+ </td>
+ </tr>
+ </table>
+
+ <tal:block tal:condition="exists: cur_fencedev">
+ <input type="hidden" name="existing_device" value="1" />
+ <input type="hidden" name="orig_name"
+ tal:attributes="value cur_fencedev/name | nothing" />
+ </tal:block>
+
+ <input type="hidden" name="sharable" value="1" />
+ <input type="hidden" name="fence_type" value="fence_cisco_mds" />
+ </div>
+</div>
+
+<div metal:define-macro="fence-form-list">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-apc" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-mcdata" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-wti" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ilo_mp" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-drac" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsa" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rsb" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-brocade" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-sanbox2" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vixel" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-gnbd" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-egenera" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bladecenter" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bullpap" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-rps10" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ipmilan" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-xvm" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-scsi" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-lpar" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ifmib" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-cisco_mds" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-manual" />
+</div>
+
+<div metal:define-macro="shared-fence-form-list">
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-apc" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-mcdata" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-wti" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-brocade" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-sanbox2" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vixel" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-gnbd" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-egenera" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bladecenter" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-bullpap" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-xvm" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-scsi" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-lpar" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-vmware" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ifmib" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-cisco_mds" />
+ <tal:block metal:use-macro="here/fence-macros/macros/fence-form-ucs" />
+</div>
+
+<div metal:define-macro="shared-fence-device-list">
+ <tal:block tal:condition="exists: cur_fencedev">
+ <tal:block tal:define="cur_fence_type cur_fencedev/agent | nothing">
+ <tal:block metal:use-macro="here/fence-macros/macros/fencedev-cond-ladder" />
+ </tal:block>
+ </tal:block>
+</div>
+
+<div metal:define-macro="fence-instance-form-apc"
+ tal:omit-tag="exists: cur_fence_dev_id">
+
+ <div id="fence_apc_instance" name="fence_apc" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <table>
+ <tr>
+ <td>Port</td>
+ <td>
+ <input name="port" type="text"
+ tal:attributes="value cur_instance/port | nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Switch (optional)</td>
+ <td>
+ <input name="switch" type="text"
+ tal:attributes="value cur_instance/switch | nothing" />
+ </td>
+ </tr>
+ <tr tal:condition="exists:clusterinfo/has_fence_ssh">
+ <td>
+ <span title="Enable SSH operation">Use SSH</span>
+ </td>
+ <td>
+ <input tal:condition="exists:cur_instance"
+ type="checkbox" name="secure"
+ tal:attributes="
+ checked python:(cur_instance and cur_instance.has_key('secure') and (cur_instance['secure'] == '1' or cur_instance['secure'].lower() == 'true')) and 'checked' or ''" />
+ <input tal:condition="not:exists:cur_instance"
+ type="checkbox" name="secure" />
+ </td>
+ </tr>
+ <tr><td colspan="2">
+ <div class="hbSubmit">
+ <tal:block tal:condition="exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance"
+ tal:attributes="onclick python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
+ </tal:block>
+ <tal:block tal:condition="not:exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance" />
+ </tal:block>
+ </div>
+ </td></tr>
+ </table>
+
+ <input type="hidden" name="option" tal:condition="exists:cur_instance"
+ tal:attributes="value cur_instance/option |nothing" />
+ <input type="hidden" name="fence_type" value="fence_apc" />
+ <input type="hidden" name="fence_instance" value="1" />
+ <input tal:condition="exists: cur_instance"
+ type="hidden" name="existing_instance" value="1" />
+ <input type="hidden" name="parent_fencedev"
+ tal:attributes="value cur_fence_dev_id | nothing" />
+ </div>
+</div>
+
+<div metal:define-macro="fence-instance-form-lpar"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_lpar_instance" name="fence_lpar" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <table>
+ <tr>
+ <td>Partition</td>
+ <td>
+ <input name="partition" type="text"
+ tal:attributes="
+ value cur_instance/partition | nothing" />
+ </td>
+ </tr>
+
+ <tr>
+ <td>Managed System</td>
+ <td>
+ <input name="managed" type="text"
+ tal:attributes="
+ value cur_instance/managed | nothing" />
</td>
</tr>
@@ -2377,6 +2995,120 @@
</div>
</div>
+<div metal:define-macro="fence-instance-form-ucs"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_ucs_instance" name="fence_ucs" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <table>
+ <tr>
+ <td>Port</td>
+ <td>
+ <input name="port" type="text"
+ tal:attributes="value cur_instance/port | nothing" />
+ </td>
+ </tr>
+ <tr><td colspan="2">
+ <div class="hbSubmit">
+ <tal:block tal:condition="exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance"
+ tal:attributes="onclick python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
+ </tal:block>
+ <tal:block tal:condition="not:exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance" />
+ </tal:block>
+ </div>
+ </td></tr>
+ </table>
+
+ <input type="hidden" name="option" tal:condition="exists:cur_instance"
+ tal:attributes="value cur_instance/option |nothing" />
+ <input type="hidden" name="fence_type" value="fence_ucs" />
+ <input type="hidden" name="fence_instance" value="1" />
+ <input tal:condition="exists: cur_instance"
+ type="hidden" name="existing_instance" value="1" />
+ <input type="hidden" name="parent_fencedev"
+ tal:attributes="value cur_fence_dev_id | nothing" />
+ </div>
+</div>
+
+<div metal:define-macro="fence-instance-form-ifmib"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_ifmib_instance" name="fence_ifmib" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <table>
+ <tr>
+ <td>Port</td>
+ <td>
+ <input name="port" type="text"
+ tal:attributes="value cur_instance/port | nothing" />
+ </td>
+ </tr>
+ <tr><td colspan="2">
+ <div class="hbSubmit">
+ <tal:block tal:condition="exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance"
+ tal:attributes="onclick python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
+ </tal:block>
+ <tal:block tal:condition="not:exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance" />
+ </tal:block>
+ </div>
+ </td></tr>
+ </table>
+
+ <input type="hidden" name="option" tal:condition="exists:cur_instance"
+ tal:attributes="value cur_instance/option |nothing" />
+ <input type="hidden" name="fence_type" value="fence_ifmib" />
+ <input type="hidden" name="fence_instance" value="1" />
+ <input tal:condition="exists: cur_instance"
+ type="hidden" name="existing_instance" value="1" />
+ <input type="hidden" name="parent_fencedev"
+ tal:attributes="value cur_fence_dev_id | nothing" />
+ </div>
+</div>
+
+<div metal:define-macro="fence-instance-form-cisco_mds"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_cisco_mds_instance" name="fence_cisco_mds" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <table>
+ <tr>
+ <td>Port</td>
+ <td>
+ <input name="port" type="text"
+ tal:attributes="value cur_instance/port | nothing" />
+ </td>
+ </tr>
+ <tr><td colspan="2">
+ <div class="hbSubmit">
+ <tal:block tal:condition="exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance"
+ tal:attributes="onclick python: 'del_fence_instance(\'' + cur_fence_instance_id + '\')'" />
+ </tal:block>
+ <tal:block tal:condition="not:exists:cur_fence_instance_id">
+ <input type="button" name="remove_fence"
+ value="Remove this instance" />
+ </tal:block>
+ </div>
+ </td></tr>
+ </table>
+
+ <input type="hidden" name="option" tal:condition="exists:cur_instance"
+ tal:attributes="value cur_instance/option |nothing" />
+ <input type="hidden" name="fence_type" value="fence_cisco_mds" />
+ <input type="hidden" name="fence_instance" value="1" />
+ <input tal:condition="exists: cur_instance"
+ type="hidden" name="existing_instance" value="1" />
+ <input type="hidden" name="parent_fencedev"
+ tal:attributes="value cur_fence_dev_id | nothing" />
+ </div>
+</div>
+
<div metal:define-macro="fence-instance-form-list">
<tal:block
metal:use-macro="here/fence-macros/macros/fence-instance-form-apc" />
@@ -2406,6 +3138,13 @@
metal:use-macro="here/fence-macros/macros/fence-instance-form-xvm" />
<tal:block
metal:use-macro="here/fence-macros/macros/fence-instance-form-bladecenter" />
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-cisco_mds" />
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-ifmib" />
+
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-ucs" />
</div>
<div metal:define-macro="fencedev-instance-cond-ladder"
@@ -2480,6 +3219,21 @@
<tal:block
metal:use-macro="here/fence-macros/macros/fence-instance-form-bladecenter" />
</tal:block>
+
+ <tal:block tal:condition="python: cur_fence_type == 'fence_cisco_mds'">
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-cisco_mds" />
+ </tal:block>
+
+ <tal:block tal:condition="python: cur_fence_type == 'fence_ifmib'">
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-ifmib" />
+ </tal:block>
+
+ <tal:block tal:condition="python: cur_fence_type == 'fence_ucs'">
+ <tal:block
+ metal:use-macro="here/fence-macros/macros/fence-instance-form-ucs" />
+ </tal:block>
</div>
</body>
--- conga/luci/cluster/resource-form-macros 2010/08/07 03:16:01 1.21.2.17
+++ conga/luci/cluster/resource-form-macros 2010/09/29 17:08:24 1.21.2.18
@@ -32,7 +32,29 @@
<td tal:define="isubtree res/attrs/__independent_subtree|nothing">
<input class="vanilla" type="checkbox"
name="__independent_subtree"
- tal:attributes="checked python:(isubtree in ['1', 'true', 'True', True, 1]) and 'checked' or None" />
+ tal:attributes="checked python:(isubtree in ['1', 1]) and 'checked' or None" />
+ </td>
+ </tr>
+ <tr>
+ <td>This resource is non-critical</td>
+ <td tal:define="isubtree res/attrs/__independent_subtree|nothing">
+ <input class="vanilla" type="checkbox"
+ name="__independent_subtree_noncritical"
+ tal:attributes="checked python:(isubtree in ['2', 2]) and 'checked' or None" />
+ </td>
+ </tr>
+ <tr>
+ <td>Maximum number of restart failures before giving up<br>(applies only for non-critical resources)</td>
+ <td>
+ <input type="text" name="__max_restarts" size="3"
+ tal:attributes="value res/attrs/__max_restarts|nothing" />
+ </td>
+ </tr>
+ <tr>
+ <td>Restart expire time<br>(applies only for non-critical resources)</td>
+ <td>
+ <input type="text" name="__restart_expire_time" size="3"
+ tal:attributes="value res/attrs/__restart_expire_time|nothing" />
</td>
</tr>
</table>
@@ -478,6 +500,12 @@
<option name="ext2" value="ext2"
tal:content="string: ext2"
tal:attributes="selected python: fstype == 'ext2' and 'selected'" />
+ <option name="ext4" value="ext4"
+ tal:content="string: ext4"
+ tal:attributes="selected python: fstype == 'ext4' and 'selected'" />
+ <option name="xfs" value="xfs"
+ tal:content="string: xfs"
+ tal:attributes="selected python: fstype == 'xfs' and 'selected'" />
</select>
</td>
</tr>
--- conga/luci/cluster/validate_config_multicast.js 2010/08/05 18:01:15 1.3.2.5
+++ conga/luci/cluster/validate_config_multicast.js 2010/09/29 17:08:24 1.3.2.6
@@ -56,6 +56,8 @@
mcast = 0;
else if (form.mcast.length > 1 && form.mcast[1].checked)
mcast = 1;
+ else if (form.mcast[2].checked)
+ mcast = null;
else {
errors.push('An invalid value was given while specifying how the multicast address should be chosen.');
set_form_err(form.mcast[0]);
--- conga/luci/cluster/validate_fence.js 2010/08/05 17:33:05 1.1.2.13
+++ conga/luci/cluster/validate_fence.js 2010/09/29 17:08:24 1.1.2.14
@@ -22,6 +22,9 @@
fence_inst_validator['xvm'] = [ 'domain' ];
fence_inst_validator['lpar'] = [ 'partition', 'managed' ];
fence_inst_validator['vmware'] = [ 'port' ];
+fence_inst_validator['cisco_mds'] = [ 'port' ];
+fence_inst_validator['ifmib'] = [ 'port' ];
+fence_inst_validator['ucs'] = [ 'port' ];
var fence_validator = [];
fence_validator['apc'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
@@ -32,6 +35,7 @@
fence_validator['egenera'] = [ 'cserver' ];
fence_validator['gnbd'] = [ 'servers' ];
fence_validator['ilo'] = [ 'hostname', 'login', 'passwd', 'passwd_script', 'secure' ];
+fence_validator['ilo_mp'] = [ 'hostname', 'login', 'passwd', 'passwd_script', 'secure', 'ipport', 'secure', 'cmd_prompt' ];
fence_validator['ipmilan'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'lanplus', 'auth' ];
fence_validator['manual'] = [];
fence_validator['mcdata'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
@@ -44,6 +48,9 @@
fence_validator['vixel'] = [ 'ipaddr', 'passwd', 'passwd_script' ];
fence_validator['wti'] = [ 'ipaddr', 'passwd', 'passwd_script' ];
fence_validator['lpar'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
+fence_validator['cisco_mds'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
+fence_validator['ifmib'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
+fence_validator['ucs'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
fence_validator['vmware'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script', 'vmlogin' ];
fence_validator['xvm'] = [];
--- conga/luci/docs/Makefile 2008/01/23 04:44:31 1.2.2.1
+++ conga/luci/docs/Makefile 2010/09/29 17:08:24 1.2.2.2
@@ -8,6 +8,8 @@
##
################################################################################
+include ../make/defines.mk
+
LUCI_HOST=luci
LUCI_USER=admin
LUCI_PASS=changeme
@@ -20,6 +22,8 @@
docs:
install:
+ install -d ${mandir}/man8
+ install luci_admin.8 ${mandir}/man8
clean:
--- conga/luci/plone-custom/conga.js 2010/08/07 02:39:59 1.3.2.10
+++ conga/luci/plone-custom/conga.js 2010/09/29 17:08:24 1.3.2.11
@@ -223,7 +223,7 @@
return (null);
}
- if (!isNaN(parseInt(i[i.length - 1], 10))) {
+ if (!isNaN(Number(i[i.length - 1]))) {
return ('Invalid IP address.');
}
--- conga/luci/site/luci/Extensions/FenceHandler.py 2010/08/07 04:11:22 1.4.2.22
+++ conga/luci/site/luci/Extensions/FenceHandler.py 2010/09/29 17:08:25 1.4.2.23
@@ -776,6 +776,267 @@
return errors
+def val_ucs_fd(form, fencedev):
+ errors = list()
+
+ try:
+ ip = form['ipaddr'].strip()
+ if not ip:
+ raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
+ except Exception, e:
+ errors.append(FD_PROVIDE_IP)
+
+ try:
+ log = form['login'].strip()
+ if not log:
+ raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
+ except Exception, e:
+ errors.append(FD_PROVIDE_LOGIN)
+
+ try:
+ power_wait = form['power_wait'].strip()
+ if power_wait:
+ power_wait = int(power_wait)
+ if power_wait < 0:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ power_wait = None
+ except Exception, e:
+ power_wait = None
+ errors.append('An invalid value for power_wait was given: "%s"' % form['power_wait'])
+ if power_wait:
+ fencedev.addAttribute('power_wait', str(power_wait))
+ else:
+ fencedev.removeAttribute('power_wait')
+
+ try:
+ ipport = form['ipport'].strip()
+ if ipport:
+ ipport = int(ipport)
+ if ipport < 1 or ipport & 0xffff != ipport:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ ipport = None
+ except Exception, e:
+ ipport = None
+ errors.append('An invalid value for ipport was given: "%s"' % form['ipport'])
+ if ipport:
+ fencedev.addAttribute('ipport', str(ipport))
+ else:
+ fencedev.removeAttribute('ipport')
+
+ use_ssl = form.has_key('ssl') and form['ssl'].lower() in ('1', 'on', 'true')
+ if use_ssl:
+ fencedev.addAttribute('ssl', '1')
+ else:
+ fencedev.removeAttribute('ssl')
+
+ has_passwd = False
+ try:
+ pwd = form['passwd'].strip()
+ if not pwd:
+ # Allow passwords that consist of only spaces.
+ if not form.has_key('passwd') or form['passwd'] == '':
+ raise Exception, 'blank'
+ else:
+ pwd = form['passwd']
+ fencedev.addAttribute('passwd', pwd)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd')
+ except:
+ pass
+
+ try:
+ pwd_script = form['passwd_script'].strip()
+ if not pwd_script:
+ raise Exception, 'blank'
+ fencedev.addAttribute('passwd_script', pwd_script)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd_script')
+ except:
+ pass
+
+ if not has_passwd:
+ errors.append(FD_PROVIDE_PASSWD)
+
+ return errors
+
+def val_cisco_mds_fd(form, fencedev):
+ errors = list()
+
+ try:
+ ip = form['ipaddr'].strip()
+ if not ip:
+ raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
+ except Exception, e:
+ errors.append(FD_PROVIDE_IP)
+
+ try:
+ log = form['login'].strip()
+ if not log:
+ raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
+ except Exception, e:
+ errors.append(FD_PROVIDE_LOGIN)
+
+ try:
+ power_wait = form['power_wait'].strip()
+ if power_wait:
+ power_wait = int(power_wait)
+ if power_wait < 0:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ power_wait = None
+ except Exception, e:
+ power_wait = None
+ errors.append('An invalid value for power_wait was given: "%s"' % form['power_wait'])
+ if power_wait:
+ fencedev.addAttribute('power_wait', str(power_wait))
+ else:
+ fencedev.removeAttribute('power_wait')
+
+ try:
+ udpport = form['udpport'].strip()
+ if udpport:
+ udpport = int(udpport)
+ if udpport < 1 or udpport & 0xffff != udpport:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ udpport = None
+ except Exception, e:
+ udpport = None
+ errors.append('An invalid value for udpport was given: "%s"' % form['udpport'])
+ if udpport:
+ fencedev.addAttribute('udpport', str(udpport))
+ else:
+ fencedev.removeAttribute('udpport')
+
+ try:
+ snmp_community = form['community'].strip()
+ except Exception, e:
+ snmp_community = None
+ if snmp_community:
+ fencedev.addAttribute('community', snmp_community)
+ else:
+ fencedev.removeAttribute('community')
+
+ has_passwd = False
+ try:
+ pwd = form['passwd'].strip()
+ if not pwd:
+ # Allow passwords that consist of only spaces.
+ if not form.has_key('passwd') or form['passwd'] == '':
+ raise Exception, 'blank'
+ else:
+ pwd = form['passwd']
+ fencedev.addAttribute('passwd', pwd)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd')
+ except:
+ pass
+
+ try:
+ pwd_script = form['passwd_script'].strip()
+ if not pwd_script:
+ raise Exception, 'blank'
+ fencedev.addAttribute('passwd_script', pwd_script)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd_script')
+ except:
+ pass
+
+ if not has_passwd:
+ errors.append(FD_PROVIDE_PASSWD)
+
+ try:
+ pwd = form['snmp_priv_passwd'].strip()
+ if not pwd:
+ # Allow passwords that consist of only spaces.
+ if not form.has_key('snmp_priv_passwd') or form['snmp_priv_passwd'] == '':
+ raise Exception, 'blank'
+ else:
+ pwd = form['snmp_priv_passwd']
+ fencedev.addAttribute('snmp_priv_passwd', pwd)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_priv_passwd')
+ except:
+ pass
+
+ try:
+ pwd_script = form['snmp_priv_passwd_script'].strip()
+ if not pwd_script:
+ raise Exception, 'blank'
+ fencedev.addAttribute('snmp_priv_passwd_script', pwd_script)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_priv_passwd_script')
+ except:
+ pass
+
+ try:
+ snmp_version = form['snmp_version'].strip()
+ if not snmp_version in ('1', '2c', '3'):
+ snmp_version = None
+ raise Exception, 'blank'
+ fencedev.addAttribute('snmp_version', snmp_version)
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_version')
+ except:
+ pass
+
+ try:
+ snmp_sec_level = form['snmp_sec_level'].strip()
+ if not snmp_sec_level in ('noAuthNoPriv', 'authNoPriv', 'authPriv'):
+ snmp_sec_level = None
+ raise Exception, 'blank'
+ fencedev.addAttribute('snmp_sec_level', snmp_sec_level)
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_sec_level')
+ except:
+ pass
+
+ try:
+ snmp_auth_prot = form['snmp_auth_prot'].strip()
+ if not snmp_auth_prot in ('MD5', 'SHA'):
+ snmp_auth_prot = None
+ raise Exception, 'blank'
+ fencedev.addAttribute('snmp_auth_prot', snmp_auth_prot)
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_auth_prot')
+ except:
+ pass
+
+ try:
+ snmp_priv_prot = form['snmp_priv_prot'].strip()
+ if not snmp_priv_prot in ('DES', 'AES'):
+ snmp_priv_prot = None
+ raise Exception, 'blank'
+ fencedev.addAttribute('snmp_priv_prot', snmp_priv_prot)
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('snmp_priv_prot')
+ except:
+ pass
+
+ return errors
+
def val_noop_fd(dummy, _dummy):
return []
@@ -1103,6 +1364,106 @@
return errors
+def val_ilo_mp_fd(form, fencedev):
+ errors = list()
+
+ try:
+ hostname = form['ipaddr'].strip()
+ if not hostname:
+ raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', hostname)
+ except Exception, e:
+ errors.append(FD_PROVIDE_HOSTNAME)
+
+ try:
+ log = form['login'].strip()
+ if not log:
+ raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
+ except Exception, e:
+ errors.append(FD_PROVIDE_LOGIN)
+
+ try:
+ power_wait = form['power_wait'].strip()
+ if power_wait:
+ power_wait = int(power_wait)
+ if power_wait < 0:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ power_wait = None
+ except Exception, e:
+ power_wait = None
+ errors.append('An invalid value for power_wait was given: "%s"' % form['power_wait'])
+ if power_wait:
+ fencedev.addAttribute('power_wait', str(power_wait))
+ else:
+ fencedev.removeAttribute('power_wait')
+
+ has_passwd = False
+ try:
+ pwd = form['passwd'].strip()
+ if not pwd:
+ # Allow passwords that consist of only spaces.
+ if not form.has_key('passwd') or form['passwd'] == '':
+ raise Exception, 'blank'
+ else:
+ pwd = form['passwd']
+ fencedev.addAttribute('passwd', pwd)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd')
+ except:
+ pass
+
+ try:
+ pwd_script = form['passwd_script'].strip()
+ if not pwd_script:
+ raise Exception, 'blank'
+ fencedev.addAttribute('passwd_script', pwd_script)
+ has_passwd = True
+ except Exception, e:
+ try:
+ fencedev.removeAttribute('passwd_script')
+ except:
+ pass
+
+ if not has_passwd:
+ errors.append(FD_PROVIDE_PASSWD)
+
+ use_ssh = form.has_key('secure') and (form['secure'] == '1' or form['secure'].lower() == 'true')
+ if use_ssh:
+ fencedev.addAttribute('secure', '1')
+ else:
+ fencedev.removeAttribute('secure')
+
+ try:
+ ipport = form['ipport'].strip()
+ if ipport:
+ ipport = int(ipport)
+ if ipport < 1 or ipport & 0xffff != ipport:
+ raise ValueError
+ except (KeyError, AttributeError), e:
+ ipport = None
+ except Exception, e:
+ ipport = None
+ errors.append('An invalid value for ipport was given: "%s"' % form['ipport'])
+ if ipport:
+ fencedev.addAttribute('ipport', str(ipport))
+ else:
+ fencedev.removeAttribute('ipport')
+
+ try:
+ cmd_prompt = form['cmd_prompt'].strip()
+ except Exception, e:
+ cmd_prompt = None
+ if cmd_prompt:
+ fencedev.addAttribute('cmd_prompt', cmd_prompt)
+ else:
+ fencedev.removeAttribute('cmd_prompt')
+
+ return errors
+
FD_VALIDATE = {
'fence_apc': val_apc_fd,
'fence_wti': val_wti_fd,
@@ -1115,10 +1476,14 @@
'fence_egenera': val_egenera_fd,
'fence_bullpap': val_bullpap_fd,
'fence_lpar': val_lpar_fd,
+ 'fence_ucs': val_ucs_fd,
+ 'fence_cisco_mds': val_cisco_mds_fd,
+ 'fence_ifmib': val_cisco_mds_fd,
'fence_vmware': val_vmware_fd,
'fence_xvm': val_noop_fd,
'fence_scsi': val_noop_fd,
'fence_ilo': val_ilo_fd,
+ 'fence_ilo_mp': val_ilo_mp_fd,
'fence_ipmilan': val_ipmilan_fd,
'fence_drac': val_drac_fd,
'fence_drac5': val_drac_fd,
@@ -1417,6 +1782,32 @@
return errors
+def val_cisco_mds_fi(form, fenceinst):
+ errors = list()
+
+ try:
+ port = form['port'].strip()
+ if not port:
+ raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
+ except Exception, e:
+ errors.append(FI_PROVIDE_PORT)
+
+ return errors
+
+def val_ucs_fi(form, fenceinst):
+ errors = list()
+
+ try:
+ port = form['port'].strip()
+ if not port:
+ raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
+ except Exception, e:
+ errors.append(FI_PROVIDE_PORT)
+
+ return errors
+
def val_manual_fi(form, fenceinst):
nodename = form.get('nodename')
if nodename:
@@ -1441,8 +1832,12 @@
'fence_xvm': val_xvm_fi,
'fence_scsi': val_scsi_fi,
'fence_lpar': val_lpar_fi,
+ 'fence_ucs': val_ucs_fi,
+ 'fence_cisco_mds': val_cisco_mds_fi,
+ 'fence_ifmib': val_cisco_mds_fi,
'fence_vmware': val_vmware_fi,
'fence_ilo': val_noop_fi,
+ 'fence_ilo_mp': val_noop_fi,
'fence_ipmilan': val_noop_fi,
'fence_drac': val_noop_fi,
'fence_drac5': val_noop_fi,
--- conga/luci/site/luci/Extensions/LuciClusterInfo.py 2009/05/21 13:32:04 1.1.4.19
+++ conga/luci/site/luci/Extensions/LuciClusterInfo.py 2010/09/29 17:08:25 1.1.4.20
@@ -682,6 +682,10 @@
clumap['pfd'] = pfd
clumap['skip_undefined'] = fdp.getSkipUndefined()
+ if model.get_cluster_broadcast() is True:
+ clumap['is_bcast'] = 'True'
+ else:
+ clumap['is_bcast'] = 'False'
#-------------
#if multicast
multicast_url = '%stab=%s' % (prop_baseurl, PROP_MCAST_TAB)
--- conga/luci/site/luci/Extensions/LuciValidation.py 2010/08/06 23:54:12 1.6.2.16
+++ conga/luci/site/luci/Extensions/LuciValidation.py 2010/09/29 17:08:25 1.6.2.17
@@ -390,6 +390,29 @@
resObj.addAttribute('__independent_subtree', '1')
else:
resObj.removeAttribute('__independent_subtree')
+
+ if dummy_form.has_key('__independent_subtree_noncritical'):
+ resObj.addAttribute('__independent_subtree', '2')
+
+ if dummy_form.has_key('__max_restarts'):
+ try:
+ resObj.addAttribute('__max_restarts', str(int(dummy_form['__max_restarts'])))
+ except:
+ resObj.removeAttribute('__max_restarts')
+ else:
+ resObj.removeAttribute('__max_restarts')
+
+ if dummy_form.has_key('__restart_expire_time'):
+ try:
+ resObj.addAttribute('__restart_expire_time', str(int(dummy_form['__restart_expire_time'])))
+ except:
+ resObj.removeAttribute('__restart_expire_time')
+ else:
+ resObj.removeAttribute('__restart_expire_time')
+ else:
+ resObj.removeAttribute('__restart_expire_time')
+ resObj.removeAttribute('__max_restarts')
+
form_hash[form_id]['obj'] = resObj
if len(errors) > 0:
@@ -663,16 +686,21 @@
errors = list()
try:
mcast_val = form['mcast'].strip().lower()
- if mcast_val != 'true' and mcast_val != 'false':
+ if mcast_val not in ('true', 'false', 'broadcast'):
raise KeyError, mcast_val
if mcast_val == 'true':
mcast_manual = True
- else:
+ elif mcast_val == 'false':
mcast_manual = False
+ elif mcast_val == 'broadcast':
+ model.del_cluster_multicast()
+ model.set_cluster_broadcast()
+ return (True, {})
except KeyError, e:
errors.append('An invalid multicast selection was made')
return (False, {'errors': errors})
+ model.del_cluster_broadcast()
mcast_interface = None
if form.has_key('mcast_interface'):
mcast_interface = form['mcast_interface'].strip()
--- conga/luci/site/luci/Extensions/conga_storage_constants.py 2008/01/23 04:44:32 1.8.2.2
+++ conga/luci/site/luci/Extensions/conga_storage_constants.py 2010/09/29 17:08:25 1.8.2.3
@@ -80,7 +80,7 @@
'fstab': 'List in /etc/fstab',
'fstabpoint': '/etc/fstab Mountpoint',
'gfs_fsname': 'Unique GFS Name',
- 'has_journal': 'Journaling Enabled - ext3',
+ 'has_journal': 'Journaling Enabled - ext3, ext4',
'journals_num': 'Number of Journals',
'journal_size': 'Journal Size',
'label': 'Label',
--- conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py 2010/08/05 17:33:05 1.5.2.4
+++ conga/luci/site/luci/Extensions/ClusterModel/FenceDeviceAttr.py 2010/09/29 17:08:25 1.5.2.5
@@ -25,12 +25,16 @@
'fence_xvm': 'Virtual Machine Fencing',
'fence_scsi': 'SCSI Reservation',
'fence_ilo': 'HP iLO Device',
+ 'fence_ilo_mp': 'HP iLO MP',
'fence_ipmilan': 'IPMI Lan',
'fence_drac': 'Dell DRAC',
'fence_rsa': 'IBM RSA II Device',
'fence_rps10': 'RPS10 Serial Switch',
'fence_lpar': 'LPAR Fencing',
'fence_vmware': 'VMware Fencing',
+ 'fence_cisco_mds': 'Cisco MDS',
+ 'fence_ucs': 'Cisco UCS',
+ 'fence_ifmib': 'IF MIB',
'fence_manual': 'Manual Fencing'
}
@@ -49,7 +53,11 @@
'fence_scsi': True,
'fence_lpar': True,
'fence_vmware': True,
+ 'fence_cisco_mds': True,
+ 'fence_ucs': True,
+ 'fence_ifmib': True,
'fence_ilo': False,
+ 'fence_ilo_mp': False,
'fence_ipmilan': False,
'fence_drac': False,
'fence_rsa': False,
@@ -92,6 +100,9 @@
'fence_scsi': ( 'node' ),
'fence_lpar': ( 'partition' ),
'fence_vmware': ( 'port' ),
+ 'fence_cisco_mds': ( 'port' ),
+ 'fence_ucs': ( 'port' ),
+ 'fence_ifmib': ( 'port' ),
'fence_ilo': ( ),
'fence_ipmilan': ( ),
'fence_drac': ( ),
@@ -127,10 +138,18 @@
( 'name', 'ipaddr', 'login', 'passwd' ),
'fence_vmware':
( 'name', 'ipaddr', 'login', 'passwd', 'vmlogin', 'vmpasswd' ),
+ 'fence_cisco_mds':
+ ( 'name', 'ipaddr', 'login', 'passwd' ),
+ 'fence_ucs':
+ ( 'name', 'ipaddr', 'login', 'passwd' ),
+ 'fence_ifmib':
+ ( 'name', 'ipaddr', 'login', 'passwd' ),
'fence_scsi':
( 'name' ),
'fence_ilo':
( 'name', 'hostname', 'login', 'passwd' ),
+ 'fence_ilo_mp':
+ ( 'name', 'ipaddr', 'login', 'passwd', 'ipport', 'secure', 'cmd_prompt' ),
'fence_ipmilan':
( 'name', 'ipaddr', 'login', 'passwd', 'lanplus', 'auth' ),
'fence_drac':
--- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2010/08/06 23:54:12 1.1.4.15
+++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2010/09/29 17:08:25 1.1.4.16
@@ -1020,6 +1020,25 @@
node.removeChild(node_child)
break
+ def set_cluster_broadcast(self):
+ if self.del_cluster_multicast() is False:
+ return False
+ broadcast = self.CMAN_ptr.addAttribute('broadcast', 'yes')
+
+ def del_cluster_broadcast(self):
+ if self.CMAN_ptr is None:
+ return False
+ self.CMAN_ptr.removeAttribute('broadcast')
+ self.isModified = True
+
+ def get_cluster_broadcast(self):
+ if self.CMAN_ptr is None:
+ return False
+ broadcast = self.CMAN_ptr.getAttribute('broadcast')
+ if broadcast and broadcast.lower() in ('1', 'true', 'yes'):
+ return True
+ return False
+
def del_cluster_multicast(self):
if self.CMAN_ptr is None:
return False
--- conga/ricci/Makefile 2008/01/17 17:38:36 1.11.2.2
+++ conga/ricci/Makefile 2010/09/29 17:08:26 1.11.2.3
@@ -33,6 +33,7 @@
${MAKE} -C modules install
${MAKE} -C init.d install
${MAKE} -C pam.d install
+ ${MAKE} -C docs install
${INSTALL_DIR} ${docdir}/ricci-${VERSION}/
${INSTALL_FILE} COPYING ${docdir}/ricci-${VERSION}/
/cvs/cluster/conga/ricci/docs/Makefile,v --> standard output
revision 1.2.2.1
--- conga/ricci/docs/Makefile
+++ - 2010-09-29 17:08:31.840720000 +0000
@@ -0,0 +1,8 @@
+include ../make/defines.mk
+
+all:
+ @true
+
+install:
+ install -d ${mandir}/man8
+ install ricci.8 ${mandir}/man8
next reply other threads:[~2010-09-29 17:08 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-29 17:08 rmccabe [this message]
-- strict thread matches above, loose matches on Subject: below --
2009-05-21 13:33 [Cluster-devel] conga ./conga.spec.in.in luci/cluster/cluster_ rmccabe
2009-05-14 21:05 rmccabe
2009-04-27 21:03 rmccabe
2009-04-15 16:07 rmccabe
2009-03-24 20:06 rmccabe
2009-02-16 17:23 rmccabe
2008-09-18 15:20 rmccabe
2008-08-07 18:08 rmccabe
2008-07-14 21:52 rmccabe
2008-03-12 15:13 rmccabe
2008-02-27 20:22 rmccabe
2008-02-08 21:57 rmccabe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100929170832.23815.qmail@sourceware.org \
--to=rmccabe@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.