[lvm-devel] master - lvmdbusd: Add method get_object_path_by_lvm_id

tasleson tasleson at fedoraproject.org
Fri Jun 10 21:06:33 UTC 2016


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=b81186e535f0c93ef8b276cfb2b7bcf55268aec0
Commit:        b81186e535f0c93ef8b276cfb2b7bcf55268aec0
Parent:        b717e8fe1d926d6dd6e5a03354706351d90477d2
Author:        Tony Asleson <tasleson at redhat.com>
AuthorDate:    Fri Jun 10 12:05:52 2016 -0500
Committer:     Tony Asleson <tasleson at redhat.com>
CommitterDate: Fri Jun 10 16:04:43 2016 -0500

lvmdbusd: Add method get_object_path_by_lvm_id

The object manager method get_object_by_lvm_id was used in many cases for
the sole reason of getting the object path for the object.  Instead of
retrieving the object and then calling 'dbus_object_path' on the object, we
are adding a method which returns the object path.
---
 daemons/lvmdbusd/lv.py            |   14 +++-----------
 daemons/lvmdbusd/objectmanager.py |   11 +++++++++++
 daemons/lvmdbusd/vg.py            |    7 +------
 3 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/daemons/lvmdbusd/lv.py b/daemons/lvmdbusd/lv.py
index 4638a31..e32f8e5 100644
--- a/daemons/lvmdbusd/lv.py
+++ b/daemons/lvmdbusd/lv.py
@@ -354,12 +354,7 @@ class Lv(LvCommon):
 
 		# The name is vg/name
 		full_name = "%s/%s" % (self.vg_name_lookup(), name)
-
-		o = cfg.om.get_object_by_lvm_id(full_name)
-		if o:
-			return o.dbus_object_path()
-
-		return '/'
+		return cfg.om.get_object_path_by_lvm_id(full_name)
 
 	def _get_data_meta(self):
 
@@ -783,8 +778,7 @@ class LvCachePool(Lv):
 				cfg.om.remove_object(lv_to_cache, emit_signal=True)
 				cfg.load()
 
-				lv_converted = \
-					cfg.om.get_object_by_lvm_id(fcn).dbus_object_path()
+				lv_converted = cfg.om.get_object_path_by_lvm_id(fcn)
 
 			else:
 				raise dbus.exceptions.DBusException(
@@ -847,9 +841,7 @@ class LvCacheLv(Lv):
 				cfg.om.remove_object(dbo, emit_signal=True)
 				cfg.load()
 
-				uncached_lv_path = \
-					cfg.om.get_object_by_lvm_id(lv_name).dbus_object_path()
-
+				uncached_lv_path = cfg.om.get_object_path_by_lvm_id(lv_name)
 			else:
 				raise dbus.exceptions.DBusException(
 					LV_INTERFACE,
diff --git a/daemons/lvmdbusd/objectmanager.py b/daemons/lvmdbusd/objectmanager.py
index cd44480..c93f207 100644
--- a/daemons/lvmdbusd/objectmanager.py
+++ b/daemons/lvmdbusd/objectmanager.py
@@ -185,6 +185,17 @@ class ObjectManager(AutomatedProperties):
 				return self.get_object_by_path(self._id_to_object_path[lvm_id])
 			return None
 
+	def get_object_path_by_lvm_id(self, lvm_id):
+		"""
+		Given an lvm identifier, return the object path for it
+		:param lvm_id: The lvm identifier
+		:return: Object path or '/' if not found
+		"""
+		with self.rlock:
+			if lvm_id in self._id_to_object_path:
+				return self._id_to_object_path[lvm_id]
+			return '/'
+
 	def _uuid_verify(self, path, uuid, lvm_id):
 		"""
 		Ensure uuid is present for a successful lvm_id lookup
diff --git a/daemons/lvmdbusd/vg.py b/daemons/lvmdbusd/vg.py
index 45b4030..c700667 100644
--- a/daemons/lvmdbusd/vg.py
+++ b/daemons/lvmdbusd/vg.py
@@ -144,13 +144,8 @@ class Vg(AutomatedProperties):
 
 	@staticmethod
 	def fetch_new_lv(vg_name, lv_name):
-		full_name = "%s/%s" % (vg_name, lv_name)
-
 		cfg.load()
-		l = cfg.om.get_object_by_lvm_id(full_name)
-		created_lv = l.dbus_object_path()
-
-		return created_lv
+		return cfg.om.get_object_by_lvm_id("%s/%s" % (vg_name, lv_name))
 
 	@staticmethod
 	def _rename(uuid, vg_name, new_name, rename_options):




More information about the lvm-devel mailing list