Changeset 11a08b0 for fedd/fedd.py
- Timestamp:
- Oct 7, 2008 6:12:57 PM (16 years ago)
- Branches:
- axis_example, compt_changes, info-ops, master, version-1.30, version-2.00, version-3.01, version-3.02
- Children:
- 0ea11af
- Parents:
- 8ecfbad
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
fedd/fedd.py
r8ecfbad r11a08b0 19 19 20 20 from threading import * 21 from signal import signal, pause, SIGINT, SIGTERM 22 from select import select 23 import logging 21 24 22 25 # The SSL server here is based on the implementation described at … … 169 172 170 173 self.set_defaults(host="localhost", port=23235, transport="soap", 171 debug=0)174 logfile=None, debug=0) 172 175 173 176 self.add_option("-d", "--debug", action="count", dest="debug", … … 177 180 self.add_option("-H", "--host", action="store", type="string", 178 181 dest="host", help="Hostname to listen on (default %default)") 182 self.add_option("-l", "--logfile", action="store", dest="logfile", 183 help="File to send log messages to") 179 184 self.add_option("-p", "--port", action="store", type="int", 180 185 dest="port", help="Port to listen on (default %default)") … … 188 193 const=sys.stderr, help="Print SOAP exchange to stderr") 189 194 195 servers_active = True 196 197 log_params = {\ 198 'format': "%(asctime)s %(levelname)-8s %(message)s",\ 199 'datefmt': '%a, %d %b %Y %H:%M:%S'\ 200 } 201 202 def shutdown(sig, frame): 203 global servers_active, flog 204 servers_active = False 205 flog.info("Received signal %d, shutting down" % sig); 206 190 207 def run_server(s): 191 if s: s.serve_forever() 208 global servers_active # Not strictly needed: servers_active is only read 209 210 if s: 211 while servers_active: 212 i, o, e = select((s,), (), (), 5.0) 213 if s in i: 214 s.handle_request() 192 215 193 216 services = [ ] … … 195 218 196 219 opts, args = fedd_opts().parse_args() 220 221 flog = logging.getLogger("fedd") 222 ffmt = logging.Formatter("%(asctime)s %(levelname)-8s %(message)s", 223 '%a, %d %b %Y %H:%M:%S') 224 225 if opts.logfile: fh = logging.FileHandler(opts.logfile) 226 else: fh = logging.StreamHandler(sys.stdout) 227 228 # The handler will print anything, setting the logger level will affect what 229 # gets recorded. 230 fh.setLevel(logging.DEBUG) 231 232 if opts.debug: flog.setLevel(logging.DEBUG) 233 else: flog.setLevel(logging.INFO) 234 235 fh.setFormatter(ffmt) 236 flog.addHandler(fh) 237 197 238 198 239 if opts.configfile != None: … … 239 280 elif s[0] == "xmlrpc": 240 281 servers.append(fedd_server(s[1], fedd_xmlrpc_handler, ctx, impl)) 241 else: print >>sys.stderr, "Unknown transport: %s" % s[0] 282 else: flog.warning("Unknown transport: %s" % s[0]) 283 284 signal(SIGINT, shutdown) 285 signal(SIGTERM, shutdown) 242 286 243 287 for s in servers: 244 t = Thread(target=run_server, args=(s,)) 245 t.start() 288 if s: 289 t = Thread(target=run_server, args=(s,)) 290 t.start() 291 292 pause()
Note: See TracChangeset
for help on using the changeset viewer.