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> |
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)) |
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 |
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 |
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 |
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: |
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 |
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: |
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="python:prop_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 python:prop.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> |
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 }) |
| All times are GMT. The time now is 07:07 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.