From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci cluster/form-macros homebase/homeba ...
Date: 12 Jul 2007 15:44:44 -0000 [thread overview]
Message-ID: <20070712154444.3367.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-07-12 15:44:43
Modified files:
luci/cluster : form-macros
luci/homebase : homebase_common.js
luci/site/luci/Extensions: FenceHandler.py LuciClusterInfo.py
PropsObject.py homebase_adapters.py
Log message:
- Cleanups
- Better exception handling and error logging for fence validation
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.202&r2=1.203
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/homebase_common.js.diff?cvsroot=cluster&r1=1.18&r2=1.19
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&r1=1.19&r2=1.20
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciClusterInfo.py.diff?cvsroot=cluster&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/PropsObject.py.diff?cvsroot=cluster&r1=1.4&r2=1.5
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/homebase_adapters.py.diff?cvsroot=cluster&r1=1.51&r2=1.52
--- conga/luci/cluster/form-macros 2007/07/12 02:42:42 1.202
+++ conga/luci/cluster/form-macros 2007/07/12 15:44:43 1.203
@@ -3273,7 +3273,7 @@
<div id="fence_selection_block" class="invisible">
<form name="main_fence_form">
- <select name="select_div" onchange="alert('ALERT')">
+ <select name="select_div">
<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
<tal:block tal:repeat="f fencedevinfo/fencedevs">
<option class="shared_fencedev"
--- conga/luci/homebase/homebase_common.js 2007/07/11 22:47:07 1.18
+++ conga/luci/homebase/homebase_common.js 2007/07/12 15:44:43 1.19
@@ -281,13 +281,13 @@
del_img.className = 'deleteRow';
del_img.onclick = new Function('delete_element_id(\'' + newrow.id + '\')');
- sltab.appendChild(newrow);
dcol.appendChild(del_img);
hcol.appendChild(newsys);
pcol.appendChild(newsysp);
newrow.appendChild(hcol);
newrow.appendChild(pcol);
newrow.appendChild(dcol);
+ sltab.appendChild(newrow);
form.numStorage.value = ++num_systems;
if (num_systems === 2) {
--- conga/luci/site/luci/Extensions/FenceHandler.py 2007/06/25 16:03:38 1.19
+++ conga/luci/site/luci/Extensions/FenceHandler.py 2007/07/12 15:44:43 1.20
@@ -6,6 +6,8 @@
# Free Software Foundation.
from ClusterModel.Device import Device
+from conga_constants import LUCI_DEBUG_MODE
+from LuciSyslog import get_logger
FD_VAL_FAIL = 1
FD_VAL_SUCCESS = 0
@@ -152,6 +154,7 @@
'fence_manual': ['name']
}
+luci_log = get_logger()
def makeNCName(name):
### name must conform to relaxNG ID type ##
@@ -178,6 +181,8 @@
model.setModified(True)
return (FD_VAL_SUCCESS, fencedev.getAttribute('name'))
except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VNFD0: %r %s' % (e, str(e)))
ret = [ FD_PROVIDE_AGENT ]
return (FD_VAL_FAIL, ret)
@@ -188,6 +193,8 @@
if not old_fence_name:
raise Exception, 'blank'
except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VFD0: %r %s' % (e, str(e)))
return (FD_VAL_FAIL, [ FD_PROVIDE_NAME ])
fencedev = None
@@ -200,6 +207,8 @@
if fencedev is None:
raise Exception, 'fencedev is None'
except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VFD1: %r %s' % (e, str(e)))
return (FD_VAL_FAIL, [ FD_PROVIDE_NAME ])
try:
@@ -208,6 +217,8 @@
model.setModified(True)
return (FD_VAL_SUCCESS, fencedev.getAttribute('name'))
except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VFD2: %r %s' % (e, str(e)))
ret = [ FD_PROVIDE_NAME ]
return (FD_VAL_FAIL, ret)
@@ -219,6 +230,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -226,6 +238,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -257,8 +270,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_wti_fd(form, fencedev):
@@ -268,6 +279,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -299,7 +311,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
return errors
def val_brocade_fd(form, fencedev):
@@ -309,6 +320,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -316,6 +328,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -347,8 +360,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_vixel_fd(form, fencedev):
@@ -358,6 +369,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -389,7 +401,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
return errors
def val_mcdata_fd(form, fencedev):
@@ -399,6 +410,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -406,6 +418,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -437,8 +450,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_gnbd_fd(form, fencedev):
@@ -448,10 +459,10 @@
server = form['servers'].strip()
if not server:
raise Exception, 'blank'
+ fencedev.addAttribute('servers', server)
except Exception, e:
errors.append(FD_PROVIDE_SERVER)
- fencedev.addAttribute('servers', server)
return errors
def val_egenera_fd(form, fencedev):
@@ -461,10 +472,10 @@
cserver = form['cserver'].strip()
if not cserver:
raise Exception, 'blank'
+ fencedev.addAttribute('cserver', cserver)
except Exception, e:
errors.append(FD_PROVIDE_CSERVER)
- fencedev.addAttribute('cserver', cserver)
return errors
def val_sanbox2_fd(form, fencedev):
@@ -474,6 +485,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -481,6 +493,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -512,8 +525,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_bladecenter_fd(form, fencedev):
@@ -523,6 +534,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -530,6 +542,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -561,8 +574,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_bullpap_fd(form, fencedev):
@@ -572,6 +583,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -579,6 +591,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -610,8 +623,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_noop_fd(dummy, _dummy):
@@ -626,6 +637,7 @@
hostname = form['hostname'].strip()
if not hostname:
raise Exception, 'blank'
+ fencedev.addAttribute('hostname', hostname)
except Exception, e:
errors.append(FD_PROVIDE_HOSTNAME)
@@ -633,6 +645,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -664,8 +677,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('hostname', hostname)
- fencedev.addAttribute('login', log)
return errors
def val_drac_fd(form, fencedev):
@@ -675,6 +686,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -682,6 +694,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -713,8 +726,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_rps10_fd(form, fencedev):
@@ -724,6 +735,7 @@
device = form['device'].strip()
if not device:
raise Exception, 'blank'
+ fencedev.addAttribute('device', device)
except Exception, e:
errors.append(FD_PROVIDE_DEVICE)
@@ -731,11 +743,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fencedev.addAttribute('port', port)
except Exception, e:
errors.append(FD_PROVIDE_PORT)
- fencedev.addAttribute('device', device)
- fencedev.addAttribute('port', port)
return errors
def val_ipmilan_fd(form, fencedev):
@@ -745,6 +756,7 @@
ip = form['ipaddr'].strip()
if not ip:
raise Exception, 'blank'
+ fencedev.addAttribute('ipaddr', ip)
except Exception, e:
errors.append(FD_PROVIDE_IP)
@@ -752,6 +764,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -805,8 +818,6 @@
except Exception, e:
fencedev.removeAttribute('lanplus')
- fencedev.addAttribute('ipaddr', ip)
- fencedev.addAttribute('login', log)
return errors
def val_ilo_fd(form, fencedev):
@@ -816,6 +827,7 @@
hostname = form['hostname'].strip()
if not hostname:
raise Exception, 'blank'
+ fencedev.addAttribute('hostname', hostname)
except Exception, e:
errors.append(FD_PROVIDE_HOSTNAME)
@@ -823,6 +835,7 @@
log = form['login'].strip()
if not log:
raise Exception, 'blank'
+ fencedev.addAttribute('login', log)
except Exception, e:
errors.append(FD_PROVIDE_LOGIN)
@@ -854,8 +867,6 @@
if not has_passwd:
errors.append(FD_PROVIDE_PASSWD)
- fencedev.addAttribute('hostname', hostname)
- fencedev.addAttribute('login', log)
return errors
FD_VALIDATE = {
@@ -919,10 +930,15 @@
if len(ret) < 1 and name_change is True:
try:
model.rectifyNewFencedevicenameWithFences(old_fence_name, fence_name)
- except:
+ except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('vfd0: %s %r %s' \
+ % (fence_agent, e, str(e)))
return [ FD_NEW_FAIL % fence_agent ]
return ret
- except:
+ except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('vfd1: %s %r %s' % (fence_agent, e, str(e)))
return [ FD_NEW_FAIL % fence_agent ]
# Validation Methods for Fence Instances
@@ -934,6 +950,7 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
@@ -948,7 +965,6 @@
except Exception, e:
errors.append(FI_PROVIDE_SWITCH)
- fenceinst.addAttribute('port', port)
return errors
def val_wti_fi(form, fenceinst):
@@ -958,10 +974,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
- fenceinst.addAttribute('port', port)
return errors
def val_brocade_fi(form, fenceinst):
@@ -971,10 +987,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
- fenceinst.addAttribute('port', port)
return errors
def val_vixel_fi(form, fenceinst):
@@ -984,10 +1000,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
- fenceinst.addAttribute('port', port)
return errors
def val_gnbd_fi(form, fenceinst):
@@ -997,10 +1013,10 @@
ip = form['ipaddress'].strip()
if not ip:
raise Exception, 'blank'
+ fenceinst.addAttribute('ipaddress', ip)
except Exception, e:
errors.append(FI_PROVIDE_IPADDRESS)
- fenceinst.addAttribute('ipaddress', ip)
return errors
def val_sanbox2_fi(form, fenceinst):
@@ -1010,10 +1026,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
- fenceinst.addAttribute('port', port)
return errors
def val_bladecenter_fi(form, fenceinst):
@@ -1023,10 +1039,10 @@
blade = form['blade'].strip()
if not blade:
raise Exception, 'blank'
+ fenceinst.addAttribute('blade', blade)
except Exception, e:
errors.append(FI_PROVIDE_BLADE)
- fenceinst.addAttribute('blade', blade)
return errors
def val_mcdata_fi(form, fenceinst):
@@ -1036,10 +1052,10 @@
port = form['port'].strip()
if not port:
raise Exception, 'blank'
+ fenceinst.addAttribute('port', port)
except Exception, e:
errors.append(FI_PROVIDE_PORT)
- fenceinst.addAttribute('port', port)
return errors
def val_egenera_fi(form, fenceinst):
@@ -1049,6 +1065,7 @@
lpan = form['lpan'].strip()
if not lpan:
raise Exception, 'blank'
+ fenceinst.addAttribute('lpan', lpan)
except Exception, e:
errors.append(FI_PROVIDE_ELPAN)
@@ -1056,11 +1073,10 @@
pserver = form['pserver'].strip()
if not pserver:
raise Exception, 'blank'
+ fenceinst.addAttribute('pserver', pserver)
except Exception, e:
errors.append(FI_PROVIDE_ELPAN)
- fenceinst.addAttribute('lpan', lpan)
- fenceinst.addAttribute('pserver', pserver)
return errors
def val_bullpap_fi(form, fenceinst):
@@ -1070,10 +1086,10 @@
domain = form['domain'].strip()
if not domain:
raise Exception, 'blank'
+ fenceinst.addAttribute('domain', domain)
except Exception, e:
errors.append(FI_PROVIDE_DOMAIN)
- fenceinst.addAttribute('domain', domain)
return errors
def val_xvm_fi(form, fenceinst):
@@ -1083,10 +1099,10 @@
domain = form['domain'].strip()
if not domain:
raise Exception, 'blank'
+ fenceinst.addAttribute('domain', domain)
except Exception, e:
errors.append(FI_PROVIDE_DOMAIN)
- fenceinst.addAttribute('domain', domain)
return errors
def val_scsi_fi(form, fenceinst):
@@ -1096,10 +1112,10 @@
nodename = form['nodename'].strip()
if not nodename:
raise Exception, 'blank'
+ fenceinst.addAttribute('nodename', nodename)
except Exception, e:
errors.append(FI_PROVIDE_NODENAME)
- fenceinst.addAttribute('nodename', nodename)
return errors
def val_noop_fi(dummy, _dummy):
@@ -1141,6 +1157,8 @@
if len(ret) > 0:
return (FD_VAL_FAIL, ret)
except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('vfi0: %s: %r %s' % (fence_agent, e, str(e)))
return (FD_VAL_FAIL, [ FI_NEW_FAIL % fence_agent ])
return (FD_VAL_SUCCESS, fenceinst)
--- conga/luci/site/luci/Extensions/LuciClusterInfo.py 2007/07/03 17:05:59 1.5
+++ conga/luci/site/luci/Extensions/LuciClusterInfo.py 2007/07/12 15:44:43 1.6
@@ -1525,6 +1525,7 @@
model = ModelBuilder(0, None, None, cluster_conf_node)
if not model:
raise Exception, 'ModelBuilder() returned None'
+ model.setIsVirtualized(isVirtualized)
except Exception, e:
try:
if LUCI_DEBUG_MODE is True:
@@ -1534,7 +1535,6 @@
luci_log.debug_verbose('GMB1: ModelBuilder failed')
return None
- model.setIsVirtualized(isVirtualized)
return model
def getModelForCluster(self, clustername):
@@ -1550,12 +1550,11 @@
model = getModelBuilder(None, rc, rc.dom0())
if not model:
raise Exception, 'model is none'
+ return model
except Exception, e:
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('GMFC1: unable to get model builder for %s: %r %s' % (clustername, e, str(e)))
- return None
-
- return model
+ return None
def getClusterOS(self, rc):
from HelperFunctions import resolveOSType
--- conga/luci/site/luci/Extensions/PropsObject.py 2007/07/03 17:05:59 1.4
+++ conga/luci/site/luci/Extensions/PropsObject.py 2007/07/12 15:44:43 1.5
@@ -26,7 +26,7 @@
return self.__vars
def export_xml(self, doc, parent_node):
- props = doc.createElement(str(PROPS_TAG))
+ props = doc.createElement(PROPS_TAG)
parent_node.appendChild(props)
for var in self.__vars:
props.appendChild(self.__vars[var].export_xml(doc))
@@ -36,7 +36,7 @@
props = None
for node in parent_node.childNodes:
if node.nodeType == ELEMENT_NODE:
- if node.nodeName == str(PROPS_TAG):
+ if node.nodeName == PROPS_TAG:
props = node
if props is None:
return self
--- conga/luci/site/luci/Extensions/homebase_adapters.py 2007/06/25 16:03:39 1.51
+++ conga/luci/site/luci/Extensions/homebase_adapters.py 2007/07/12 15:44:43 1.52
@@ -39,7 +39,7 @@
errors = list()
messages = list()
- if '__SYSTEM' in request.form:
+ if request.form.has_key('__SYSTEM'):
system_names = request.form['__SYSTEM']
for i in system_names:
if not i:
@@ -50,7 +50,7 @@
else:
messages.append('Removed storage system "%s" successfully' % i)
- if '__CLUSTER' in request.form:
+ if request.form.has_key('__CLUSTER'):
cluster_names = request.form['__CLUSTER']
for i in cluster_names:
if not i:
@@ -70,9 +70,8 @@
if not request.form.has_key('deluserId'):
return (False, { 'errors': [ 'No User ID given' ] })
- userId = request.form['deluserId']
-
try:
+ userId = request.form['deluserId'].strip()
user = self.portal_membership.getMemberById(userId)
if not user:
raise Exception, 'user %s does not exist' % userId
@@ -117,8 +116,10 @@
if not request.form.has_key('newUserName'):
return (False, { 'errors': [ 'No user name given' ] })
+
if not request.form.has_key('newPassword'):
return (False, { 'errors': [ 'No password given' ] })
+
if not request.form.has_key('newPasswordConfirm'):
return (False, { 'errors': [ 'You didn\'t confirm the password' ] })
@@ -133,12 +134,21 @@
if passwd != pwconfirm:
return (False, { 'errors': [ 'The passwords given do not match' ]})
+ user_props = {
+ 'username': user,
+ 'password': passwd,
+ 'confirm': passwd,
+ 'roles': [ 'Member' ],
+ 'domains': [],
+ 'email': '%s at conga.example.com' % user
+ }
+
try:
- self.portal_registration.addMember(user, passwd, properties = { 'username': user, 'password': passwd, 'confirm': passwd, 'roles': [ 'Member' ], 'domains': [], 'email': '%s at conga.example.com' % user })
+ self.portal_registration.addMember(user, passwd, properties=user_props)
except Exception, e:
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('VAU0: %s: %r %s' % (user, e, str(e)))
- return (False, { 'errors': [ 'Unable to add new user "%s"' % user ] })
+ return (False, { 'errors': [ 'Unable to add new user "%s": %s ' % (user, str(e)) ] })
if not self.portal_membership.getMemberById(user):
return (False, { 'errors': [ 'Unable to add new user "%s"' % user ] })
@@ -542,11 +552,13 @@
except:
pass_num = 1
- add_cluster = { 'name': cluster_name,
- 'pass': pass_num,
- 'cluster_os': cluster_os,
- 'identical_passwds': same_node_passwds,
- 'check_certs': check_certs }
+ add_cluster = {
+ 'name': cluster_name,
+ 'pass': pass_num,
+ 'cluster_os': cluster_os,
+ 'identical_passwds': same_node_passwds,
+ 'check_certs': check_certs
+ }
system_list, incomplete, new_errors, messages = parseHostForm(request, check_certs)
errors.extend(new_errors)
next reply other threads:[~2007-07-12 15:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-12 15:44 rmccabe [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-07-12 22:35 [Cluster-devel] conga/luci cluster/form-macros homebase/homeba rmccabe
2006-08-17 16:22 rmccabe
2006-08-16 19:08 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=20070712154444.3367.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.