@@ -24,6 +24,7 @@ class SystemdUnit(object):
24
24
'''
25
25
26
26
__dbus_interface = None
27
+ __dbus_object = None
27
28
__obj_path = ''
28
29
__properties = dict ()
29
30
@@ -44,9 +45,10 @@ def __init_dbus(self):
44
45
init dbus interface
45
46
'''
46
47
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 )
48
50
self .__dbus_interface = dbus .Interface (
49
- dbus_obj , dbus_interface = UNIT_INTERFACE )
51
+ self . __dbus_obj , dbus_interface = UNIT_INTERFACE )
50
52
51
53
def get (self , name ):
52
54
'''
@@ -56,6 +58,17 @@ def get(self, name):
56
58
'''
57
59
return self .__properties .get (name , '' )
58
60
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
+
59
72
def reload (self , mode = 'replace' ):
60
73
'''
61
74
reload unit
0 commit comments