def __init__(self, module, debug='0', locale=None):
		socket = '/var/run/univention-management-console/%u-%lu.socket' % (os.getpid(), long(time.time() * 1000))
		# determine locale settings
		modxmllist = moduleManager[module]
		args = [MODULE_COMMAND, '-m', module, '-s', socket, '-d', str(debug)]
		for modxml in modxmllist:
			if modxml.notifier:
				args.extend(['-n', modxml.notifier])
				break
		if locale:
			args.extend(('-l', '%s' % locale))
			self.__locale = locale
		else:
			self.__locale = None
		Client.__init__(self, unix=socket, ssl=False)
		self.signal_connect('response', self._response)
		CORE.process('running: %s' % args)
		self.__process = popen.RunIt(args, stdout=False)
		self.__process.signal_connect('killed', self._died)
		self.__pid = self.__process.start()
		self._connect_retries = 1
		self.signal_new('result')
		self.signal_new('finished')
		self.name = module
		self.running = False
		self._queued_requests = []
		self._inactivity_timer = None
		self._inactivity_counter = 0
Example #2
0
 def __init__(self, module, debug='0', locale=None):
     # type: (str, str, str) -> None
     socket = '/var/run/univention-management-console/%u-%lu.socket' % (
         os.getpid(), int(time.time() * 1000))
     # determine locale settings
     modxmllist = moduleManager[module]
     python = '/usr/bin/python3' if any(
         modxml.python_version == 3
         for modxml in modxmllist) else '/usr/bin/python2.7'
     args = [
         python, MODULE_COMMAND, '-m', module, '-s', socket, '-d',
         str(debug)
     ]
     for modxml in modxmllist:
         if modxml.notifier:
             args.extend(['-n', modxml.notifier])
             break
     if locale:
         args.extend(('-l', '%s' % locale))
         self.__locale = locale  # type: Optional[str]
     else:
         self.__locale = None
     Client.__init__(self, unix=socket, ssl=False)
     self.signal_connect('response', self._response)
     CORE.process('running: %s' % ' '.join(pipes.quote(x) for x in args))
     self.__process = popen.RunIt(args, stdout=False)
     self.__process.signal_connect('killed', self._died)
     self.__pid = self.__process.start()
     self._connect_retries = 1
     self.signal_new('result')
     self.signal_new('finished')
     self.name = module
     self.running = False
     self._queued_requests = []  # type: List
     self._inactivity_timer = None
     self._inactivity_counter = 0
     self._connect_timer = None