1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 from twisted.internet import reactor
19
20 from flumotion.twisted import credentials, fdserver
21 from flumotion.common import log, common, options
22 from flumotion.job import job
23
24
25 from flumotion.common import keycards
26
27 __version__ = "$Rev$"
28
29
31 parser = options.OptionParser(domain="flumotion-job")
32
33 log.debug('job', 'Parsing arguments (%r)' % ', '.join(args))
34 opts, args = parser.parse_args(args)
35
36
37 if len(args) != 3:
38 parser.error("must pass an avatarId and a path to the socket: %r" %
39 args)
40 avatarId = args[1]
41 socket = args[2]
42
43
44 log.info('job', "Starting job '%s'" % avatarId)
45
46
47
48
49 from flumotion.common import setup
50 setup.setupPackagePath()
51
52 log.info('job', 'Connecting to worker on socket %s' % (socket))
53
54 job_factory = job.JobClientFactory(avatarId)
55 reactor.connectWith(fdserver.FDConnector, socket, job_factory,
56 10, checkPID=False)
57
58 reactor.addSystemEventTrigger('before', 'shutdown',
59 job_factory.medium.shutdownHandler)
60
61
62 log.info('job', "Started job '%s'" % avatarId)
63
64 reactor.run()
65
66
67 log.info('job', "Stopping job '%s'" % avatarId)
68
69 log.info('job', "Stopped job '%s'" % avatarId)
70
71 return 0
72