Completed
Push — master ( 3fb24c...dc2f0a )
by Nicolas
01:11
created

bin.main()   A

Complexity

Conditions 2

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 2
dl 0
loc 14
rs 9.4285
1
#!/usr/bin/env python
2
3
from __future__ import (
4
    absolute_import,
5
    division,
6
    print_function
7
)
8
9
import argparse
10
import logging
11
import os
12
import sys
13
14
import boto.swf.layer2 as swf
15
16
sys.path.append(
17
    os.path.realpath(
18
        os.path.join(
19
            os.path.dirname(__file__),
20
            '..'
21
        )
22
    )
23
)
24
25
from pydecider.register import register
26
27
28
class Worker(swf.ActivityWorker):
29
30
    version = 1.0
31
32
    def __init__(self, domain, task_list):
33
        self.domain = domain
34
        self.task_list = task_list
35
        super(Worker, self).__init__()
36
37
    def run(self):
38
        activity_task = self.poll()
39
        if 'activityId' in activity_task:
40
            print('%s: %r' % (self.task_list, activity_task))
41
            self.complete()
42
        return True
43
44
45
def main():
46
    parser = argparse.ArgumentParser()
47
    parser.add_argument('--domain', required=True)
48
    parser.add_argument('--task_list', required=True)
49
    parser.add_argument('--activity', required=True)
50
    parser.add_argument('--version', required=True)
51
    args = parser.parse_args()
52
53
    register(activities=[(args.activity, args.version)])
54
55
    worker = Worker(args.domain, args.task_list)
56
57
    while worker.run():
58
        pass
59
60
61
if __name__ == '__main__':
62
    logging.basicConfig(level=logging.DEBUG)
63
64
    main()
65