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 > Debian > Debian User

 
 
LinkBack Thread Tools
 
Old 02-05-2009, 10:01 PM
David Lehman
 
Default Refactor and make functional the getDmDeps and getDmTarget functions.

Moved the common code to find the map into a separate function, getMap,
which both getDmDeps and getDmTarget now use.
---
__init__.py | 59 ++++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 42 insertions(+), 17 deletions(-)

diff --git a/__init__.py b/__init__.py
index 7c09a1b..03a4802 100644
--- a/__init__.py
+++ b/__init__.py
@@ -201,6 +201,36 @@ def getRaidSets(*disks):
rsList.append(set)
return rsList

+def getMap(uuid = None, major = None, minor = None, name = None):
+ """ Return a map that matches the given parameters.
+
+ uuid and name are strings. major and minor are converted to long before
+ being compared.
+
+ major and minor should be specified as a pair -- that is to say one
+ should either give both of them or neither of them.
+
+ Returns None if the map is not found.
+ """
+ # don't bother if there are no specs to search for
+ if uuid is None and major is None and minor is None and name is None:
+ return None
+
+ # Return None if we don't find the map.
+ map = None
+ for _map in dm.maps():
+ if (name is None or
+ (_map.name is not None and _map.name == name)) and
+ (uuid is None or
+ (_map.uuid is not None and _map.uuid == uuid)) and
+ ((major is None or minor is None) or
+ (_map.dev.major is not None and _map.dev.minor is not None and
+ _map.dev.major == long(major) and _map.dev.minor == long(minor))):
+ map = _map
+ break
+
+ return map
+
def getDmDeps(uuid = None, major = None, minor = None, name = None):
""" Retrieve the deps for a specified map/device.

@@ -211,14 +241,12 @@ def getDmDeps(uuid = None, major = None, minor = None, name = None):
Returns () when no deps are found for the specified device.
Returns None when device was not found.
"""
- # If has dpes, return a set of maps, else return an empty set.
- for map in dm.maps():
- if (map.name and map.name == name) or
- (map.uuid is not None and map.uuid == uuid) or
- (map.dev.minor is not None and map.dev.minor == long(minor)and
- map.dev.major is not None and map.dev.major == long(major)):
- return map.deps
- return None
+ map = getMap(uuid=uuid, major=major, minor=minor, name=name)
+ try:
+ deps = map.deps
+ except AttributeError:
+ deps = ()
+ return deps

def getDmTarget(uuid = None, major = None, minor = None, name = None):
""" Retrieve the target for a specified map/device.
@@ -231,15 +259,12 @@ def getDmTarget(uuid = None, major = None, minor = None, name = None):

Note: None is returned if map.table.type is None.
"""
- # Return None if we don't find the map.
- for map in dm.maps():
- if (map.name and map.name == name) or
- (map.uuid is not None and map.uuid == uuid) or
- (map.dev.minor is not None and map.dev.minor == long(minor)and
- map.dev.major is not None and map.dev.major == long(major)):
- # might be worth validating tupe.
- return map.table.type
- return None
+ map = getMap(uuid=uuid, major=major, minor=minor, name=name)
+ try:
+ target = map.table.type
+ except AttributeError:
+ target = None
+ return target

def getNameFromDmNode(dm_node):
""" Return the related name for the specified node.
--
1.6.0.6

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 10:39 PM.

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