Skip to content

Commit 6bb1ead

Browse files
committed
add get & update method
1 parent e7777ce commit 6bb1ead

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

src/systemd_monitor/systemd_unit.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class SystemdUnit(object):
2424
'''
2525

2626
__dbus_interface = None
27+
__dbus_object = None
2728
__obj_path = ''
2829
__properties = dict()
2930

@@ -44,9 +45,10 @@ def __init_dbus(self):
4445
init dbus interface
4546
'''
4647
system_bus = dbus.SystemBus()
47-
dbus_obj = system_bus.get_object(SYSTEMD_SERVICE, self.__obj_path)
48+
self.__dbus_obj = system_bus.get_object(
49+
SYSTEMD_SERVICE, self.__obj_path)
4850
self.__dbus_interface = dbus.Interface(
49-
dbus_obj, dbus_interface=UNIT_INTERFACE)
51+
self.__dbus_obj, dbus_interface=UNIT_INTERFACE)
5052

5153
def get(self, name):
5254
'''
@@ -56,6 +58,17 @@ def get(self, name):
5658
'''
5759
return self.__properties.get(name, '')
5860

61+
def get_and_update(self, name):
62+
'''
63+
get property from dbus and assing in internal storage
64+
:param name: property name
65+
:return: property value
66+
'''
67+
prop_interface = dbus.Interface(
68+
self.__dbus_obj, dbus_interface='org.freedesktop.DBus.Properties')
69+
self.__properties[name] = prop_interface.Get(UNIT_INTERFACE, name)
70+
return self.__properties[name]
71+
5972
def reload(self, mode='replace'):
6073
'''
6174
reload unit

0 commit comments

Comments
 (0)