|
|
|
@ -40,14 +40,20 @@ class ResourceRemounter:
|
|
|
|
|
self.dv.defaultModule = 'client'
|
|
|
|
|
self.client = Client()
|
|
|
|
|
self.client.clVars = dv
|
|
|
|
|
self.check_server(True)
|
|
|
|
|
|
|
|
|
|
def check_server(self):
|
|
|
|
|
def check_server(self,refresh_nscd=False):
|
|
|
|
|
"""
|
|
|
|
|
Check the available of domain server and refresh nscd cache
|
|
|
|
|
"""
|
|
|
|
|
if self.client.checkDomainServer(
|
|
|
|
|
self.dv.Get('cl_remote_host'),
|
|
|
|
|
self.dv.Get('os_net_domain')):
|
|
|
|
|
try:
|
|
|
|
|
if refresh_nscd and path.exists(self.nscd_refresh):
|
|
|
|
|
os.system(self.nscd_refresh)
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
return True
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
@ -81,7 +87,7 @@ class ResourceRemounter:
|
|
|
|
|
print("Restoring remote mounts for user %s"%self.dv.Get('ur_login'))
|
|
|
|
|
# waiting for the domain
|
|
|
|
|
for wait in [1,2,5,10]:
|
|
|
|
|
if self.check_server():
|
|
|
|
|
if self.check_server(True):
|
|
|
|
|
break
|
|
|
|
|
sleep(wait)
|
|
|
|
|
# check and remount remote resources
|
|
|
|
@ -89,6 +95,13 @@ class ResourceRemounter:
|
|
|
|
|
self.remount_user_resources()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def unlock_screensaver(status):
|
|
|
|
|
"""
|
|
|
|
|
Handle screensaver unlock
|
|
|
|
|
"""
|
|
|
|
|
if status == 0:
|
|
|
|
|
self.check_server(True)
|
|
|
|
|
|
|
|
|
|
def main(argv):
|
|
|
|
|
# processing the user argument
|
|
|
|
|
argp = ArgumentParser(add_help=True)
|
|
|
|
@ -98,6 +111,7 @@ def main(argv):
|
|
|
|
|
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
|
|
|
|
|
|
|
|
|
bus = dbus.SystemBus()
|
|
|
|
|
sessionbus = dbus.SessionBus()
|
|
|
|
|
# initialization calculate datavars and quitting on an error
|
|
|
|
|
try:
|
|
|
|
|
dv = DataVars()
|
|
|
|
@ -114,6 +128,8 @@ def main(argv):
|
|
|
|
|
rm = ResourceRemounter(dv)
|
|
|
|
|
bus.add_signal_receiver(rm.handle_resuming,dbus_interface="org.freedesktop.UPower",
|
|
|
|
|
signal_name = "NotifyResume")
|
|
|
|
|
sessionbus.add_signal_receiver(rm.unlock_screensaver,dbus_interface="org.gnome.ScreenSaver",
|
|
|
|
|
signal_name = "ActiveChanged")
|
|
|
|
|
loop = gobject.MainLoop()
|
|
|
|
|
context = loop.get_context()
|
|
|
|
|
while True:
|
|
|
|
|