From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci/site/luci/Extensions FenceHandler.p ...
Date: 21 Sep 2007 03:02:48 -0000 [thread overview]
Message-ID: <20070921030248.18394.qmail@sourceware.org> (raw)
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-09-21 03:02:47
Modified files:
luci/site/luci/Extensions: FenceHandler.py cluster_adapters.py
luci/site/luci/Extensions/ClusterModel: ModelBuilder.py
Log message:
Factor fence addition and deletion out of the luci code and stuff it into the cluster model code.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/FenceHandler.py.diff?cvsroot=cluster&r1=1.23&r2=1.24
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/cluster_adapters.py.diff?cvsroot=cluster&r1=1.271&r2=1.272
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py.diff?cvsroot=cluster&r1=1.10&r2=1.11
--- conga/luci/site/luci/Extensions/FenceHandler.py 2007/09/20 22:37:32 1.23
+++ conga/luci/site/luci/Extensions/FenceHandler.py 2007/09/21 03:02:46 1.24
@@ -51,13 +51,6 @@
ILLEGAL_CHARS = re.compile(':| ')
return ILLEGAL_CHARS.sub('_', name)
-def check_unique_fd_name(model, name):
- fds = model.getFenceDevices()
- for fd in fds:
- if fd.getName() == name:
- return False
- return True
-
def validateNewFenceDevice(form, model):
from ClusterModel.FenceDevice import FenceDevice
fencedev = FenceDevice()
@@ -65,8 +58,7 @@
try:
ret = validate_fencedevice(form, model, fencedev)
if len(ret) < 1:
- fencedevptr = model.getFenceDevicePtr()
- fencedevptr.addChild(fencedev)
+ model.addFenceDevice(fencedev)
model.setModified(True)
return (FD_VAL_SUCCESS, fencedev.getAttribute('name'))
except Exception, e:
@@ -88,11 +80,7 @@
fencedev = None
try:
- fencedevs = model.getFenceDevices()
- for fd in fencedevs:
- if fd.getName().strip() == old_fence_name:
- fencedev = fd
- break
+ fencedev = model.getFenceDeviceByName(old_fence_name)
if fencedev is None:
raise Exception, 'fencedev is None'
except Exception, e:
@@ -805,12 +793,13 @@
raise Exception, 'blank'
except Exception, e:
return [ FD_PROVIDE_NAME ]
+
if old_fence_name != fence_name:
- if check_unique_fd_name(model, fence_name) is False:
+ if model.getFenceDeviceByName(fence_name) is not None:
return [ FD_PROVIDE_NAME ]
name_change = True
else:
- if check_unique_fd_name(model, fence_name) is False:
+ if model.getFenceDeviceByName(fence_name) is not None:
return [ FD_PROVIDE_NAME ]
try:
--- conga/luci/site/luci/Extensions/cluster_adapters.py 2007/09/20 22:37:32 1.271
+++ conga/luci/site/luci/Extensions/cluster_adapters.py 2007/09/21 03:02:47 1.272
@@ -1794,34 +1794,23 @@
fencedev_name = fvar['orig_name']
if fencedev_name is None:
- return (False, {'errors': ['No device name in form submission']})
+ return (False, {'errors': ['No fence device name in form submission']})
- # XXX - FIXME: use new model calls to do this.
- fdev_to_delete = None
- fdevs = model.getFenceDevices()
- for fdev in fdevs:
- if fdev.getName().strip() == fencedev_name:
- fdev_to_delete = fdev
- break
-
- if fdev_to_delete is None:
- if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('DFD3: Could not find fence device "%s" in model' % fencedev_name)
- return (False, {'errors': ['Could not find fence device "%s" in model' % fencedev_name ]})
-
- fdev_ptr = model.getFenceDevicePtr()
try:
- fdev_ptr.removeChild(fdev_to_delete)
- except:
- errors.append('Fence device "%s" could not be removed from configuration' % fencedev_name)
- return (False, { 'errors': errors })
-
- try:
- model.removeFenceInstancesForFenceDevice(fencedev_name)
+ fdev = model.getFenceDeviceByName(fencedev_name)
+ if fdev:
+ if model.deleteFenceDevice(fdev) is not True:
+ raise Exception, 'failed to remove %s' % fdev.getName()
+ model.removeFenceInstancesForFenceDevice(fencedev_name)
+ else:
+ raise Exception, 'no fence device named "%s" was found' \
+ % fencedev_name
except Exception, e:
if LUCI_DEBUG_MODE is True:
- luci_log.debug_verbose('DFD4: error removing %s: %r %s' \
+ luci_log.debug_verbose('DFD3: %s: %r %s' \
% (fencedev_name, e, str(e)))
+ return (False, { 'errors': [ 'Error removing fence device %s: %s' \
+ % (fencedev_name, str(e)) ]})
ret = propagateClusterConfAsync(self, model, None, CLUSTER_CONFIG,
'Removing fence device "%s"' % fencedev_name)
--- conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2007/09/20 22:37:32 1.10
+++ conga/luci/site/luci/Extensions/ClusterModel/ModelBuilder.py 2007/09/21 03:02:47 1.11
@@ -335,9 +335,10 @@
def getFenceDeviceByName(self, name):
device = filter(lambda x: x.getName() == name, self.getFenceDevices())
- if len(device) > 1:
- raise Exception, '%d fence devices named %s exist' % (len(device), name)
- if len(device) < 1:
+ num_fdevs = len(device)
+ if num_fdevs > 1:
+ raise Exception, '%d fence devices named %s exist' % (num_fdevs, name)
+ if num_fdevs < 1:
return None
return device[0]
@@ -621,6 +622,9 @@
self.cluster_ptr.removeChild(self.fence_xvmd_ptr)
self.fence_xvmd_ptr = None
+ def addFenceDevice(self, device):
+ self.fencedevices_ptr.addChild(device)
+
def deleteFenceDevice(self, device):
if self.fencedevices_ptr is None or device is None:
return False
next reply other threads:[~2007-09-21 3:02 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-21 3:02 rmccabe [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-08-06 20:17 [Cluster-devel] conga/luci/site/luci/Extensions FenceHandler.p rmccabe
2008-01-02 21:00 rmccabe
2007-10-03 19:40 rmccabe
2007-07-26 4:36 rmccabe
2007-05-15 21:42 rmccabe
2007-01-19 21:48 rmccabe
2007-01-19 19:41 rmccabe
2007-01-11 22:49 rmccabe
2006-12-20 22:06 jparsons
2006-12-20 20:24 jparsons
2006-12-18 22:16 jparsons
2006-12-18 15:18 jparsons
2006-12-18 4:44 jparsons
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=20070921030248.18394.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).