[luci] Whitespace cleanup
by Ryan McCabe
commit 11c23dba390f4b0e4f7a9af445b1c9c95727a794
Author: Ryan McCabe <rmccabe(a)redhat.com>
Date: Thu Jul 29 21:30:54 2010 -0400
Whitespace cleanup
luci/widget_validators/validate_fence.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/luci/widget_validators/validate_fence.py b/luci/widget_validators/validate_fence.py
index 02ca7ca..790a052 100644
--- a/luci/widget_validators/validate_fence.py
+++ b/luci/widget_validators/validate_fence.py
@@ -574,7 +574,7 @@ FD_VALIDATE = {
'fence_brocade': val_brocade_fd,
'fence_bullpap': val_bullpap_fd,
'fence_cisco_mds': val_cisco_mds_fd,
- 'fence_cpint': val_cpint_fd,
+ 'fence_cpint': val_cpint_fd,
'fence_drac5': val_drac5_fd,
'fence_drac': val_drac_fd,
'fence_egenera': val_egenera_fd,
@@ -889,7 +889,7 @@ FI_VALIDATE = {
'fence_ipmilan': val_noop_fi,
'fence_ldom': val_ldom_fi,
'fence_lpar': val_lpar_fi,
- 'fence_manual': val_noop_fi,
+ 'fence_manual': val_noop_fi,
'fence_mcdata': val_mcdata_fi,
'fence_rackswitch': val_rackswitch_fi,
'fence_rps10': val_noop_fi,
13 years, 10 months
[luci] Fix: Cluster controller log message corrected.
by Jan Pokorný
commit 1b8733bc313cf401cb73475c686da0f852c1ce1c
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Thu Jul 29 22:36:25 2010 +0200
Fix: Cluster controller log message corrected.
created -> updated
luci/controllers/cluster.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
---
diff --git a/luci/controllers/cluster.py b/luci/controllers/cluster.py
index 73ad49d..09f0c3c 100644
--- a/luci/controllers/cluster.py
+++ b/luci/controllers/cluster.py
@@ -648,7 +648,7 @@ class IndividualClusterController(BaseController):
if fret[0] is True:
self.model.setModified(True)
rh.update_cluster_conf(self.model)
- log.info('User "%s" created fence device "%s" in cluster "%s"'
+ log.info('User "%s" updated fence device "%s" in cluster "%s"'
% (self.username, ', '.join(cur_list), self.name))
else:
msgs = fret[1]
13 years, 10 months
[luci] Related to previous: fence assignment dic cleanup.
by Jan Pokorný
commit c39bfcdbe9bb7ed85b37ffa5b65f4d6f69eea4cf
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Thu Jul 29 22:17:45 2010 +0200
Related to previous: fence assignment dic cleanup.
- duplicities in FI_VALIDATE (fence_drac, fence_drac5, fence_ilo, ...)
removed
- fence_cpint missing (+ val_cpint_fd not assigned to it) in FD_VALIDATE
- fence_manual + assigned val_noop_fi added to FI_VALIDATE
- content of both FD_VALIDATE and FI_VALIDATE is sorted now for better
handling (adding new etc.)
luci/widget_validators/validate_fence.py | 104 ++++++++++++++---------------
1 files changed, 50 insertions(+), 54 deletions(-)
---
diff --git a/luci/widget_validators/validate_fence.py b/luci/widget_validators/validate_fence.py
index e86e5f7..02ca7ca 100644
--- a/luci/widget_validators/validate_fence.py
+++ b/luci/widget_validators/validate_fence.py
@@ -567,42 +567,43 @@ def val_ilo_fd(fencedev, fence_name, **kw):
return errors
FD_VALIDATE = {
- 'fence_apc': val_apc_fd,
+ 'fence_alom': val_alom_fd,
'fence_apc_snmp': val_apc_snmp_fd,
- 'fence_wti': val_wti_fd,
- 'fence_brocade': val_brocade_fd,
- 'fence_vixel': val_vixel_fd,
- 'fence_gnbd': val_gnbd_fd,
- 'fence_sanbox2': val_sanbox2_fd,
+ 'fence_apc': val_apc_fd,
'fence_bladecenter': val_bladecenter_fd,
- 'fence_mcdata': val_mcdata_fd,
- 'fence_egenera': val_egenera_fd,
+ 'fence_brocade': val_brocade_fd,
'fence_bullpap': val_bullpap_fd,
- 'fence_xvm': val_noop_fd,
- 'fence_virt': val_virt_fd,
- 'fence_virsh': val_virsh_fd,
- 'fence_vmware': val_vmware_fd,
- 'fence_scsi': val_scsi_fd,
- 'fence_lpar': val_lpar_fd,
- 'fence_ilo': val_ilo_fd,
+ 'fence_cisco_mds': val_cisco_mds_fd,
+ 'fence_cpint': val_cpint_fd,
+ 'fence_drac5': val_drac5_fd,
+ 'fence_drac': val_drac_fd,
+ 'fence_egenera': val_egenera_fd,
+ 'fence_eps': val_eps_fd,
+ 'fence_gnbd': val_gnbd_fd,
+ 'fence_ibmblade': val_ibmblade_fd,
+ 'fence_ifmib': val_ifmib_fd,
'fence_ilo_mp': val_ilo_mp_fd,
+ 'fence_ilo': val_ilo_fd,
'fence_intelmodular': val_intelmodular_fd,
'fence_ipmilan': val_ipmilan_fd,
- 'fence_drac': val_drac_fd,
- 'fence_drac5': val_drac5_fd,
- 'fence_eps': val_eps_fd,
- 'fence_alom': val_alom_fd,
'fence_ldom': val_ldom_fd,
+ 'fence_lpar': val_lpar_fd,
+ 'fence_manual': val_noop_fd,
+ 'fence_mcdata': val_mcdata_fd,
'fence_rackswitch': val_rackswitch_fd,
- 'fence_xcat': val_xcat_fd,
- 'fence_zvm': val_zvm_fd,
- 'fence_cisco_mds': val_cisco_mds_fd,
- 'fence_ifmib': val_ifmib_fd,
+ 'fence_rps10': val_rps10_fd,
'fence_rsa': val_rsa_fd,
'fence_rsb': val_rsb_fd,
- 'fence_rps10': val_rps10_fd,
- 'fence_ibmblade': val_ibmblade_fd,
- 'fence_manual': val_noop_fd
+ 'fence_sanbox2': val_sanbox2_fd,
+ 'fence_scsi': val_scsi_fd,
+ 'fence_virsh': val_virsh_fd,
+ 'fence_virt': val_virt_fd,
+ 'fence_vixel': val_vixel_fd,
+ 'fence_vmware': val_vmware_fd,
+ 'fence_wti': val_wti_fd,
+ 'fence_xcat': val_xcat_fd,
+ 'fence_xvm': val_noop_fd,
+ 'fence_zvm': val_zvm_fd,
}
def validate_fencedevice(model, fencedev, **kw):
@@ -867,48 +868,43 @@ def val_noop_fi(fenceinst, parent_name, **kw):
return []
FI_VALIDATE = {
- 'fence_apc': val_apc_fi,
+ 'fence_alom': val_noop_fi,
'fence_apc_snmp': val_apc_snmp_fi,
- 'fence_wti': val_wti_fi,
- 'fence_brocade': val_brocade_fi,
- 'fence_vixel': val_vixel_fi,
- 'fence_gnbd': val_gnbd_fi,
- 'fence_sanbox2': val_sanbox2_fi,
+ 'fence_apc': val_apc_fi,
'fence_bladecenter': val_bladecenter_fi,
- 'fence_mcdata': val_mcdata_fi,
- 'fence_egenera': val_egenera_fi,
+ 'fence_brocade': val_brocade_fi,
'fence_bullpap': val_bullpap_fi,
- 'fence_xvm': val_xvm_fi,
- 'fence_virt': val_virt_fi,
- 'fence_virsh': val_virsh_fi,
- 'fence_vmware': val_vmware_fi,
- 'fence_rackswitch': val_rackswitch_fi,
- 'fence_ldom': val_ldom_fi,
'fence_cisco_mds': val_cisco_mds_fi,
+ 'fence_cpint': val_noop_fi,
+ 'fence_drac5': val_noop_fi,
+ 'fence_drac': val_noop_fi,
+ 'fence_egenera': val_egenera_fi,
'fence_eps': val_eps_fi,
+ 'fence_gnbd': val_gnbd_fi,
'fence_ibmblade': val_ibmblade_fi,
'fence_ifmib': val_ifmib_fi,
- 'fence_intelmodular': val_intelmodular_fi,
- 'fence_lpar': val_lpar_fi,
+ 'fence_ilo_mp': val_noop_fi,
'fence_ilo': val_noop_fi,
+ 'fence_intelmodular': val_intelmodular_fi,
'fence_ipmilan': val_noop_fi,
- 'fence_drac': val_noop_fi,
- 'fence_drac5': val_noop_fi,
- 'fence_rsa': val_noop_fi,
- 'fence_rsb': val_noop_fi,
+ 'fence_ldom': val_ldom_fi,
+ 'fence_lpar': val_lpar_fi,
+ 'fence_manual': val_noop_fi,
+ 'fence_mcdata': val_mcdata_fi,
+ 'fence_rackswitch': val_rackswitch_fi,
'fence_rps10': val_noop_fi,
- 'fence_drac': val_noop_fi,
- 'fence_drac5': val_noop_fi,
- 'fence_ilo': val_noop_fi,
- 'fence_ilo_mp': val_noop_fi,
'fence_rsa': val_noop_fi,
- 'fence_ipmilan': val_noop_fi,
- 'fence_alom': val_noop_fi,
- 'fence_cpint': val_noop_fi,
'fence_rsb': val_noop_fi,
+ 'fence_sanbox2': val_sanbox2_fi,
+ 'fence_scsi': val_noop_fi,
+ 'fence_virsh': val_virsh_fi,
+ 'fence_virt': val_virt_fi,
+ 'fence_vixel': val_vixel_fi,
+ 'fence_vmware': val_vmware_fi,
+ 'fence_wti': val_wti_fi,
'fence_xcat': val_noop_fi,
+ 'fence_xvm': val_xvm_fi,
'fence_zvm': val_noop_fi,
- 'fence_scsi': val_noop_fi
}
def validate_fenceinstance(parent_name, fence_agent, **kw):
13 years, 10 months
[luci] Fix: fence_ibmblade device validation not assigned
by Jan Pokorný
commit abd27b63c3b566eda923a64640765c3df7b279a3
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Thu Jul 29 21:01:27 2010 +0200
Fix: fence_ibmblade device validation not assigned
luci/widget_validators/validate_fence.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
---
diff --git a/luci/widget_validators/validate_fence.py b/luci/widget_validators/validate_fence.py
index c17a45c..e86e5f7 100644
--- a/luci/widget_validators/validate_fence.py
+++ b/luci/widget_validators/validate_fence.py
@@ -601,6 +601,7 @@ FD_VALIDATE = {
'fence_rsa': val_rsa_fd,
'fence_rsb': val_rsb_fd,
'fence_rps10': val_rps10_fd,
+ 'fence_ibmblade': val_ibmblade_fd,
'fence_manual': val_noop_fd
}
13 years, 10 months
[luci: 2/2] Merge branch 'master' of ssh://git.fedorahosted.org/git/luci
by Jan Pokorný
commit 0077bc7ba9137dc741a4039334e724e0a711012c
Merge: b226245... 495bf84...
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Thu Jul 29 20:31:26 2010 +0200
Merge branch 'master' of ssh://git.fedorahosted.org/git/luci
luci/controllers/cluster.py | 59 ++++++++++++++++++++++++++++---------
luci/templates/configure.html | 4 +-
luci/templates/failover.html | 4 +-
luci/templates/fence.html | 4 +-
luci/templates/fence_devices.html | 42 +++++++++++++-------------
luci/templates/node.html | 4 +-
luci/templates/resource.html | 4 +-
luci/templates/resource_list.html | 6 ++--
luci/templates/service.html | 6 ++--
9 files changed, 82 insertions(+), 51 deletions(-)
---
13 years, 10 months
[luci: 1/2] Fix rhbz#614433 - cannot config ipport for fences.
by Jan Pokorný
commit b226245494b2542c299a7a544cabc7cc508b35fd
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Thu Jul 29 20:24:04 2010 +0200
Fix rhbz#614433 - cannot config ipport for fences.
luci/templates/fence_devices.html | 91 ++++++++++++++++++++++++++++++
luci/widget_validators/validate_fence.py | 13 ++++
2 files changed, 104 insertions(+), 0 deletions(-)
---
diff --git a/luci/templates/fence_devices.html b/luci/templates/fence_devices.html
index 98ab861..bb6c872 100644
--- a/luci/templates/fence_devices.html
+++ b/luci/templates/fence_devices.html
@@ -24,6 +24,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -89,6 +96,13 @@
</td>
</tr>
<tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('udpport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -290,6 +304,13 @@
py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipaddr')} or {}"/>
</td>
</tr>
+ <tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
<tr>
<td>Login</td>
<td>
@@ -420,6 +441,13 @@
py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipaddr')} or {}"/>
</td>
</tr>
+ <tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
<tr>
<td>Login</td>
<td>
@@ -628,6 +656,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -1052,6 +1087,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -1204,6 +1246,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -1545,6 +1594,13 @@
</td>
</tr>
<tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('udpport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -1722,6 +1778,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -1879,6 +1942,13 @@
</td>
</tr>
<tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('udpport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -2023,6 +2093,13 @@
</td>
</tr>
<tr>
+ <td>IP port (optional)</td>
+ <td>
+ <input name="ipport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('ipport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -2108,6 +2185,13 @@
</td>
</tr>
<tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('udpport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
@@ -2482,6 +2566,13 @@
</td>
</tr>
<tr>
+ <td>UDP/TCP port (optional, defaults to 161)</td>
+ <td>
+ <input name="udpport" type="text" class="text"
+ py:attrs="cur_fencedev and {'value': cur_fencedev.getAttribute('udpport')} or {}"/>
+ </td>
+ </tr>
+ <tr>
<td>Login</td>
<td>
<input name="login" type="text" class="text"
diff --git a/luci/widget_validators/validate_fence.py b/luci/widget_validators/validate_fence.py
index 3d2c39e..c17a45c 100644
--- a/luci/widget_validators/validate_fence.py
+++ b/luci/widget_validators/validate_fence.py
@@ -97,6 +97,7 @@ def config_fence_attr(params, fence, fname, **kw):
def val_apc_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -108,6 +109,7 @@ def val_apc_fd(fencedev, fence_name, **kw):
def val_wti_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('cmd_prompt', False),
('passwd', False),
@@ -185,6 +187,7 @@ def val_egenera_fd(fencedev, fence_name, **kw):
def val_sanbox2_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('cmd_prompt', False),
('passwd', False),
@@ -198,6 +201,7 @@ def val_sanbox2_fd(fencedev, fence_name, **kw):
def val_bladecenter_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -276,6 +280,7 @@ def val_noop_fd(fencedev, fence_name, **kw):
def val_rsa_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('secure', False),
('identity_file', False),
@@ -315,6 +320,7 @@ def val_eps_fd(fencedev, fence_name, **kw):
def val_drac5_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('module_name', True),
('cmd_prompt', False),
@@ -427,6 +433,7 @@ def val_zvm_fd(fencedev, fence_name, **kw):
def val_ibmblade_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('udpport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -446,6 +453,7 @@ def val_ibmblade_fd(fencedev, fence_name, **kw):
def val_ifmib_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('udpport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -465,6 +473,7 @@ def val_ifmib_fd(fencedev, fence_name, **kw):
def val_cisco_mds_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('udpport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -492,6 +501,7 @@ def val_cpint_fd(fencedev, fence_name, **kw):
def val_apc_snmp_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('udpport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -511,6 +521,7 @@ def val_apc_snmp_fd(fencedev, fence_name, **kw):
def val_intelmodular_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('udpport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -529,6 +540,7 @@ def val_intelmodular_fd(fencedev, fence_name, **kw):
def val_ilo_mp_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('passwd', False),
('passwd_script', False),
@@ -544,6 +556,7 @@ def val_ilo_mp_fd(fencedev, fence_name, **kw):
def val_ilo_fd(fencedev, fence_name, **kw):
params = (
('ipaddr', True),
+ ('ipport', False),
('login', True),
('passwd', False),
('passwd_script', False),
13 years, 10 months
[luci] Added code to prevent luci from requesting the same information multiple times
by Chris Feist
commit 495bf846538bab4741e2ca7b40f59f0260767275
Author: Chris Feist <cfeist(a)redhat.com>
Date: Wed Jul 28 17:29:49 2010 -0500
Added code to prevent luci from requesting the same information multiple times
- From Andrew Beekhoff
- From testing with a two node cluster it looks like it speeds pages
up about .5s (or about 25%)
luci/controllers/cluster.py | 59 ++++++++++++++++++++++++++++---------
luci/templates/configure.html | 4 +-
luci/templates/failover.html | 4 +-
luci/templates/fence.html | 4 +-
luci/templates/fence_devices.html | 42 +++++++++++++-------------
luci/templates/node.html | 4 +-
luci/templates/resource.html | 4 +-
luci/templates/resource_list.html | 6 ++--
luci/templates/service.html | 6 ++--
9 files changed, 82 insertions(+), 51 deletions(-)
---
diff --git a/luci/controllers/cluster.py b/luci/controllers/cluster.py
index 0dd98ef..73ad49d 100644
--- a/luci/controllers/cluster.py
+++ b/luci/controllers/cluster.py
@@ -71,28 +71,23 @@ class ClusterController(BaseController):
class IndividualClusterController(BaseController):
def __init__(self, name, iccdata, nodename=None):
+ self.agent = None
+ self.model = None
+ self.status = None
+ self.version = None
+
self.name = name
self.data = iccdata
self.nodename = nodename
+
identity = request.environ.get('repoze.who.identity')
self.username = identity['repoze.who.userid']
+
+ log.debug("Creating %s" % repr(self))
tmpl_context.show_sidebar = True
tmpl_context.cluster_name = self.name
tmpl_context.cluster_url = '/cluster/%s/' % self.name
-
- try:
- rc = get_agent_for_cluster(self.name)
- except:
- rc = None
-
- self.model = get_model_for_cluster(self.name, rc)
- tmpl_context.cluster_data = self.model
-
- if self.model:
- tmpl_context.cluster_version = self.model.getClusterVersion()
- else:
- tmpl_context.cluster_version = app_globals.DEFAULT_CLUSTER_VERSION
- tmpl_context.cluster_status = get_status_for_cluster(self.name, rc)
+ tmpl_context.cluster = self
@expose("luci.templates.node")
def default(self):
@@ -100,6 +95,34 @@ class IndividualClusterController(BaseController):
return dict(page='nodes', name=self.nodename, base_url='/nodes', nodes=db.nodes)
+ def get_agent(self):
+ if not self.agent:
+ try:
+ self.agent = get_agent_for_cluster(self.name)
+ except:
+ self.agent = None
+ return self.agent
+
+ def get_model(self):
+ if not self.model:
+ log.debug("Obtaining cluster model for %s" % repr(self))
+ self.model = get_model_for_cluster(self.name, self.get_agent())
+ return self.model
+
+ def get_status(self):
+ if not self.status:
+ self.status = get_status_for_cluster(self.name, self.get_agent())
+ return self.status
+
+ def get_version(self):
+ if not self.version:
+ self.version = app_globals.DEFAULT_CLUSTER_VERSION
+ m = self.get_model()
+ if m:
+ self.version = m.getClusterVersion()
+
+ return self.version
+
@expose("luci.templates.node")
def nodes(self):
db = get_cluster_db_obj(self.name)
@@ -107,12 +130,14 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.node")
def add_nodes_cmd(self, command=None, **kw):
+ self.get_model()
db = get_cluster_db_obj(self.name)
vret = validate_node_add_form(self.model, db, **kw)
redirect('%s%s' % (tmpl_context.cluster_url, 'nodes'))
@expose("luci.templates.node")
def nodes_fence_cmd(self, command=None, **kw):
+ self.get_model()
if not self.model:
flash(_('Unable to contact any nodes in this cluster'),
status="error")
@@ -221,6 +246,7 @@ class IndividualClusterController(BaseController):
# This processes all of the commands that we can apply to a node
@expose("luci.templates.node")
def nodes_cmd(self, command=None, **kw):
+ self.get_model()
if not self.model:
flash(_('Unable to contact any nodes in this cluster'),
status="error")
@@ -284,6 +310,7 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.resource")
def resources_cmd(self, command=None, **kw):
+ self.get_model()
tmpl_context.cluster_url = '/cluster/%s/resources' % self.name
if not self.model:
@@ -370,6 +397,7 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.service")
def services_cmd(self, command=None, **kw):
+ self.get_model()
tmpl_context.cluster_url = '/cluster/%s/services' % self.name
if not self.model:
@@ -467,6 +495,7 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.failover")
def failovers_cmd(self, command=None, **kw):
+ self.get_model()
tmpl_context.cluster_url = '/cluster/%s/failovers' % self.name
if not self.model:
@@ -567,6 +596,7 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.fence")
def fences_cmd(self, command=None, **kw):
+ self.get_model()
tmpl_context.cluster_url = '/cluster/%s/fences' % self.name
if not self.model:
@@ -639,6 +669,7 @@ class IndividualClusterController(BaseController):
@expose("luci.templates.configure")
def configure_cmd(self, command=None, *args, **kw):
+ self.get_model()
tmpl_context.cluster_url = '/cluster/%s/configure' % self.name
if not self.model:
diff --git a/luci/templates/configure.html b/luci/templates/configure.html
index 65c8a49..1a14a5e 100644
--- a/luci/templates/configure.html
+++ b/luci/templates/configure.html
@@ -11,7 +11,7 @@
<title>${title()}</title>
</head>
-<body py:with="cluster_data = tmpl_context.cluster_data;
+<body py:with="cluster_data = tmpl_context.cluster.get_model();
form_utils = app_globals.form_utils;
totem_defaults = app_globals.totem;">
<div class="sectionblock">
@@ -79,7 +79,7 @@
<div class="row"><label>Post Join Delay</label>
<input type="text" class="text" name="post_join_delay" value="${cluster_data and cluster_data.getFenceDaemonPtr().getAttribute('post_join_delay')}"/>
</div>
- <div class="row" py:if="tmpl_context.cluster_version == 2">
+ <div class="row" py:if="tmpl_context.cluster.get_version() == 2">
<input type="checkbox" class="checkbox" name="fence_xvmd"
py:attrs="cluster_data and cluster_data.hasFenceXVM() and { 'checked': 'checked' } or {}"/>
<label class="choice">Run XVM fence daemon</label>
diff --git a/luci/templates/failover.html b/luci/templates/failover.html
index e21c51c..5909709 100644
--- a/luci/templates/failover.html
+++ b/luci/templates/failover.html
@@ -13,8 +13,8 @@
</head>
<body onload="onLoad()"
- py:with="cluster_data = tmpl_context.cluster_data;
- cluster_status = tmpl_context.cluster_status">
+ py:with="cluster_data = tmpl_context.cluster.get_model();
+ cluster_status = tmpl_context.cluster.get_status()">
<script type="text/javascript" src="${tg.url('/js/failover_form.js')}"></script>
<form action="${tg.url(failovers_cmd)}" method="post">
diff --git a/luci/templates/fence.html b/luci/templates/fence.html
index fae99cf..5126b7c 100644
--- a/luci/templates/fence.html
+++ b/luci/templates/fence.html
@@ -11,8 +11,8 @@
<title>${title()}</title>
</head>
-<body py:with="cluster_data = tmpl_context.cluster_data;
- cluster_status = tmpl_context.cluster_status">
+<body py:with="cluster_data = tmpl_context.cluster.get_model();
+ cluster_status = tmpl_context.cluster.get_status()">
<script type="text/javascript" src="/js/fence.js"></script>
diff --git a/luci/templates/fence_devices.html b/luci/templates/fence_devices.html
index 98ab861..bfb9934 100644
--- a/luci/templates/fence_devices.html
+++ b/luci/templates/fence_devices.html
@@ -2672,35 +2672,35 @@ ${fence_unknown(None,0)}
<option>-- Select a fence device --</option>
<option name="fence_apc" value="fence_apc">APC Power Switch</option>
<option name="fence_apc_snmp" value="fence_apc_snmp">APC Power Switch (SNMP interface)</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_bullpap" value="fence_bullpap">Bull PAP</option>
<option name="fence_cisco_mds" value="fence_cisco_mds">Cisco MDS</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_drac" value="fence_drac">Dell DRAC</option>
- <option py:if="tmpl_context.cluster_version == 3" name="fence_drac" value="fence_drac">Dell DRAC (Deprecated)</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_drac" value="fence_drac">Dell DRAC</option>
+ <option py:if="tmpl_context.cluster.get_version() == 3" name="fence_drac" value="fence_drac">Dell DRAC (Deprecated)</option>
<option name="fence_drac5" value="fence_drac5">Dell DRAC 5</option> <!-- needs work -->
<option name="fence_egenera" value="fence_egenera">Egenera SAN Controller</option>
<option name="fence_eps" value="fence_eps">ePowerSwitch</option>
- <py:choose test="tmpl_context.cluster_version">
+ <py:choose test="tmpl_context.cluster.get_version()">
<py:when test="3">
<option name="fence_virt" value="fence_virt">Fence virt (Tech Preview)</option>
<option name="fence_xvm" value="fence_xvm">Fence virt (Multicast Mode)</option>
</py:when>
</py:choose>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_xvm" value="fence_xvm">Fence xvm</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_xvm" value="fence_xvm">Fence xvm</option>
<option name="fence_rsb" value="fence_rsb">Fujitsu Siemens RemoteView Service Board</option>
<option name="fence_ilo" value="fence_ilo">HP iLO Device</option>
<option name="fence_ilo_mp" value="fence_ilo_mp">HP iLO MP</option> <!-- needs work -->
<option name="fence_bladecenter" value="fence_bladecenter">IBM BladeCenter</option>
- <option py:if="tmpl_context.cluster_version == 3" name="fence_ibmblade" value="fence_ibmblade">IBM BladeCenter SNMP</option>
+ <option py:if="tmpl_context.cluster.get_version() == 3" name="fence_ibmblade" value="fence_ibmblade">IBM BladeCenter SNMP</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_rsa" value="fence_rsa">IBM RSA II Device</option> <!-- needs work -->
- <option py:if="tmpl_context.cluster_version == 3" name="fence_rsa" value="fence_rsa">IBM RSA II Device (Deprecated)</option> <!-- needs work -->
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_rsa" value="fence_rsa">IBM RSA II Device</option> <!-- needs work -->
+ <option py:if="tmpl_context.cluster.get_version() == 3" name="fence_rsa" value="fence_rsa">IBM RSA II Device (Deprecated)</option> <!-- needs work -->
- <py:if test="tmpl_context.cluster_version == 3">
+ <py:if test="tmpl_context.cluster.get_version() == 3">
<!-- <option name="fence_cpint" value="fence_cpint">IBM S/390 cpint</option> -->
<!-- <option name="fence_zvm" value="fence_zvm">IBM S/390 z/VM</option> -->
<option name="fence_ifmib" value="fence_ifmib">IF MIB</option>
@@ -2708,27 +2708,27 @@ ${fence_unknown(None,0)}
</py:if>
<option name="fence_ipmilan" value="fence_ipmilan">IPMI Lan</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_brocade" value="fence_brocade">Brocade Fabric Switch</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_lpar" value="fence_lpar">LPAR Fencing</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_mcdata" value="fence_mcdata">McData SAN Switch</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
- <option py:if="tmpl_context.cluster_version == 3" name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2 (Deprecated)</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2</option>
+ <option py:if="tmpl_context.cluster.get_version() == 3" name="fence_sanbox2" value="fence_sanbox2">QLogic SANbox2 (Deprecated)</option>
- <!-- <option py:if="tmpl_context.cluster_version == 3" name="fence_rackswitch" value="fence_rackswitch">RackSaver RackSwitch</option> -->
- <option py:if="tmpl_context.cluster_version == 2" name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option> -->
+ <!-- <option py:if="tmpl_context.cluster.get_version() == 3" name="fence_rackswitch" value="fence_rackswitch">RackSaver RackSwitch</option> -->
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_rps10" value="fence_rps10">RPS10 Serial Switch</option> -->
<option name="fence_scsi" value="fence_scsi">SCSI Reservation Fencing</option>
- <py:if test="tmpl_context.cluster_version == 3">
+ <py:if test="tmpl_context.cluster.get_version() == 3">
<!-- <option name="fence_alom" value="fence_alom">Sun ALOM</option> -->
<!-- <option name="fence_ldom" value="fence_ldom">Sun LDOM</option> -->
</py:if>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
- <option py:if="tmpl_context.cluster_version == 2" name="fence_vmware" value="fence_vmware">VMware Fencing (Tech Preview)</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_vixel" value="fence_vixel">Vixel SAN Switch</option>
+ <option py:if="tmpl_context.cluster.get_version() == 2" name="fence_vmware" value="fence_vmware">VMware Fencing (Tech Preview)</option>
<option name="fence_wti" value="fence_wti">WTI Power Switch</option>
- <py:if test="tmpl_context.cluster_version == 3">
+ <py:if test="tmpl_context.cluster.get_version() == 3">
<!-- <option name="fence_xcat" value="fence_xcat">xCAT</option> -->
<!-- <option name="fence_zvm" value="fence_zvm">s390 z/VM</option> -->
</py:if>
diff --git a/luci/templates/node.html b/luci/templates/node.html
index 2b0b8b1..546774d 100644
--- a/luci/templates/node.html
+++ b/luci/templates/node.html
@@ -16,8 +16,8 @@
from luci.lib.ricci_helpers import node_get_daemon_states
?>
-<body py:with="cluster_data = tmpl_context.cluster_data;
- cluster_status = tmpl_context.cluster_status">
+<body py:with="cluster_data = tmpl_context.cluster.get_model();
+ cluster_status = tmpl_context.cluster.get_status()">
<script type="text/javascript" src="/js/add_nodes.js"></script>
<script type="text/javascript" src="/js/node.js"></script>
diff --git a/luci/templates/resource.html b/luci/templates/resource.html
index 14df59d..4999f82 100644
--- a/luci/templates/resource.html
+++ b/luci/templates/resource.html
@@ -11,8 +11,8 @@
<title>${title()}</title>
</head>
-<body py:with="cluster_data = tmpl_context.cluster_data;
- cluster_status = tmpl_context.cluster_status">
+<body py:with="cluster_data = tmpl_context.cluster.get_model();
+ cluster_status = tmpl_context.cluster.get_status()">
<script type="text/javascript" src="/js/resource.js"></script>
<xi:include href="resource_list.html" />
diff --git a/luci/templates/resource_list.html b/luci/templates/resource_list.html
index ebb06f0..bfed5f4 100644
--- a/luci/templates/resource_list.html
+++ b/luci/templates/resource_list.html
@@ -172,7 +172,7 @@
<td>
<select name="fstype" class="serviceformselect"
py:attrs="{'disabled':global_resource and 'disabled' or None}">
- <py:choose test="tmpl_context.cluster_version">
+ <py:choose test="tmpl_context.cluster.get_version()">
<py:when test="3">
<option value="gfs2"
py:attrs="res and res.getAttribute('fstype') == 'gfs2' and {'selected':'selected'} or {}">GFS2</option>
@@ -1411,7 +1411,7 @@ ${vm_resource(None,None,None,0)}
<option>-- Select a resource type --</option>
<option name="apache_resource" value="apache_resource">Apache</option>
<option name="fs_resource" value="fs_resource">Filesystem</option>
- <py:choose test="tmpl_context.cluster_version">
+ <py:choose test="tmpl_context.cluster.get_version()">
<py:when test="3">
<option name="clusterfs_resource" value="clusterfs_resource">GFS2</option>
</py:when>
@@ -1425,7 +1425,7 @@ ${vm_resource(None,None,None,0)}
<option name="netfs_resource" value="netfs_resource">NFS/CIFS Mount</option>
<option name="nfsclient_resource" value="nfsclient_resource">NFS Client</option>
<option name="nfsexport_resource" value="nfsexport_resource">NFS v3 Export</option>
- <option py:if="tmpl_context.cluster_version not in (1, 2)" name="nfsserver_resource" value="nfsserver_resource">NFS Server</option>
+ <option py:if="tmpl_context.cluster.get_version() not in (1, 2)" name="nfsserver_resource" value="nfsserver_resource">NFS Server</option>
<option name="oracledb_resource" value="oracledb_resource">Oracle 10g/11g Failover Instance</option>
<option name="openldap_resource" value="openldap_resource">Open LDAP</option>
<option name="postgres8_resource" value="postgres8_resource">PostgreSQL 8</option>
diff --git a/luci/templates/service.html b/luci/templates/service.html
index 6970baf..782f686 100644
--- a/luci/templates/service.html
+++ b/luci/templates/service.html
@@ -11,8 +11,8 @@
<title>${title()}</title>
</head>
-<body py:with="cluster_data = tmpl_context.cluster_data;
- cluster_status = tmpl_context.cluster_status;
+<body py:with="cluster_data = tmpl_context.cluster.get_model();
+ cluster_status = tmpl_context.cluster.get_status();
form_utils = app_globals.form_utils">
<script type="text/javascript" src="/js/service.js"></script>
@@ -154,7 +154,7 @@
</div>
<div id="edit_service_dialog"
- py:with="svc = cluster_data.getService(name)">
+ py:with="svc = tmpl_context.cluster.get_model().getService(name)">
<form
style="padding-left: 24px; "
name="edit_service_dialog" method="post" action="${tg.url(services_cmd + '?command=Edit')}">
13 years, 10 months
[luci] Typo in luci.lib.ClusterConf.TagObject.
by Jan Pokorný
commit 64c552a2add416b04f8ae17657d32565a23f9451
Author: Jan Pokorny <jpokorny(a)redhat.com>
Date: Wed Jul 28 20:46:17 2010 +0200
Typo in luci.lib.ClusterConf.TagObject.
luci/lib/ClusterConf/TagObject.py | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/luci/lib/ClusterConf/TagObject.py b/luci/lib/ClusterConf/TagObject.py
index 3de6cf9..0087dbc 100644
--- a/luci/lib/ClusterConf/TagObject.py
+++ b/luci/lib/ClusterConf/TagObject.py
@@ -52,8 +52,8 @@ class TagObject:
def getAttributes(self):
return self.attr_hash
- def getAttribute(self, kee):
- return self.attr_hash.get(kee)
+ def getAttribute(self, key):
+ return self.attr_hash.get(key)
def getChildren(self):
return self.children
13 years, 10 months
[luci] Resolves rhbz#613871 - luci should not give ungraceful error messages when encountering fence device
by Ryan McCabe
commit 158db710c972bf2c47244ce723cb902d00c598c1
Author: Ryan McCabe <rmccabe(a)redhat.com>
Date: Wed Jul 28 00:14:10 2010 -0400
Resolves rhbz#613871 - luci should not give ungraceful error messages when encountering fence devices that it does not recognize/support
luci/templates/fence_instances.html | 10 +++++++++
luci/templates/node.html | 36 ++++++++++++++++++++--------------
2 files changed, 31 insertions(+), 15 deletions(-)
---
diff --git a/luci/templates/fence_instances.html b/luci/templates/fence_instances.html
index 3f92f6d..41c8270 100644
--- a/luci/templates/fence_instances.html
+++ b/luci/templates/fence_instances.html
@@ -798,6 +798,15 @@
py:attrs="cur_fence_dev_id and {'value': cur_fence_dev_id} or {}" />
</div>
+<div py:def="fence_unknown_instance(cur_fence_inst, cur_fence_dev_id, fi_id)" id="fence_unknown_instance"
+ py:attrs="fi_id is not None and {'id': fi_id, 'class':'fenceinst'}">
+
+ <input type="hidden" name="fence_type" value="fence_unknown" />
+ <input type="hidden" name="fence_instance" value="1" />
+ <input type="hidden" name="parent_fencedev"
+ py:attrs="cur_fence_dev_id and {'value': cur_fence_dev_id} or {}" />
+</div>
+
<div py:def="fence_instance_container"
id="fence_instance_container" class="hidden">
${fence_apc_instance(None, None, None)}
@@ -835,5 +844,6 @@ ${fence_rsb_instance(None, None, None)}
${fence_xcat_instance(None, None, None)}
${fence_zvm_instance(None, None, None)}
${fence_scsi_instance(None, None, None)}
+${fence_unknown_instance(None, None, None)}
</div>
</html>
diff --git a/luci/templates/node.html b/luci/templates/node.html
index a2663d8..2b0b8b1 100644
--- a/luci/templates/node.html
+++ b/luci/templates/node.html
@@ -297,16 +297,19 @@
<th></th>
</tr>
<py:for each="instancenum,(fin,fd) in enumerate(instances)">
- <?python
- agent_type = fd.getAgentType()
- agent_name = fd.getPrettyName()
- agent_alias = fd.getName()
- fenceinst_num += 1
- ?>
- <?python
- inst_fn = eval(agent_type + '_instance')
- instance_id = "%s-%s" % (order, instancenum)
- ?>
+ <?python
+ agent_type = fd.getAgentType()
+ agent_name = fd.getPrettyName()
+ agent_alias = fd.getName()
+ fenceinst_num += 1
+ ?>
+ <?python
+ try:
+ inst_fn = eval(agent_type + '_instance')
+ except:
+ inst_fn = eval('fence_unknown_instance')
+ instance_id = "%s-%s" % (order, instancenum)
+ ?>
<tr><td>
<div class="hidden">
<div id="edit_fencedev_dialog_${instance_id}">
@@ -317,11 +320,14 @@
<input type="hidden" name="fencedev" value="${agent_alias}"/>
<div id="fence_instance_area">
- <?python
- inst_fn = eval(agent_type + '_instance')
- inst_fn(fin, instance_id, None)
- ?>
- ${inst_fn(fin, cur_dev_id, '%s_%s' % (cur_dev_id, cur_dev_id))}
+ <?python
+ try:
+ inst_fn = eval(agent_type + '_instance')
+ except:
+ inst_fn = eval('fence_unknown_instance')
+ inst_fn(fin, instance_id, None)
+ ?>
+ ${inst_fn(fin, cur_dev_id, '%s_%s' % (cur_dev_id, cur_dev_id))}
</div>
<div class="row">
<input type="Submit" value="Submit" class="button formsubmit blue" />
13 years, 10 months