[Cluster-devel] conga/luci cluster/validate_config_qdisk.js si ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Fri Aug 6 23:54:13 UTC 2010
CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe at sourceware.org 2010-08-06 23:54:12
Modified files:
luci/cluster : validate_config_qdisk.js
luci/site/luci/Extensions: LuciValidation.py
luci/site/luci/Extensions/ClusterModel: ModelBuilder.py
Log message:
fix rhbz#606509 - luci requires wrongly requires users to fill interval / minimum score / votes fields for qdisk configuration
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_config_qdisk.js.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.4.2.7&r2=1.4.2.8
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.15&r2=1.6.2.16
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.14&r2=1.1.4.15
--- conga/luci/cluster/validate_config_qdisk.js 2008/07/14 21:52:30 1.4.2.7
+++ conga/luci/cluster/validate_config_qdisk.js 2010/08/06 23:54:11 1.4.2.8
@@ -104,8 +104,6 @@
var hint = document.getElementById(hstr + ':hinterval');
if (!hint || str_is_blank(hint.value)) {
++blank;
- errors.push('No interval was given for heuristic ' + (hnum + 1));
- set_form_err(hint);
} else {
if (!is_valid_int(hint.value, 1, null)) {
errors.push('Heuristic interval values must be greater than 0.');
@@ -117,8 +115,6 @@
var hscore = document.getElementById(hstr + ':hscore');
if (!hscore || str_is_blank(hscore.value)) {
++blank;
- errors.push('No score was given for heuristic ' + (hnum + 1));
- set_form_err(hscore);
} else {
if (!is_valid_int(hscore.value, 0, null)) {
errors.push('Heuristic score values must be 0 or greater.');
@@ -169,9 +165,8 @@
}
if (qpart) {
- if (!form.interval || str_is_blank(form.interval.value)) {
- errors.push('No interval setting was given.');
- set_form_err(form.interval);
+ if (form.interval && str_is_blank(form.interval.value)) {
+ clr_form_err(form.interval);
} else {
if (!is_valid_int(form.interval.value, 1, null)) {
errors.push('Interval values must be integers greater than 0.');
@@ -180,9 +175,8 @@
clr_form_err(form.interval);
}
- if (!form.tko || str_is_blank(form.tko.value)) {
- errors.push('No TKO setting was given.');
- set_form_err(form.tko);
+ if (form.tko && str_is_blank(form.tko.value)) {
+ clr_form_err(form.tko);
} else {
if (!is_valid_int(form.tko.value, 1, null)) {
errors.push('TKO values must be greater than 0.');
@@ -191,9 +185,8 @@
clr_form_err(form.tko);
}
- if (!form.votes || str_is_blank(form.votes.value)) {
- errors.push('No votes setting was given.');
- set_form_err(form.votes);
+ if (form.votes && str_is_blank(form.votes.value)) {
+ clr_form_err(form.votes);
} else {
if (!is_valid_int(form.votes.value, 1, null)) {
errors.push('Votes values must be greater than 0.');
@@ -202,6 +195,16 @@
clr_form_err(form.votes);
}
+ if (form.min_score && str_is_blank(form.min_score.value)) {
+ clr_form_err(form.min_score);
+ } else {
+ if (!is_valid_int(form.min_score.value, 1, null)) {
+ errors.push('Minimum score values must be greater than 0.');
+ set_form_err(form.min_score);
+ } else
+ clr_form_err(form.min_score);
+ }
+
var no_dev = !form.device || str_is_blank(form.device.value);
var no_label = !form.label || str_is_blank(form.label.value);
if (no_dev && no_label)
@@ -218,21 +221,6 @@
if (err)
errors = errors.concat(err);
}
-
- if (hnum > 1) {
- if (!form.min_score || str_is_blank(form.min_score.value)) {
- errors.push('No minimum score setting was given.');
- set_form_err(form.min_score);
- } else {
- if (!is_valid_int(form.min_score.value, 1, null)) {
- errors.push('Minimum score values must be greater than 0.');
- set_form_err(form.min_score);
- } else
- clr_form_err(form.min_score);
- }
- } else {
- clr_form_err(form.min_score);
- }
} else {
clr_form_err(form.min_score);
}
--- conga/luci/site/luci/Extensions/LuciValidation.py 2010/08/06 21:57:43 1.6.2.15
+++ conga/luci/site/luci/Extensions/LuciValidation.py 2010/08/06 23:54:12 1.6.2.16
@@ -747,38 +747,46 @@
return (True, {})
try:
- interval = int(form['interval'])
- if interval < 0:
- raise ValueError, 'Interval must be 0 or greater'
+ interval = form['interval']
+ if interval:
+ interval = int(interval)
+ if interval < 0:
+ raise ValueError, 'Interval must be 0 or greater'
except KeyError, e:
errors.append('No Interval value was given')
except ValueError, e:
errors.append('An invalid Interval value was given: %s' % str(e))
try:
- votes = int(form['votes'])
- if votes < 1:
- raise ValueError, 'Votes must be greater than 0'
+ votes = form['votes']
+ if votes:
+ votes = int(votes)
+ if votes < 1:
+ raise ValueError, 'Votes must be greater than 0'
except KeyError, e:
- errors.append('No Votes value was given')
+ votes = None
except ValueError, e:
errors.append('An invalid Votes value was given: %s' % str(e))
try:
- tko = int(form['tko'])
- if tko < 0:
- raise ValueError, 'TKO must be 0 or greater'
+ tko = form['tko']
+ if tko:
+ tko = int(tko)
+ if tko < 0:
+ raise ValueError, 'TKO must be 0 or greater'
except KeyError, e:
- errors.append('No TKO value was given')
+ tko = None
except ValueError, e:
errors.append('An invalid TKO value was given: %s' % str(e))
try:
- min_score = int(form['min_score'])
- if min_score < 1:
- raise ValueError('Minimum Score must be greater than 0')
+ min_score = form['min_score']
+ if min_score:
+ min_score = int(min_score)
+ if min_score < 1:
+ raise ValueError('Minimum Score must be greater than 0')
except KeyError, e:
- errors.append('No Minimum Score value was given')
+ min_score = None
except ValueError, e:
errors.append('An invalid Minimum Score value was given: %s' % str(e))
@@ -826,21 +834,23 @@
except Exception, e:
errors.append('No program was given for heuristic %d' % (i + 1))
try:
- hint = int(h[1])
- if hint < 1:
- raise ValueError, 'Heuristic interval values must be greater than 0'
+ if hint:
+ hint = int(h[1])
+ if hint < 1:
+ raise ValueError, 'Heuristic interval values must be greater than 0'
except KeyError, e:
- errors.append('No interval was given for heuristic %d' % (i + 1))
+ hint = None
except ValueError, e:
errors.append('An invalid interval was given for heuristic %d: %s' \
% ((i + 1), str(e)))
try:
- hscore = int(h[2])
- if hscore < 1:
- raise ValueError, 'Heuristic scores must be greater than 0'
+ if hscore:
+ hscore = int(h[2])
+ if hscore < 1:
+ raise ValueError, 'Heuristic scores must be greater than 0'
except KeyError, e:
- errors.append('No score was given for heuristic %d' % (i + 1))
+ hscore = None
except ValueError, e:
errors.append('An invalid score was given for heuristic %d: %s' \
% ((i + 1), str(e)))
@@ -851,10 +861,14 @@
return (False, {'errors': errors })
qd = QuorumD()
- qd.addAttribute('interval', str(interval))
- qd.addAttribute('votes', str(votes))
- qd.addAttribute('tko', str(tko))
- qd.addAttribute('min_score', str(min_score))
+ if interval:
+ qd.addAttribute('interval', str(interval))
+ if votes:
+ qd.addAttribute('votes', str(votes))
+ if tko:
+ qd.addAttribute('tko', str(tko))
+ if min_score:
+ qd.addAttribute('min_score', str(min_score))
if device:
qd.addAttribute('device', str(device))
@@ -871,8 +885,10 @@
for h in heuristics:
new_h = Heuristic()
new_h.addAttribute('program', str(h[0]))
- new_h.addAttribute('interval', str(h[1]))
- new_h.addAttribute('score', str(h[2]))
+ if h[1]:
+ new_h.addAttribute('interval', str(h[1]))
+ if h[2]:
+ new_h.addAttribute('score', str(h[2]))
qd.addChild(new_h)
if len(errors) > 0:
--- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2010/08/06 21:57:43 1.1.4.14
+++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2010/08/06 23:54:12 1.1.4.15
@@ -1120,7 +1120,10 @@
cur_votes = 1
node_votes += cur_votes
- return node_votes + qdisk_votes
+ if qdisk_votes != 0:
+ return node_votes + qdisk_votes
+ else:
+ return 2 * node_votes - 1
def updateReferences(self):
self.__updateReferences(self.cluster_ptr)
More information about the Cluster-devel
mailing list