View | Details | Raw Unified | Return to bug 37604
Collapse All | Expand All

(-)a/ucs-4.0-0/management/univention-directory-manager-modules/univention-cli-server (-18 / +28 lines)
 Lines 43-48   import univention.admincli.adduser Link Here 
43
import univention.admincli.admin
43
import univention.admincli.admin
44
import univention.admincli.passwd
44
import univention.admincli.passwd
45
import signal
45
import signal
46
from argparse import ArgumentParser
46
try:
47
try:
47
	import univention.admincli.license_check
48
	import univention.admincli.license_check
48
	licenseImportError = False
49
	licenseImportError = False
 Lines 82-99   class ForkingTCPServer(SocketServer.ForkingTCPServer): Link Here 
82
		self.server_port = port
83
		self.server_port = port
83
84
84
85
85
def server_main():
86
def server_main(args):
86
	"""UDM command line server."""
87
	"""UDM command line server."""
87
	global logfile
88
	try:
89
		logfile = sys.argv[1]
90
	except IndexError:
91
		logfile = '/var/log/univention/directory-manager-cmd.log'
92
88
93
	socket_dir = '/tmp/admincli_%s/' % os.getuid()
89
	socket_dir = '/tmp/admincli_%s/' % os.getuid()
94
	socket_filename = 'sock'
90
	socket_filename = 'sock'
95
	socket_path = (socket_dir+socket_filename)
91
	socket_path = (socket_dir+socket_filename)
96
92
93
	global logfile
94
	logfile = args.logfile
97
	ud.init(logfile, ud.FLUSH, ud.NO_FUNCTION)
95
	ud.init(logfile, ud.FLUSH, ud.NO_FUNCTION)
98
96
99
	runfilename = '%s.run' % socket_path
97
	runfilename = '%s.run' % socket_path
 Lines 113-122   def server_main(): Link Here 
113
			print >> sys.stderr, 'E: Server already running [Pid: %s]' % pid
111
			print >> sys.stderr, 'E: Server already running [Pid: %s]' % pid
114
			sys.exit(1)
112
			sys.exit(1)
115
113
116
	configRegistry = ConfigRegistry()
114
	ud.set_level(ud.ADMIN, args.debug_level)
117
	configRegistry.load()
118
	debug_level = configRegistry.get('directory/manager/cmd/debug/level', 1)
119
	ud.set_level(ud.ADMIN, int(debug_level))
120
	ud.debug(ud.ADMIN, ud.INFO, 'daemon [%s] forked to background' % os.getpid())
115
	ud.debug(ud.ADMIN, ud.INFO, 'daemon [%s] forked to background' % os.getpid())
121
116
122
	try:
117
	try:
 Lines 129-135   def server_main(): Link Here 
129
		else:
124
		else:
130
			print >> sys.stderr, 'E: socket directory exists (%s)' % socket_dir
125
			print >> sys.stderr, 'E: socket directory exists (%s)' % socket_dir
131
126
132
	timeout = configRegistry.get('directory/manager/cmd/timeout')
127
	timeout = args.timeout
133
	if timeout:
128
	if timeout:
134
		if int(timeout) > 2147483647:
129
		if int(timeout) > 2147483647:
135
			timeout = 2147483647
130
			timeout = 2147483647
 Lines 249-261   def doit(sarglist, conn): Link Here 
249
244
250
245
251
def main():
246
def main():
252
	pid = os.fork()
247
	ucr = ConfigRegistry()
253
	if pid == 0:  # child
248
	ucr.load()
254
		os.setsid()
249
	debug_level = int(ucr.get('directory/manager/cmd/debug/level', 1))
255
		server_main()
250
	timeout = int(ucr.get('directory/manager/cmd/timeout', 300))
256
		sys.exit(0)
251
257
	else:  # parent
252
	argparser = ArgumentParser()
258
		os.waitpid(pid, os.P_NOWAIT)
253
	argparser.add_argument('-n', dest='daemonize', action='store_false', default=True, help='Run in foreground without daemonizing')
254
	argparser.add_argument('-L', dest='logfile', action='store', default='/var/log/univention/directory-manager-cmd.log', help='logfile:  %(default)s')
255
	argparser.add_argument('-d', dest='debug_level', action='store', type=int, default=debug_level, help='debug level: %(default)s')
256
	argparser.add_argument('-t', dest='timeout', action='store', type=int, default=timeout, help='timeout: %(default)s')
257
	args = argparser.parse_args()
258
259
	if args.daemonize:
260
		pid = os.fork()
261
		if pid == 0:  # child
262
			os.setsid()
263
			server_main(args)
264
			sys.exit(0)
265
		else:  # parent
266
			os.waitpid(pid, os.P_NOWAIT)
267
	else:
268
		server_main(args)
259
269
260
if __name__ == "__main__":
270
if __name__ == "__main__":
261
	main()
271
	main()

Return to bug 37604