[Cluster-devel] conga/luci cluster/form-macros cluster/resourc ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Sat Jan 20 04:50:22 UTC 2007
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-01-20 04:50:20
Modified files:
luci/cluster : form-macros resource-form-macros
resource_form_handlers.js
luci/homebase : luci_homebase.css
luci/site/luci/Extensions: Apache.py Clusterfs.py
FenceHandler.py Fs.py MySQL.py
NFSExport.py Netfs.py OpenLDAP.py
Postgres8.py Samba.py Script.py
Tomcat5.py Vm.py cluster_adapters.py
Log message:
fence and resource fixes
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.155&r2=1.156
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.27&r2=1.28
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=1.26&r2=1.27
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/luci_homebase.css.diff?cvsroot=cluster&r1=1.33&r2=1.34
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Apache.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Clusterfs.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&r1=1.15&r2=1.16
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Fs.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/MySQL.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/NFSExport.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Netfs.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/OpenLDAP.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Postgres8.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Samba.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Script.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Tomcat5.py.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/Vm.py.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.207&r2=1.208
--- conga/luci/cluster/form-macros 2007/01/16 17:37:26 1.155
+++ conga/luci/cluster/form-macros 2007/01/20 04:50:19 1.156
@@ -1223,7 +1223,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
</div>
@@ -1278,7 +1278,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1336,7 +1336,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1385,7 +1385,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1435,7 +1435,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1483,7 +1483,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1532,7 +1532,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1589,7 +1589,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1647,7 +1647,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1696,7 +1696,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1736,7 +1736,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1785,7 +1785,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1835,7 +1835,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1893,7 +1893,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1936,7 +1936,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1966,7 +1966,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -1997,7 +1997,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -2067,7 +2067,7 @@
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
@@ -2094,7 +2094,7 @@
</table>
<tal:block tal:condition="exists: cur_fencedev">
<input type="hidden" name="existing_device" value="1" />
- <input type="hidden" name="old_name"
+ <input type="hidden" name="orig_name"
tal:attributes="value cur_fencedev/name | nothing" />
</tal:block>
<input type="hidden" name="fence_type" value="fence_manual" />
--- conga/luci/cluster/resource-form-macros 2007/01/18 02:49:29 1.27
+++ conga/luci/cluster/resource-form-macros 2007/01/20 04:50:19 1.28
@@ -256,7 +256,7 @@
</thead>
<tr class="systemsTable">
<td class="systemsTable" tal:content="res/name" />
- <td class="systemsTable" tal:content="res/tag_name" />
+ <td class="systemsTable" tal:content="res/type" />
<td>
<a class="cluster resource"
tal:content="string: configure"
@@ -266,7 +266,6 @@
</table>
</div>
-
<div metal:define-macro="resourceprocess-form">
<h2>Resource <span tal:replace="python: ('edit' in request and request['edit']) and 'Edited' or 'Added'" /></h2>
@@ -325,6 +324,30 @@
<tal:block tal:condition="python: type == 'script'">
<div metal:use-macro="here/resource-form-macros/macros/scr_macro" />
</tal:block>
+
+ <tal:block tal:condition="python: type == 'vm'">
+ <div metal:use-macro="here/resource-form-macros/macros/vm_macro" />
+ </tal:block>
+
+ <tal:block tal:condition="python: type == 'apache'">
+ <div metal:use-macro="here/resource-form-macros/macros/apache_macro" />
+ </tal:block>
+
+ <tal:block tal:condition="python: type == 'openldap'">
+ <div metal:use-macro="here/resource-form-macros/macros/openldap_macro" />
+ </tal:block>
+
+ <tal:block tal:condition="python: type == 'mysql'">
+ <div metal:use-macro="here/resource-form-macros/macros/mysql_macro" />
+ </tal:block>
+
+ <tal:block tal:condition="python: type == 'postgres-8'">
+ <div metal:use-macro="here/resource-form-macros/macros/postgres-8_macro" />
+ </tal:block>
+
+ <tal:block tal:condition="python: type == 'tomcat-5'">
+ <div metal:use-macro="here/resource-form-macros/macros/tomcat-5_macro" />
+ </tal:block>
</div>
</tal:block>
</div>
@@ -1280,20 +1303,21 @@
<tr class="systemsTable">
<td class="systemsTable">Recovery Options</td>
<td class="systemsTable">
- <select name="recovery">
+ <select name="recovery"
tal:attributes="disabled python: editDisabled"
tal:define="recovery_opt res/recovery | string:relocate">
- <option name="relocate"
+
+ <option name="relocate" value="relocate"
+ tal:content="string:Relocate"
tal:attributes="
- content string:Relocate
selected python: recovery_opt == 'relocate' and 'selected' or ''" />
- <option name="restart"
+ <option name="restart" value="restart"
+ tal:content="string:Restart"
tal:attributes="
- content string:Restart
selected python: recovery_opt == 'restart' and 'selected' or ''" />
- <option name="disable"
+ <option name="disable" value="disable"
+ tal:content="string:Disable"
tal:attributes="
- content string:Disable
selected python: recovery_opt == 'disable' and 'selected' or ''" />
</select>
</td>
--- conga/luci/cluster/resource_form_handlers.js 2007/01/17 20:50:38 1.26
+++ conga/luci/cluster/resource_form_handlers.js 2007/01/20 04:50:19 1.27
@@ -99,23 +99,39 @@
}
function validate_apache(form) {
+ var errors = new Array();
+ return (errors);
}
function validate_tomcat5(form) {
+ var errors = new Array();
+ return (errors);
}
function validate_postgres8(form) {
+ var errors = new Array();
+ return (errors);
}
function validate_mysql(form) {
+ var errors = new Array();
+ return (errors);
}
function validate_openldap(form) {
+ var errors = new Array();
+ return (errors);
}
function validate_vm(form) {
+ var errors = new Array();
+ return (errors);
}
+function validate_nfs_export(form) {
+ var errors = new Array();
+ return (errors);
+}
function validate_nfs_mount(form) {
var errors = new Array();
@@ -140,11 +156,6 @@
return (errors);
}
-function validate_nfs_export(form) {
- var errors = new Array();
- return (errors);
-}
-
function validate_nfs_client(form) {
var errors = new Array();
@@ -231,12 +242,12 @@
}
var required_children = new Array();
-var required_children['nfsx'] = [ 'nfsc' ];
+required_children['nfsx'] = [ 'nfsc' ];
var forbidden_children = new Array();
-var forbidden_children['ip'] = [ 'nfsc', 'nfsx' ];
-var forbidden_children['netfs'] = [ 'nfsc', 'nfsx' ];
-var forbidden_children['nfsx'] = [ 'nfsx' ];
+forbidden_children['ip'] = [ 'nfsc', 'nfsx' ];
+forbidden_children['netfs'] = [ 'nfsc', 'nfsx' ];
+forbidden_children['nfsx'] = [ 'nfsx' ];
var form_validators = new Array();
form_validators['ip'] = validate_ip;
@@ -249,8 +260,8 @@
form_validators['smb'] = validate_samba;
form_validators['vm'] = validate_vm;
form_validators['apache'] = validate_apache;
-form_validators['tomcat-5'] validate_tomcat5;
-form_validators['postgres-8'] validate_postgres8;
+form_validators['tomcat-5'] = validate_tomcat5;
+form_validators['postgres-8'] = validate_postgres8;
form_validators['openldap'] = validate_openldap;
form_validators['mysql'] = validate_mysql;
--- conga/luci/homebase/luci_homebase.css 2007/01/10 16:00:41 1.33
+++ conga/luci/homebase/luci_homebase.css 2007/01/20 04:50:19 1.34
@@ -333,8 +333,7 @@
*.reshdr {
text-align: top;
- font-size: 9pt;
- letter-spacing: +.5px;
+ font-size: 10pt;
font-weight: 600;
padding-bottom: +1em;
}
--- conga/luci/site/luci/Extensions/Apache.py 2007/01/17 20:46:31 1.1
+++ conga/luci/site/luci/Extensions/Apache.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "apache"
-RESOURCE_TYPE = _("Apache Server: ")
+RESOURCE_TYPE = _("Apache Server")
class Apache(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/Clusterfs.py 2006/05/30 20:17:21 1.1
+++ conga/luci/site/luci/Extensions/Clusterfs.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "clusterfs"
-RESOURCE_TYPE = _("GFS: ")
+RESOURCE_TYPE = _("GFS")
class Clusterfs(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/FenceHandler.py 2007/01/19 21:48:23 1.15
+++ conga/luci/site/luci/Extensions/FenceHandler.py 2007/01/20 04:50:20 1.16
@@ -1,6 +1,5 @@
import re
from Device import Device
-from FenceDevice import FenceDevice
from conga_constants import FD_VAL_SUCCESS, FD_VAL_FAIL
FD_NEW_SUCCESS = 'New %s successfully added to cluster'
@@ -103,48 +102,6 @@
'cserver': 'CServer'
}
-FI_VALIDATE = {
- 'fence_apc': val_apc_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_bladecenter': val_bladecenter_fi,
- 'fence_mcdata': val_mcdata_fi,
- 'fence_egenera': val_egenera_fi,
- 'fence_bullpap': val_bullpap_fi,
- 'fence_xvm': val_xvm_fi,
- 'fence_scsi': val_scsi_fi,
- 'fence_ilo': val_noop_fi,
- 'fence_ipmilan': val_noop_fi,
- 'fence_drac': val_noop_fi,
- 'fence_rsa': val_noop_fi,
- 'fence_rps10': val_noop_fi,
- 'fence_manual': val_noop_fi
-}
-
-FD_VALIDATE = {
- 'fence_apc': val_apc_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_bladecenter': val_bladecenter_fd,
- 'fence_mcdata': val_mcdata_fd,
- 'fence_egenera': val_egenera_fd,
- 'fence_bullpap': val_bullpap_fd,
- 'fence_xvm': val_noop_fd,
- 'fence_scsi': val_noop_fd,
- 'fence_ilo': val_ilo_fd,
- 'fence_ipmilan': val_ipmilan_fd,
- 'fence_drac': val_drac_fd,
- 'fence_rsa': val_rsa_fd,
- 'fence_rps10': val_rps10_fd,
- 'fence_manual': val_noop_fd
-}
-
FENCE_FI_ATTRS = {
'fence_apc': ['port', 'switch'],
'fence_wti': ['port'],
@@ -191,7 +148,7 @@
def makeNCName(name):
### name must conform to relaxNG ID type ##
- return re.sub('_', name)
+ return ILLEGAL_CHARS.sub('_', name)
def check_unique_fd_name(model, name):
fds = model.getFenceDevices()
@@ -201,6 +158,7 @@
return True
def validateNewFenceDevice(form, model):
+ from FenceDevice import FenceDevice
fencedev = FenceDevice()
try:
@@ -216,6 +174,7 @@
return (FD_VAL_FAIL, ret)
def validateFenceDevice(form, model):
+ from FenceDevice import FenceDevice
try:
old_fence_name = form['orig_name'].strip()
if not old_fence_name:
@@ -245,52 +204,6 @@
return (FD_VAL_FAIL, ret)
-def validate_fencedevice(form, model, fencedev, fence_edit=False):
- try:
- fence_name = form['name'].strip()
- if not fence_name:
- raise Exception, 'blank'
- fence_name = makeNCName(fence_name)
- except Exception, e:
- return [ FD_PROVIDE_NAME ]
-
- name_change = False
- if fence_edit is True:
- try:
- old_fence_name = form['orig_name'].strip()
- if not old_fence_name:
- raise Exception, 'blank'
- except Exception, e:
- return [ FD_PROVIDE_NAME ]
- if old_fence_name != fence_name:
- if check_unique_fd_name(model, fence_name) is False:
- return [ FD_PROVIDE_NAME ]
- name_change = True
- else:
- if check_unique_fd_name(model, fence_name) is False:
- return [ FD_PROVIDE_NAME ]
-
- try:
- fence_agent = form['agent'].strip()
- if not fence_agent:
- raise Exception, 'blank agent'
- except Exception, e:
- return [ FD_PROVIDE_AGENT ]
-
- fencedev.addAttribute('name', fence_name)
- fencedev.addAttribute('agent', fence_agent)
-
- try:
- ret = FD_VALIDATE[fence_agent](form, fencedev)
- if len(ret) < 1 and name_change is True:
- try:
- model.rectifyNewFencedevicenameWithFences(old_fence_name, fence_name)
- except:
- return [ FD_NEW_FAIL % fence_agent ]
- return ret
- except:
- return [ FD_NEW_FAIL % fence_agent ]
-
def val_apc_fd(form, fencedev):
errors = list()
@@ -533,7 +446,7 @@
fencedev.addAttribute('passwd', pwd)
return errors
-def val_noop_fd(dummy, dummy):
+def val_noop_fd(dummy, _dummy):
return []
# non-shared devices
@@ -695,33 +608,74 @@
fencedev.addAttribute('passwd', pwd)
return errors
-# Validation Methods for Fence Instances
+FD_VALIDATE = {
+ 'fence_apc': val_apc_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_bladecenter': val_bladecenter_fd,
+ 'fence_mcdata': val_mcdata_fd,
+ 'fence_egenera': val_egenera_fd,
+ 'fence_bullpap': val_bullpap_fd,
+ 'fence_xvm': val_noop_fd,
+ 'fence_scsi': val_noop_fd,
+ 'fence_ilo': val_ilo_fd,
+ 'fence_ipmilan': val_ipmilan_fd,
+ 'fence_drac': val_drac_fd,
+ 'fence_rsa': val_rsa_fd,
+ 'fence_rps10': val_rps10_fd,
+ 'fence_manual': val_noop_fd
+}
-def validate_fenceinstance(form, parent_name):
+def validate_fencedevice(form, model, fencedev, fence_edit=False):
try:
- fence_agent = form['fence_type'].strip()
- if not fence_agent:
+ fence_name = form['name'].strip()
+ if not fence_name:
raise Exception, 'blank'
- except:
- return [ FD_PROVIDE_AGENT ]
+ fence_name = makeNCName(fence_name)
+ except Exception, e:
+ return [ FD_PROVIDE_NAME ]
+
+ name_change = False
+ if fence_edit is True:
+ try:
+ old_fence_name = form['orig_name'].strip()
+ if not old_fence_name:
+ raise Exception, 'blank'
+ except Exception, e:
+ return [ FD_PROVIDE_NAME ]
+ if old_fence_name != fence_name:
+ if check_unique_fd_name(model, fence_name) is False:
+ return [ FD_PROVIDE_NAME ]
+ name_change = True
+ else:
+ if check_unique_fd_name(model, fence_name) is False:
+ return [ FD_PROVIDE_NAME ]
try:
- if not parent_name.strip():
- return [ FI_PROVIDE_PARENT ]
- except:
- return [ FI_PROVIDE_PARENT ]
+ fence_agent = form['fence_type'].strip()
+ if not fence_agent:
+ raise Exception, 'blank agent'
+ except Exception, e:
+ return [ FD_PROVIDE_AGENT ]
- fenceinst = Device()
- fenceinst.addAttribute('name', parent_name)
+ fencedev.addAttribute('name', fence_name)
+ fencedev.addAttribute('agent', fence_agent)
try:
- ret = FI_VALIDATE[fence_agent](form, fenceinst)
- if len(ret) > 0:
- return (FD_VAL_FAIL, ret)
- except Exception, e:
- return (FD_VAL_FAIL, [ FI_NEW_FAIL % fence_agent ])
+ ret = FD_VALIDATE[fence_agent](form, fencedev)
+ if len(ret) < 1 and name_change is True:
+ try:
+ model.rectifyNewFencedevicenameWithFences(old_fence_name, fence_name)
+ except:
+ return [ FD_NEW_FAIL % fence_agent ]
+ return ret
+ except:
+ return [ FD_NEW_FAIL % fence_agent ]
- return (FD_VAL_SUCCESS, fenceinst)
+# Validation Methods for Fence Instances
def val_apc_fi(form, fenceinst):
errors = list()
@@ -898,5 +852,45 @@
fenceinst.addAttribute('nodename', nodename)
return errors
-def val_noop_fi(dummy, dummy):
+def val_noop_fi(dummy, _dummy):
return []
+
+FI_VALIDATE = {
+ 'fence_apc': val_apc_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_bladecenter': val_bladecenter_fi,
+ 'fence_mcdata': val_mcdata_fi,
+ 'fence_egenera': val_egenera_fi,
+ 'fence_bullpap': val_bullpap_fi,
+ 'fence_xvm': val_xvm_fi,
+ 'fence_scsi': val_scsi_fi,
+ 'fence_ilo': val_noop_fi,
+ 'fence_ipmilan': val_noop_fi,
+ 'fence_drac': val_noop_fi,
+ 'fence_rsa': val_noop_fi,
+ 'fence_rps10': val_noop_fi,
+ 'fence_manual': val_noop_fi
+}
+
+def validate_fenceinstance(form, parent_name, fence_agent):
+ try:
+ if not parent_name.strip():
+ return (FD_VAL_FAIL, [ FI_PROVIDE_PARENT ])
+ except:
+ return (FD_VAL_FAIL, [ FI_PROVIDE_PARENT ])
+
+ fenceinst = Device()
+ fenceinst.addAttribute('name', parent_name)
+
+ try:
+ ret = FI_VALIDATE[fence_agent](form, fenceinst)
+ if len(ret) > 0:
+ return (FD_VAL_FAIL, ret)
+ except Exception, e:
+ return (FD_VAL_FAIL, [ FI_NEW_FAIL % fence_agent ])
+
+ return (FD_VAL_SUCCESS, fenceinst)
--- conga/luci/site/luci/Extensions/Fs.py 2006/05/30 20:17:21 1.1
+++ conga/luci/site/luci/Extensions/Fs.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "fs"
-RESOURCE_TYPE = _("File System: ")
+RESOURCE_TYPE = _("File System")
class Fs(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/MySQL.py 2007/01/17 20:46:31 1.1
+++ conga/luci/site/luci/Extensions/MySQL.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "mysql"
-RESOURCE_TYPE = _("MySQL Server: ")
+RESOURCE_TYPE = _("MySQL Server")
class MySQL(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/NFSExport.py 2006/05/30 20:17:21 1.1
+++ conga/luci/site/luci/Extensions/NFSExport.py 2007/01/20 04:50:20 1.2
@@ -5,7 +5,7 @@
import gettext
_ = gettext.gettext
-RESOURCE_TYPE = _("NFS Export: ")
+RESOURCE_TYPE = _("NFS Export")
TAG_NAME = "nfsexport"
class NFSExport(BaseResource):
--- conga/luci/site/luci/Extensions/Netfs.py 2006/05/30 20:17:21 1.1
+++ conga/luci/site/luci/Extensions/Netfs.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "netfs"
-RESOURCE_TYPE = _("NFS Mount: ")
+RESOURCE_TYPE = _("NFS Mount")
class Netfs(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/OpenLDAP.py 2007/01/17 20:46:31 1.1
+++ conga/luci/site/luci/Extensions/OpenLDAP.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "openldap"
-RESOURCE_TYPE = _("Open LDAP Server: ")
+RESOURCE_TYPE = _("Open LDAP Server")
class OpenLDAP(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/Postgres8.py 2007/01/17 20:46:31 1.1
+++ conga/luci/site/luci/Extensions/Postgres8.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "postgres-8"
-RESOURCE_TYPE = _("PostgreSQL 8 Server: ")
+RESOURCE_TYPE = _("PostgreSQL 8 Server")
class Postgres8(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/Samba.py 2006/07/20 21:30:33 1.1
+++ conga/luci/site/luci/Extensions/Samba.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "smb"
-RESOURCE_TYPE = _("Samba Service: ")
+RESOURCE_TYPE = _("Samba Service")
class Samba(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/Script.py 2006/05/30 20:17:21 1.1
+++ conga/luci/site/luci/Extensions/Script.py 2007/01/20 04:50:20 1.2
@@ -5,7 +5,7 @@
import gettext
_ = gettext.gettext
-RESOURCE_TYPE = _("Script: ")
+RESOURCE_TYPE = _("Script")
TAG_NAME = "script"
class Script(BaseResource):
--- conga/luci/site/luci/Extensions/Tomcat5.py 2007/01/17 20:46:31 1.1
+++ conga/luci/site/luci/Extensions/Tomcat5.py 2007/01/20 04:50:20 1.2
@@ -6,7 +6,7 @@
_ = gettext.gettext
TAG_NAME = "tomcat-5"
-RESOURCE_TYPE = _("Tomcat 5 Server: ")
+RESOURCE_TYPE = _("Tomcat 5 Server")
class Tomcat5(BaseResource):
def __init__(self):
--- conga/luci/site/luci/Extensions/Vm.py 2006/10/24 15:04:13 1.2
+++ conga/luci/site/luci/Extensions/Vm.py 2007/01/20 04:50:20 1.3
@@ -1,15 +1,16 @@
import string
from TagObject import TagObject
+from BaseResource import BaseResource
+
+import gettext
+_ = gettext.gettext
TAG_NAME = "vm"
+RESOURCE_TYPE = _("Virtual Machine")
-class Vm(TagObject):
+class Vm(BaseResource):
def __init__(self):
- TagObject.__init__(self)
+ BaseResource.__init__(self)
self.TAG_NAME = TAG_NAME
- #Have autostart set by default
- self.addAttribute("autostart","1")
-
- def getProperties(self):
- stringbuf = ""
- return stringbuf
+ self.resource_type = RESOURCE_TYPE
+ self.addAttribute('autostart', '1')
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2007/01/19 21:48:23 1.207
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2007/01/20 04:50:20 1.208
@@ -30,7 +30,6 @@
from clusterOS import resolveOSType
from Fence import Fence
from Method import Method
-from FenceDevice import FenceDevice
from Device import Device
from FenceHandler import validateNewFenceDevice, FENCE_OPTS, validateFenceDevice, validate_fenceinstance
from GeneralError import GeneralError
@@ -1295,7 +1294,6 @@
luci_log.debug_verbose('VFE: no form was submitted')
return (False, {'errors': ['No form was submitted']})
- #fencehandler = FenceHandler()
error_code, retobj = validateNewFenceDevice(form, model)
if error_code == FD_VAL_SUCCESS:
try:
@@ -1304,7 +1302,7 @@
raise Exception, 'conf_str is none'
except Exception, e:
luci_log.debug_verbose('VFE: export model as string failed: %s' \
- % str(e))
+ % str(e))
errors.append('Unable to store the new cluster configuration')
try:
@@ -1643,7 +1641,7 @@
pass
for inst in instance_list:
- retcode, retobj = validate_fenceinstance(inst, fencedev_name)
+ retcode, retobj = validate_fenceinstance(inst, fencedev_name, fence_type)
if retcode != FD_VAL_SUCCESS:
errors.extend(retobj)
continue
More information about the Cluster-devel
mailing list