FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 01-14-2008, 07:51 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe@sourceware.org 2008-01-14 20:51:42

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: cluster_adapters.py LuciDB.py
luci/cluster : busy_wait-macro

Log message:
Fix bz239387 (RFE: add timeouts for actions that can leave cluster unreachable)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&r1=1.91&r2=1 .92
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.277& r2=1.278
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciDB.py.diff?cvsroot=cluster&r1=1.7&r2=1.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/busy_wait-macro.diff?cvsroot=cluster&r1=1.1&r2=1.2

--- conga/conga.spec.in.in 2008/01/03 16:27:48 1.91
+++ conga/conga.spec.in.in 2008/01/14 20:51:42 1.92
@@ -302,6 +302,7 @@
- Fixed bz253727 (RFE: graphical view should be default in partiton tables view)
- Fixed bz337041 (Add option to not fail-back service)
- Fixed bz264161 (RFE: support setting the "__independent_subtree" attribute on cluster resources)
+- Fixed bz239387 (RFE: add timeouts for actions that can leave cluster unreachable)

* Mon Aug 27 2007 Ryan McCabe <rmccabe@redhat.com> 0.10.0-6
- Fixed bz253783
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2008/01/02 21:00:32 1.277
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2008/01/14 20:51:42 1.278
@@ -40,7 +40,7 @@
batch_status, extract_module_status

from LuciDB import manageCluster, createClusterSystems,
- setNodeStatus, getStorageNode, getClusterFlags,
+ setNodeStatus, getStorageNode, getClusterFlags, del_node_flag,
getClusterNode, buildClusterCreateFlags, getClusterDBObj,
resolve_nodename, set_node_flag, getRicciAgent,
CLUSTER_NODE_NEED_AUTH
@@ -1102,6 +1102,30 @@
request.RESPONSE.redirect('%s?pagetype=%s&clustern ame=%s&tab=2&busyfirst=true'
% (baseurl, CLUSTER_CONFIG, clustername))

+def validate_stop_waiting(self, request):
+ fvar = GetReqVars(request, [ 'clustername', 'node', 'batchid', 'refreshurl' ])
+
+ batchid = fvar['batchid']
+ node = fvar['node']
+ clustername = fvar['clustername']
+
+ if node is None:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VSW0: no node name given')
+
+ if clustername is None:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VSW1: no cluster name was given')
+
+ if node and clustername:
+ try:
+ del_node_flag(self, clustername, node, batchid)
+ except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('VSW2: [%s %s %s] %r %s'
+ % (node, clustername, batchid, e, str(e)))
+ request.RESPONSE.redirect(fvar['refreshurl'])
+
def process_cluster_conf_editor(self, req):
if req.has_key('clustername'):
clustername = req['clustername'].strip() or None
@@ -1181,6 +1205,7 @@
57: deleteFenceDevice,
58: validateNodeFenceConfig,
60: validate_xvm_key_dist,
+ 61: validate_stop_waiting,
80: process_cluster_conf_editor,
1001: validate_clusvc_async
}
@@ -1524,6 +1549,7 @@
isBusy = False
redirect_message = False
nodereports = list()
+ report_index = 0

fvar = GetReqVars(req, [ 'clustername', 'URL' ])
busy_map['nodereports'] = nodereports
@@ -1571,13 +1597,21 @@
# If complete, report status and remove flag.

for item in items:
+ node_report = {}
tasktype = item[1].getProperty(TASKTYPE)
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB3: task type for %s = %s'
% (item[0], tasktype))
+
+ ricci = item[0].split('____')[0]
+
+ node_report['node'] = ricci
+ node_report['tasktype'] = tasktype
+ node_report['clustername'] = cluname
+ node_report['report_index'] = report_index
+ report_index += 1

if tasktype == CLUSTER_ADD or tasktype == NODE_ADD:
- node_report = {}
node_report['isnodecreation'] = True
# Default value
node_report['iserror'] = False
@@ -1585,14 +1619,13 @@

batch_xml = None
# This removes the 'flag' suffix
- ricci = item[0].split('____')

if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB4: using rc host %s for item %s'
- % (ricci[0], item[0]))
+ % (ricci, item[0]))

try:
- rc = RicciCommunicator(ricci[0])
+ rc = RicciCommunicator(ricci)
if not rc:
rc = None
if LUCI_DEBUG_MODE is True:
@@ -1615,12 +1648,14 @@
luci_log.debug_verbose('ICB8: failed to get batch_id from %s: %r %s' % (item[0], e, str(e)))

if batch_id is not None:
+ node_report['batchid'] = batch_id
try:
batch_xml = rc.batch_report(batch_id)
if batch_xml is not None:
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB9: batch_xml for %s from batch_report is not None -- getting batch status' % batch_id)
(creation_status, total) = batch_status(batch_xml)
+
try:
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB10: batch status returned (%d,%d)' % (creation_status, total))
@@ -1669,7 +1704,7 @@
# an error was encountered
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB17: %s: CS %d for %s'
- % (cluname, creation_status, ricci[0]))
+ % (cluname, creation_status, ricci))

if creation_status == RICCI_CONNECT_FAILURE:
laststatus = item[1].getProperty(LAST_STATUS)
@@ -1737,8 +1772,8 @@
try:
if del_db_obj is True:
if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('ICB19: %s node creation failed for %s: %d: deleting DB entry' % (cluname, ricci[0], creation_status))
- clusterfolder.manage_delObjects([ricci[0]])
+ luci_log.debug_verbose('ICB19: %s node creation failed for %s: %d: deleting DB entry' % (cluname, ricci, creation_status))
+ clusterfolder.manage_delObjects([ricci])
clusterfolder.manage_delObjects([item[0]])
except Exception, e:
if LUCI_DEBUG_MODE is True:
@@ -1764,8 +1799,8 @@
% (item[0], e, str(e)))
continue
else:
- busy_map['busy'] = 'true'
isBusy = True
+ busy_map['busy'] = 'true'
node_report['statusmessage'] = 'Node still being created'
node_report['statusindex'] = creation_status
nodereports.append(node_report)
@@ -1783,13 +1818,11 @@
luci_log.debug_verbose('ICB23: last_status err: %s %d: %r %s' % (item[0], creation_status, e, str(e)))
continue
else:
- node_report = {}
node_report['isnodecreation'] = False
# This removes the 'flag' suffix
- ricci = item[0].split('____')

try:
- rc = RicciCommunicator(ricci[0])
+ rc = RicciCommunicator(ricci)
except Exception, e:
rc = None
finished = -1
@@ -1797,7 +1830,7 @@

if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('ICB24: ricci error: %s: %r %s'
- % (ricci[0], e, str(e)))
+ % (ricci, e, str(e)))

if rc is not None:
batch_num = item[1].getProperty(BATCH_ID)
@@ -1825,9 +1858,8 @@
% (item[0], e, str(e)))
busy_map['busy'] = None
else:
- node_report = {}
- busy_map['busy'] = 'true'
isBusy = True
+ busy_map['busy'] = 'true'
node_report['desc'] = item[1].getProperty(FLAG_DESC)
nodereports.append(node_report)

--- conga/luci/site/luci/Extensions/LuciDB.py 2007/08/20 16:31:13 1.7
+++ conga/luci/site/luci/Extensions/LuciDB.py 2008/01/14 20:51:42 1.8
@@ -84,6 +84,38 @@
luci_log.debug_verbose('clearNodeStatus0: %r %s'
% (e, str(e)))

+def del_node_flag(self, cluname, agent, batchid=None):
+ path = str('%s%s' % (CLUSTER_FOLDER_PATH, cluname))
+ objname = '%s____flag' % agent
+
+ try:
+ flag_obj = self.restrictedTraverse(str('%s/%s' % (path, objname)))
+ clusterfolder = self.restrictedTraverse(path)
+ except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('DNF0: %s/%s: %s %r %s'
+ % (path, objname, flag_obj[0], e, str(e)))
+ return False
+
+ if batchid:
+ try:
+ bid = flag_obj.getProperty(BATCH_ID)
+ if bid != batchid:
+ raise Exception, 'mismatch: got %s, wanted %s' % (bid, batchid)
+ except Exception, e1:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('DNF1: unable to find flag with bid: %s for %s/%s: %r %s' % (batchid, path, objname, e1, str(e1)))
+ return False
+
+ try:
+ clusterfolder.manage_delObjects([objname])
+ except Exception, e:
+ if LUCI_DEBUG_MODE is True:
+ luci_log.debug_verbose('DNF2: %s/%s: %r %s'
+ % (path, objname, e, str(e)))
+ return False
+ return True
+
def set_node_flag(self, cluname, agent, batchid, task, desc):
path = str('%s%s' % (CLUSTER_FOLDER_PATH, cluname))
batch_id = str(batchid)
@@ -99,8 +131,8 @@
flag.manage_addProperty(TASKTYPE, task, 'string')
flag.manage_addProperty(FLAG_DESC, desc, 'string')
except Exception, e:
- errmsg = 'SNF0: error creating flag (%s,%s,%s) at %s: %s'
- % (batch_id, task, desc, objpath, str(e))
+ errmsg = 'Error creating flag (bid: %s task: %s desc: %s) at %s: %s'
+ % (batch_id, task, desc, objpath, str(e))
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('SNF0: %r %s' % (e, errmsg))
raise Exception, errmsg
--- conga/luci/cluster/busy_wait-macro 2007/11/19 18:22:48 1.1
+++ conga/luci/cluster/busy_wait-macro 2008/01/14 20:51:42 1.2
@@ -1,62 +1,70 @@
<div metal:define-macro="busywaitpage">
- <table>
- <tr><td>
- <h2>Please be patient - this cluster's configuration is being modified.</h2>
- </td></tr>
-
- <tr><td>
- <img src="100wait.gif" />
- </td></tr>
+ <h2>Please be patient - this cluster's configuration is being modified.</h2>

- <span tal:define="global nodereports isBusy/nodereports" />
+ <p><img src="100wait.gif" /></p>
+
+ <span tal:define="global nodereports isBusy/nodereports" />
+
+ <div tal:repeat="nodereport nodereports">
+ <tal:block
+ tal:condition="python:nodereport.get('isnodecreati on') != True">
+
+ <h3><span tal:replace="nodereport/desc" /></h3>
+ </tal:block>
+
+ <tal:block
+ tal:condition="python:nodereport.get('isnodecreati on') == True">

- <tr tal:repeat="nodereport nodereports"><td>
<tal:block
- tal:condition="python:nodereport.get('isnodecreati on') != True">
+ tal:condition="python:nodereport.get('iserror') == True">
+
+ <h3><span tal:content="nodereport/desc" /></h3>

- <h2><span tal:replace="nodereport/desc" /></h2>
+ <span class="errmsg" tal:content="nodereport/errormessage" />
</tal:block>

- <tal:block
- tal:condition="python:nodereport.get('isnodecreati on') == True">
+ <tal:block tal:condition="python:nodereport.get('iserror') != True">
+ <h3><span tal:content="nodereport/desc" /></h3>
+ <em tal:content="nodereport/statusmessage | nothing" />
+ <br/>

- <tal:block
- tal:condition="python:nodereport.get('iserror') == True">
+ <tal:block tal:condition="python: nodereport['statusindex'] < 1">
+ <img src="notstarted.png" />
+ </tal:block>

- <h2><span tal:content="nodereport/desc" /></h2>
+ <tal:block tal:condition="python: nodereport['statusindex'] == 1 or nodereport['statusindex'] == 2">
+ <img src="installed.png" alt="[cluster software installed]" />
+ </tal:block>

- <span class="errmsg"
- tal:content="nodereport/errormessage" />
+ <tal:block tal:condition="python: nodereport['statusindex'] == 3">
+ <img src="rebooted.png" alt="[cluster node rebooted]" />
</tal:block>

- <tal:block
- tal:condition="python:nodereport.get('iserror') != True">
+ <tal:block tal:condition="python: nodereport['statusindex'] == 4 or nodereport['statusindex'] == 5">
+ <img src="configured.png" alt="[cluster node configured]" />
+ </tal:block>

- <h2><span tal:content="nodereport/desc" /></h2>
- <em tal:content="nodereport/statusmessage | nothing" />
- <br/>
-
- <tal:block tal:condition="python: nodereport['statusindex'] < 1">
- <img src="notstarted.png" />
- </tal:block>
-
- <tal:block tal:condition="python: nodereport['statusindex'] == 1 or nodereport['statusindex'] == 2">
- <img src="installed.png" alt="[cluster software installed]" />
- </tal:block>
-
- <tal:block tal:condition="python: nodereport['statusindex'] == 3">
- <img src="rebooted.png" alt="[cluster node rebooted]" />
- </tal:block>
-
- <tal:block tal:condition="python: nodereport['statusindex'] == 4 or nodereport['statusindex'] == 5">
- <img src="configured.png" alt="[cluster node configured]" />
- </tal:block>
-
- <tal:block tal:condition="python: nodereport['statusindex'] == 6">
- <img src="joined.png" alt="[cluster node joined cluster]" />
- </tal:block>
+ <tal:block tal:condition="python: nodereport['statusindex'] == 6">
+ <img src="joined.png" alt="[cluster node joined cluster]" />
</tal:block>
</tal:block>
- </td></tr>
- </table>
+ </tal:block>
+
+ <div>
+ <form method="post" action=""
+ tal:attributes="name python:'stop_waiting_form%s' % nodereport.get('report_index')">
+
+ <input type="hidden" name="pagetype" value="61" />
+ <input type="hidden" name="clustername"
+ tal:attributes="value nodereport/clustername | nothing" />
+ <input type="hidden" name="node"
+ tal:attributes="value nodereport/node | nothing" />
+ <input type="hidden" name="refreshurl"
+ tal:attributes="value nodereport/refreshurl | request/URL |string:." />
+ <a href="javascript:void(0)"
+ tal:attributes="onclick python:'javascript:document.stop_waiting_form%s.su bmit()' % nodereport.get('report_index')">Stop waiting for this job to complete</a>
+ </form>
+ </div>
+ </div>
+ <hr/>
</div>
 
Old 04-14-2008, 03:58 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-04-14 15:58:35

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: StorageReport.py
ricci/modules/cluster: ClusterStatus.cpp
ricci/modules/rpm: PackageHandler.cpp
ricci/modules/service: ServiceManager.cpp

Log message:
fix bz441580: conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.77&r2=1.45.2.78
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/StorageReport.py.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.20.2.7&r2=1.20.2.8
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/ClusterStatus.cpp.diff?cvsroot=cluster&only_with_t ag=RHEL5&r1=1.15.2.6&r2=1.15.2.7
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/rpm/PackageHandler.cpp.diff?cvsroot=cluster&only_with_ tag=RHEL5&r1=1.9.2.8&r2=1.9.2.9
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/service/ServiceManager.cpp.diff?cvsroot=cluster&only_with_ tag=RHEL5&r1=1.5.2.6&r2=1.5.2.7

--- conga/conga.spec.in.in 2008/04/11 06:54:43 1.45.2.77
+++ conga/conga.spec.in.in 2008/04/14 15:58:35 1.45.2.78
@@ -292,6 +292,7 @@
### changelog ###
%changelog
* Thu Apr 10 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
+- Fix bz441580 (conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used)
- Fix bz441573 ("nodename" field for fence_scsi disabled when adding a new fence device/instance)

* Wed Feb 27 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-6
--- conga/luci/site/luci/Extensions/StorageReport.py 2008/01/23 04:44:32 1.20.2.7
+++ conga/luci/site/luci/Extensions/StorageReport.py 2008/04/14 15:58:35 1.20.2.8
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2007 Red Hat, Inc.
+# Copyright (C) 2006-2008 Red Hat, Inc.
#
# This program is free software; you can redistribute
# it and/or modify it under the terms of version 2 of the
--- conga/ricci/modules/cluster/ClusterStatus.cpp 2008/02/12 17:40:38 1.15.2.6
+++ conga/ricci/modules/cluster/ClusterStatus.cpp 2008/04/14 15:58:35 1.15.2.7
@@ -218,6 +218,7 @@
run_initd("clvmd", true, false);
run_initd("gfs", true, false);
run_initd("rgmanager", true, true);
+ run_initd("scsi_reserve", true, false);

if (enable_services) {
// enable them on boot
@@ -239,6 +240,7 @@
run_chkconfig("clvmd", true);
run_chkconfig("gfs", true);
run_chkconfig("rgmanager", true);
+ run_chkconfig("scsi_reserve", true);
}
} else if (stat.get_attr("cluster_version") == "5") {
try {
@@ -266,6 +268,7 @@
run_initd("clvmd", true, false);
run_initd("gfs", true, false);
run_initd("gfs2", true, false);
+ run_initd("scsi_reserve", true, false);
run_initd("rgmanager", true, true);

if (enable_services) {
@@ -278,6 +281,7 @@
run_chkconfig("clvmd", true);
run_chkconfig("gfs", true);
run_chkconfig("gfs2", true);
+ run_chkconfig("scsi_reserve", true);
run_chkconfig("rgmanager", true);
}
} else {
--- conga/ricci/modules/rpm/PackageHandler.cpp 2008/02/12 17:40:39 1.9.2.8
+++ conga/ricci/modules/rpm/PackageHandler.cpp 2008/04/14 15:58:35 1.9.2.9
@@ -493,6 +493,7 @@

PackageSet set("Clustered Storage");
set.packages.push_back("lvm2-cluster");
+ set.packages.push_back("sg3_utils");

if (RHEL4 || FC5) {
set.packages.push_back("GFS");
--- conga/ricci/modules/service/ServiceManager.cpp 2008/02/12 17:40:39 1.5.2.6
+++ conga/ricci/modules/service/ServiceManager.cpp 2008/04/14 15:58:35 1.5.2.7
@@ -519,11 +519,13 @@
descr = "Shared Storage: clvmd, gfs";
servs.push_back("clvmd");
servs.push_back("gfs");
+ servs.push_back("scsi_reserve");
} else if (RHEL5 || FC6) {
descr = "Shared Storage: clvmd, gfs, gfs2";
servs.push_back("clvmd");
servs.push_back("gfs");
servs.push_back("gfs2");
+ servs.push_back("scsi_reserve");
}
s = ServiceSet(name, descr);
if (populate_set(s, servs))
 
Old 04-18-2008, 08:34 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-04-18 20:34:51

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: cluster_adapters.py

Log message:
Fix bz443152

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.81&r2=1.45.2.82
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&only_with _tag=RHEL5&r1=1.120.2.43&r2=1.120.2.44

--- conga/conga.spec.in.in 2008/04/18 04:15:52 1.45.2.81
+++ conga/conga.spec.in.in 2008/04/18 20:34:50 1.45.2.82
@@ -292,6 +292,7 @@
### changelog ###
%changelog
* Thu Apr 10 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
+- Fix bz443152 (Exception generated when adding or updating failover domains)
- Fix bz441580 (conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used)
- Fix bz441573 ("nodename" field for fence_scsi disabled when adding a new fence device/instance)
- Fix bz442997 (Luci inserts "hostname" instead of "ipaddr" for rsa II fencing device)
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2008/03/12 15:13:12 1.120.2.43
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2008/04/18 20:34:50 1.120.2.44
@@ -1017,7 +1017,7 @@
luci_log.debug_verbose('validateFdom0: no model')
return (False, { 'errors': [ 'Unable to retrieve the cluster configuration for %s. The configuration XML may contain errors' % clustername ]})

- ret = validate_fdom(self, request)
+ ret = validate_fdom(model, request)
if ret[0] is not True:
return ret
 
Old 04-28-2008, 03:49 AM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL4
Changes by: rmccabe@sourceware.org 2008-04-28 03:49:08

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: ResourceHandler.py
make : version.in

Log message:
- Fix bz444195 (conga writes 'exportpath' instead of 'export' attribute for netfs)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL4&r1=1.67.2.27&r2=1.67.2.28
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ResourceHandler.py.diff?cvsroot=cluster&only_with_ tag=RHEL4&r1=1.2.2.2&r2=1.2.2.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/make/version.in.diff?cvsroot=cluster&only_with_tag=RHEL 4&r1=1.28.2.12&r2=1.28.2.13

--- conga/conga.spec.in.in 2008/04/21 18:15:17 1.67.2.27
+++ conga/conga.spec.in.in 2008/04/28 03:49:07 1.67.2.28
@@ -300,6 +300,9 @@


%changelog
+* Mon Apr 29 2008 Ryan McCabe <rmccabe@redhat.com> 0.11.1-4
+- Fix bz444195 (conga writes 'exportpath' instead of 'export' attribute for netfs)
+
* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.11.1-3
- Fix bz442729 (Add UI support for ssh for fence agents that now support it)

--- conga/luci/site/luci/Extensions/ResourceHandler.py 2008/03/25 01:27:12 1.2.2.2
+++ conga/luci/site/luci/Extensions/ResourceHandler.py 2008/04/28 03:49:07 1.2.2.3
@@ -271,10 +271,10 @@
luci_log.debug_verbose('addNfsm7: %s' % err)

try:
- exportpath = form['exportpath'].strip()
+ exportpath = form['export'].strip()
if not exportpath:
raise Exception, 'No export path was given for "%s"' % rname
- res.addAttribute('exportpath', exportpath)
+ res.addAttribute('export', exportpath)
except Exception, e:
err = str(e)
errors.append(err)
--- conga/make/version.in 2008/04/21 18:16:00 1.28.2.12
+++ conga/make/version.in 2008/04/28 03:49:07 1.28.2.13
@@ -1,2 +1,2 @@
VERSION=0.11.1
-RELEASE=3
+RELEASE=4
 
Old 04-28-2008, 03:54 AM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-04-28 03:54:18

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: ResourceHandler.py
make : version.in

Log message:
- Fix bz444381 (conga writes 'exportpath' instead of 'export' attribute for netfs)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.83&r2=1.45.2.84
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ResourceHandler.py.diff?cvsroot=cluster&only_with_ tag=RHEL5&r1=1.1.4.3&r2=1.1.4.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/make/version.in.diff?cvsroot=cluster&only_with_tag=RHEL 5&r1=1.21.2.37&r2=1.21.2.38

--- conga/conga.spec.in.in 2008/04/23 17:27:10 1.45.2.83
+++ conga/conga.spec.in.in 2008/04/28 03:54:18 1.45.2.84
@@ -291,7 +291,10 @@

### changelog ###
%changelog
--* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
+* Mon Apr 27 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-9
+- Fix bz444381 (conga writes 'exportpath' instead of 'export' attribute for netfs)
+
+* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
- Fix bz441580 (conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used)
- Fix bz441573 ("nodename" field for fence_scsi disabled when adding a new fence device/instance)
- Fix bz442997 (Luci inserts "hostname" instead of "ipaddr" for rsa II fencing device)
--- conga/luci/site/luci/Extensions/ResourceHandler.py 2008/03/12 15:13:12 1.1.4.3
+++ conga/luci/site/luci/Extensions/ResourceHandler.py 2008/04/28 03:54:18 1.1.4.4
@@ -274,7 +274,7 @@
exportpath = form['exportpath'].strip()
if not exportpath:
raise Exception, 'No export path was given for "%s"' % rname
- res.addAttribute('exportpath', exportpath)
+ res.addAttribute('export', exportpath)
except Exception, e:
err = str(e)
errors.append(err)
--- conga/make/version.in 2008/04/11 06:54:43 1.21.2.37
+++ conga/make/version.in 2008/04/28 03:54:18 1.21.2.38
@@ -1,2 +1,2 @@
VERSION=0.12.0
-RELEASE=8
+RELEASE=9
 
Old 05-12-2008, 05:04 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-05-12 17:04:41

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: LuciValidation.py
make : version.in
ricci/modules/cluster/clumon: Makefile

Log message:
Fix bz444210 (Adding multiple fence devices at the same time causes duplicate entries)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.85&r2=1.45.2.86
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciValidation.py.diff?cvsroot=cluster&only_with_t ag=RHEL5&r1=1.6.2.3&r2=1.6.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/make/version.in.diff?cvsroot=cluster&only_with_tag=RHEL 5&r1=1.21.2.39&r2=1.21.2.40
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/modules/cluster/clumon/Makefile.diff?cvsroot=cluster&only_with_tag=RHEL5& r1=1.4.2.3&r2=1.4.2.4

--- conga/conga.spec.in.in 2008/05/12 15:13:32 1.45.2.85
+++ conga/conga.spec.in.in 2008/05/12 17:04:41 1.45.2.86
@@ -292,6 +292,7 @@
### changelog ###
%changelog
* Mon Apr 27 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-9
+- Fix bz444210 (Adding multiple fence devices at the same time causes duplicate entries)
- Fix bz444381 (conga writes 'exportpath' instead of 'export' attribute for netfs)

* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
--- conga/luci/site/luci/Extensions/LuciValidation.py 2008/03/12 15:13:12 1.6.2.3
+++ conga/luci/site/luci/Extensions/LuciValidation.py 2008/05/12 17:04:41 1.6.2.4
@@ -87,7 +87,7 @@
fence_method.addAttribute('name', str(method_id))
levels[min(1, fence_level - 1)] = fence_method
except Exception, e:
- method_id = fence_level
+ method_id = str(fence_level)
fence_method = Method()
fence_method.addAttribute('name', str(method_id))

--- conga/make/version.in 2008/05/12 15:13:32 1.21.2.39
+++ conga/make/version.in 2008/05/12 17:04:41 1.21.2.40
@@ -1,2 +1,2 @@
-VERSION=0.14.0
-RELEASE=1
+VERSION=0.12.0
+RELEASE=9
--- conga/ricci/modules/cluster/clumon/Makefile 2008/05/12 15:13:33 1.4.2.3
+++ conga/ricci/modules/cluster/clumon/Makefile 2008/05/12 17:04:41 1.4.2.4
@@ -11,7 +11,6 @@
top_srcdir=../../..
UNINSTALL=${top_srcdir}/scripts/uninstall.pl

-include ${top_srcdir}/make/version.in
include ${top_srcdir}/make/defines.mk

all:
 
Old 05-12-2008, 05:09 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL4
Changes by: rmccabe@sourceware.org 2008-05-12 17:09:53

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: LuciValidation.py
make : version.in

Log message:
fix 446082: Adding multiple fence devices at the same time causes duplicate entries

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL4&r1=1.67.2.28&r2=1.67.2.29
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/LuciValidation.py.diff?cvsroot=cluster&only_with_t ag=RHEL4&r1=1.9.2.1&r2=1.9.2.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/make/version.in.diff?cvsroot=cluster&only_with_tag=RHEL 4&r1=1.28.2.13&r2=1.28.2.14

--- conga/conga.spec.in.in 2008/04/28 03:49:07 1.67.2.28
+++ conga/conga.spec.in.in 2008/05/12 17:09:53 1.67.2.29
@@ -300,6 +300,9 @@


%changelog
+* Mon May 12 2008 Ryan McCabe <rmccabe@redhat.com> 0.11.1-5
+- Fix bz446082 (Adding multiple fence devices at the same time causes duplicate entries)
+
* Mon Apr 29 2008 Ryan McCabe <rmccabe@redhat.com> 0.11.1-4
- Fix bz444195 (conga writes 'exportpath' instead of 'export' attribute for netfs)

--- conga/luci/site/luci/Extensions/LuciValidation.py 2008/03/25 01:27:12 1.9.2.1
+++ conga/luci/site/luci/Extensions/LuciValidation.py 2008/05/12 17:09:53 1.9.2.2
@@ -87,7 +87,7 @@
fence_method.addAttribute('name', str(method_id))
levels[min(1, fence_level - 1)] = fence_method
except Exception, e:
- method_id = fence_level
+ method_id = str(fence_level)
fence_method = Method()
fence_method.addAttribute('name', str(method_id))

--- conga/make/version.in 2008/04/28 03:49:07 1.28.2.13
+++ conga/make/version.in 2008/05/12 17:09:53 1.28.2.14
@@ -1,2 +1,2 @@
VERSION=0.11.1
-RELEASE=4
+RELEASE=5
 
Old 07-14-2008, 04:29 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-07-14 16:29:29

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: cluster_adapters.py

Log message:
Fix bz433089

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.92&r2=1.45.2.93
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&only_with _tag=RHEL5&r1=1.120.2.44&r2=1.120.2.45

--- conga/conga.spec.in.in 2008/07/14 16:03:34 1.45.2.92
+++ conga/conga.spec.in.in 2008/07/14 16:29:28 1.45.2.93
@@ -301,6 +301,7 @@
- Fix bz206570 (RFE: vm list from ricci)
- Fix bz430737 (Conga should install the 'cmirror' package when clustered storage is requested)
- Fix bz379461 (Conga doesn't have the option for modulename for drac fencing)
+- Fix bz433089 (when adding multiple nodes the order is reversed.)

* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
- Fix bz441580 (conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used)
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2008/04/18 20:34:50 1.120.2.44
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2008/07/14 16:29:28 1.120.2.45
@@ -545,7 +545,9 @@
next_node_id = 1

try:
- for x in system_list:
+ skeys = system_list.keys()
+ skeys.sort()
+ for x in skeys:
i = system_list[x]

try:
 
Old 07-15-2008, 06:20 PM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-07-15 18:20:02

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: StorageReport.py
luci/storage : form-macros

Log message:
fix bz414551

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.96&r2=1.45.2.97
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/StorageReport.py.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.20.2.8&r2=1.20.2.9
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&only_with_tag=RHEL5&r1 =1.17.2.13&r2=1.17.2.14

--- conga/conga.spec.in.in 2008/07/14 22:21:45 1.45.2.96
+++ conga/conga.spec.in.in 2008/07/15 18:19:58 1.45.2.97
@@ -305,6 +305,7 @@
- Fix bz441581 (Don't allow both label and device for qdisk config if only one can be specified)
- Fix bz223785 (Storage 'Display Devices by' option does not work)
- Fix bz250439 (conga is unable to delete snapshot volumes)
+- Fix bz414551 (Sector size list is improperly sorted)

* Fri Apr 18 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.0-8
- Fix bz441580 (conga should install 'sg3_utils' and start service 'scsi_reserve' when scsi fencing is used)
--- conga/luci/site/luci/Extensions/StorageReport.py 2008/04/14 15:58:35 1.20.2.8
+++ conga/luci/site/luci/Extensions/StorageReport.py 2008/07/15 18:19:58 1.20.2.9
@@ -1621,9 +1621,10 @@
mutable = var.getAttribute('mutable') == 'true'
var_type = var.getAttribute('type')
value = var.getAttribute('value')
+ def_value = value

d_units = '
- if name in ('size', 'extent_size', 'block_size', 'size_free', 'partition_begin' ):
+ if name in ('size', 'extent_size', 'block_size', 'journal_size', 'size_free', 'partition_begin' ):
d_units = 'bytes'
if 'percent' in name:
d_units = '%'
@@ -1697,6 +1698,7 @@
'name': name,
'pretty_name': get_pretty_prop_name(name),
'type': d_type,
+ 'default_val': def_value,
'value': d_value,
'units': d_units,
'validation': validation_data,
--- conga/luci/storage/form-macros 2008/07/14 21:59:09 1.17.2.13
+++ conga/luci/storage/form-macros 2008/07/15 18:19:59 1.17.2.14
@@ -867,21 +867,28 @@

<tal:block tal:condition="pythonrop_type == 'select'">
<select tal:define="prop_options prop/value" tal:attributes="name p">
- <tal:block
- tal:condition="python: prop_units != 'bytes'"
- tal:repeat="prop_opt prop_options">
- <option tal:attributes="value prop_opt" />
- <span tal:replace="prop_opt" />
+ <tal:block tal:condition="python: prop_units != 'bytes'">
+ <tal:block tal:repeat="prop_opt prop_options">
+ <option tal:attributes="value prop_opt" />
+ <span tal:replace="prop_opt" />
+ </tal:block>
</tal:block>
- <tal:block
- tal:condition="python: prop_units == 'bytes'"
- tal:repeat="prop_opt prop_options">
- <option tal:attributes="value prop_opt" />
- <span
+
+ <tal:block tal:condition="python: prop_units == 'bytes'">
+ <tal:block
tal:define="
- dummy python: here.bytes_to_value_units(prop_opt);
- value python: str(dummy[0]) + ' ' + str(dummy[1])"
- tal:replace="value" />
+ dummy2 python:map(lambda x: int(x), prop_options);
+ dummy3 python:dummy2.sort()"
+ tal:repeat="prop_opt dummy2">
+ <option tal:attributes="
+ value prop_opt;
+ selected pythonrop.get('default_val') == str(prop_opt) and 'selected' or '" />
+ <span
+ tal:define="
+ dummy python: here.bytes_to_value_units(prop_opt);
+ value python: str(dummy[0]) + ' ' + str(dummy[1])"
+ tal:replace="value" />
+ </tal:block>
</tal:block>
</select>
</tal:block>
 
Old 09-17-2008, 06:29 AM
 
Default conga ./conga.spec.in.in luci/site/luci/Extens ...

CVSROOT: /cvs/cluster
Module name: conga
Branch: RHEL5
Changes by: rmccabe@sourceware.org 2008-09-17 06:29:55

Modified files:
. : conga.spec.in.in
luci/site/luci/Extensions: RicciQueries.py cluster_adapters.py

Log message:
Fix bz459623

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=cluster&only_with_ta g=RHEL5&r1=1.45.2.101&r2=1.45.2.102
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/RicciQueries.py.diff?cvsroot=cluster&only_with_tag =RHEL5&r1=1.1.4.10&r2=1.1.4.11
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&only_with _tag=RHEL5&r1=1.120.2.46&r2=1.120.2.47

--- conga/conga.spec.in.in 2008/08/27 14:59:17 1.45.2.101
+++ conga/conga.spec.in.in 2008/09/17 06:29:54 1.45.2.102
@@ -315,6 +315,7 @@
* Wed Aug 27 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.1-4
- Fix bz459562 (charset configuration fix for luci)
- Fix bz459469 (An unknown device type was given: "gnbd.")
+- Fix bz459623 (Conga error adding new node to existing cluster)

* Thu Aug 07 2008 Ryan McCabe <rmccabe@redhat.com> 0.12.1-3
- More fixes for bz429350
--- conga/luci/site/luci/Extensions/RicciQueries.py 2008/03/12 15:13:12 1.1.4.10
+++ conga/luci/site/luci/Extensions/RicciQueries.py 2008/09/17 06:29:54 1.1.4.11
@@ -6,12 +6,10 @@
# Free Software Foundation.

from xml.dom import minidom
-from ricci_communicator import RicciCommunicator
+from ricci_communicator import RicciCommunicator, batch_status
from LuciSyslog import get_logger
from conga_constants import LUCI_DEBUG_MODE

-
-
luci_log = get_logger()

def addClusterNodeBatch(cluster_name,
@@ -115,7 +113,7 @@
batch.append('<module name="cluster">')
batch.append('<request API_version="1.0">')
batch.append('<function_call name="start_node">')
- batch.append('<var mutable="false" name="enable_services" type="boolean" value="true"/>"')
+ batch.append('<var mutable="false" name="enable_services" type="boolean" value="true"/>')
batch.append('</function_call>')
batch.append('</request>')
batch.append('</module>')
@@ -342,6 +340,30 @@
ricci_xml = rc.batch_run(batch_str)
return batchAttemptResult(ricci_xml)

+def setClusterConfSync(rc, clusterconf, propagate=True):
+ if propagate is True:
+ propg = 'true'
+ else:
+ propg = 'false'
+
+ conf = str(clusterconf).replace('<?xml version="1.0"?>', ')
+ conf = conf.replace('<?xml version="1.0" ?>', ')
+ conf = conf.replace('<? xml version="1.0"?>', ')
+ conf = conf.replace('<? xml version="1.0" ?>', ')
+
+ batch_str = '<module name="cluster"><request API_version="1.0"><function_call name="set_cluster.conf"><var type="boolean" name="propagate" mutable="false" value="%s"/><var type="xml" mutable="false" name="cluster.conf">%s</var></function_call></request></module>' % (propg, conf)
+
+ ricci_xml = rc.batch_run(batch_str, async=False)
+ if not ricci_xml:
+ return False
+ batch_xml = ricci_xml.getElementsByTagName('batch')
+ if not batch_xml:
+ return None
+ (num, total) = batch_status(batch_xml[0])
+ if num == total:
+ return True
+ return False
+
def getNodeLogs(rc):
from time import time, ctime

--- conga/luci/site/luci/Extensions/cluster_adapters.py 2008/07/17 16:36:56 1.120.2.46
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2008/09/17 06:29:54 1.120.2.47
@@ -378,8 +378,8 @@

if cluster_os is None:
if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('Unable to determine cluster OS for %s' % clustername)
- return (False, { 'errors': [ 'Unable to determine the version of the cluster suite this cluster is running' ] })
+ luci_log.debug_verbose('Unable to determine the operating system version for %s' % clustername)
+ return (False, { 'errors': [ 'Unable to determine the version of the cluster software this cluster is running' ] })

shared_storage = False
try:
@@ -547,41 +547,22 @@
try:
skeys = system_list.keys()
skeys.sort()
+ batch_node = rq.addClusterNodeBatch(clustername,
+ True,
+ True,
+ shared_storage,
+ False,
+ download_pkgs,
+ model.GULM_ptr is not None,
+ reboot_nodes)
+ batch_node_xml = minidom.parseString('<batch>%s</batch>' % batch_node)
+ batch_node_xml = batch_node_xml.getElementsByTagName('batch')[0]
+ if not batch_node_xml:
+ raise Exception, 'batch is blank'
+
for x in skeys:
i = system_list[x]
-
- try:
- batch_node = rq.addClusterNodeBatch(clustername,
- True,
- True,
- shared_storage,
- False,
- download_pkgs,
- model.GULM_ptr is not None,
- reboot_nodes)
- if not batch_node:
- raise Exception, 'batch is blank'
- system_list[x]['batch'] = batch_node
- except Exception, e:
- cur_system['errors'] = True
- incomplete = True
-
- try:
- if not cur_system['prev_auth']:
- rc.unauth()
- del cur_system['trusted']
- except Exception, e:
- if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('VACN12: %s: %r %s'
- % (cur_host, e, str(e)))
-
- errors.append('Unable to initiate cluster join for node "%s"'
- % cur_host)
- if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('VACN13: %s: %r %s'
- % (cur_host, e, str(e)))
- continue
-
+ system_list[x]['batch'] = batch_node_xml
next_node_id += 1
new_node = ClusterNode()
new_node.attr_hash['name'] = str(i['host'])
@@ -600,36 +581,20 @@
if not conf_str:
raise Exception, 'Unable to save the new cluster model'

- batch_number, result = rq.setClusterConf(cluster_ricci, conf_str)
- if not batch_number or not result:
- raise Exception, 'batch or result is None'
+ # Propagate the new cluster.conf to the existing nodes
+ # before having any of the new nodes join. If this fails,
+ # abort the whole process.
+ result = rq.setClusterConfSync(cluster_ricci, conf_str)
+ if result != True:
+ errors.append('Unable to update the cluster configuration on existing cluster nodes')
+ request.SESSION.set('add_node', add_cluster)
+ return (False, { 'errors': errors, 'messages': messages })
except Exception, e:
incomplete = True
errors.append('Unable to generate the new cluster configuration')
if LUCI_DEBUG_MODE is True:
luci_log.debug_verbose('VACN14: %s' % e)

- # Propagate the new cluster.conf to the existing nodes
- # before having any of the new nodes join. If this fails,
- # abort the whole process.
- try:
- while True:
- batch_ret = cluster_ricci.batch_status(batch_number)
- code = batch_ret[0]
- if code is True:
- break
- if code == -1:
- errors.append(batch_ret[1])
- raise Exception, str(batch_ret[1])
- if code is False:
- time.sleep(0.5)
- except Exception, e:
- incomplete = True
- errors.append('Unable to update the cluster node list for %s'
- % clustername)
- if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('VACN15: %r %s' % (e, str(e)))
-
if incomplete or len(errors) > 0:
request.SESSION.set('add_node', add_cluster)
return (False, { 'errors': errors, 'messages': messages })
 

Thread Tools




All times are GMT. The time now is 01:26 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org