From mboxrd@z Thu Jan 1 00:00:00 1970 From: rmccabe@sourceware.org Date: 7 Feb 2007 16:55:16 -0000 Subject: [Cluster-devel] conga/luci cluster/form-macros site/luci/Exten ... Message-ID: <20070207165516.20103.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: rmccabe at sourceware.org 2007-02-07 16:55:16 Modified files: luci/cluster : form-macros luci/site/luci/Extensions: ModelBuilder.py cluster_adapters.py Added files: luci/site/luci/Extensions: FenceXVMd.py Log message: - Support for adding and deleting a fence_xvmd tag from cluster.conf Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.177&r2=1.178 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceXVMd.py.diff?cvsroot=cluster&r1=NONE&r2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ModelBuilder.py.diff?cvsroot=cluster&r1=1.20&r2=1.21 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.229&r2=1.230 --- conga/luci/cluster/form-macros 2007/02/05 19:52:44 1.177 +++ conga/luci/cluster/form-macros 2007/02/07 16:55:15 1.178 @@ -943,6 +943,13 @@ tal:attributes="value clusterinfo/pjd" /> + + Run XVM fence daemon + + + + /cvs/cluster/conga/luci/site/luci/Extensions/FenceXVMd.py,v --> standard output revision 1.1 --- conga/luci/site/luci/Extensions/FenceXVMd.py +++ - 2007-02-07 16:55:16.669210000 +0000 @@ -0,0 +1,14 @@ +import string +from TagObject import TagObject + +TAG_NAME = "fence_xvmd" + +class FenceXVMd(TagObject): + def __init__(self): + TagObject.__init__(self) + self.TAG_NAME = TAG_NAME + #Have autostart set by default + + def getProperties(self): + stringbuf = "" + return stringbuf --- conga/luci/site/luci/Extensions/ModelBuilder.py 2007/02/05 19:52:44 1.20 +++ conga/luci/site/luci/Extensions/ModelBuilder.py 2007/02/07 16:55:15 1.21 @@ -27,6 +27,7 @@ from Samba import Samba from Multicast import Multicast from FenceDaemon import FenceDaemon +from FenceXVMd import FenceXVMd from Netfs import Netfs from Clusterfs import Clusterfs from Resources import Resources @@ -56,6 +57,7 @@ 'rm':Rm, 'service':Service, 'vm':Vm, + 'fence_xvmd':FenceXVMd, 'resources':Resources, 'failoverdomain':FailoverDomain, 'failoverdomains':FailoverDomains, @@ -85,6 +87,7 @@ FENCEDAEMON_PTR_STR="fence_daemon" SERVICE="service" VM="vm" +FENCE_XVMD_STR="fence_xvmd" GULM_TAG_STR="gulm" MCAST_STR="multicast" CMAN_PTR_STR="cman" @@ -119,6 +122,7 @@ self.isModified = False self.quorumd_ptr = None self.usesQuorumd = False + self.fence_xvmd_ptr = None self.unusual_items = list() self.isVirtualized = False if mcast_addr == None: @@ -217,6 +221,8 @@ self.CMAN_ptr = new_object elif parent_node.nodeName == MCAST_STR: self.usesMulticast = True + elif parent_node.nodeName == FENCE_XVMD_STR: + self.fence_xvmd_ptr = new_object else: return None @@ -591,6 +597,22 @@ raise GeneralError('FATAL',"Couldn't find VM name %s in current list" % name) + def hasFenceXVM(self): + return self.fence_xvmd_ptr is not None + + # Right now the fence_xvmd tag is empty, but allow the object + # to be passed in case attributes are added in the future. + def addFenceXVM(self, obj): + if self.fence_xvmd_ptr is not None: + self.cluster_ptr.removeChild(self.fence_xvmd_ptr) + self.cluster_ptr.addChild(obj) + self.fence_xvmd_ptr = obj + + def delFenceXVM(self): + if self.fence_xvmd_ptr is not None: + self.cluster_ptr.removeChild(self.fence_xvmd_ptr) + self.fence_xvmd_ptr = None + def getFenceDevices(self): if self.fencedevices_ptr == None: return list() --- conga/luci/site/luci/Extensions/cluster_adapters.py 2007/02/05 19:56:18 1.229 +++ conga/luci/site/luci/Extensions/cluster_adapters.py 2007/02/07 16:55:15 1.230 @@ -24,6 +24,7 @@ from Tomcat5 import Tomcat5 from OpenLDAP import OpenLDAP from Vm import Vm +from FenceXVMd import FenceXVMd from Script import Script from Samba import Samba from QuorumD import QuorumD @@ -1172,6 +1173,18 @@ except ValueError, e: errors.append('Invalid post join delay: %s' % str(e)) + run_xvmd = False + try: + run_xvmd = form.has_key('run_xvmd') + except: + pass + + if run_xvmd is True and not model.hasFenceXVM(): + fenceXVMd = FenceXVMd() + model.addFenceXVM(fenceXVMd) + elif not run_xvmd: + model.delFenceXVM() + try: fd = model.getFenceDaemonPtr() old_pj_delay = fd.getPostJoinDelay() @@ -3513,6 +3526,7 @@ #new cluster params - if rhel5 #------------- + clumap['fence_xvmd'] = model.hasFenceXVM() gulm_ptr = model.getGULMPtr() if not gulm_ptr: #Fence Daemon Props