Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14369 kshitij.so 1
import optparse
2
import sys
3
import os
4
 
5
if __name__ == '__main__' and __package__ is None:
6
    sys.path.insert(0, os.getcwd())
7
 
8
from thrift.transport import TSocket, TTransport
9
from thrift.protocol.TBinaryProtocol import TBinaryProtocolFactory
10
from thrift.server import TServer
11
 
12
from shop2020.utils.daemon import Daemon
13
from shop2020.config.client.ConfigClient import ConfigClient
14
from shop2020.thriftpy.model.v1.dtr import  DtrService
15
from shop2020.model.v1.dtr.impl.DtrServiceHandler import DtrServiceHandler
16
 
17
class DtrServer(Daemon):
18
 
19
    def __init__(self, logfile='/var/log/services/dtr.log', pidfile='/tmp/dtr-server.pid'):
20
        Daemon.__init__(self, pidfile, stdout=logfile, stderr=logfile)
21
 
22
    def run(self):
23
 
24
        config_client = ConfigClient()
25
        host_name = config_client.get_property('dtr_service_server_host')
26
        port = config_client.get_property('dtr_service_server_port')
27
 
28
        handler = DtrServiceHandler()
29
        processor = DtrService.Processor(handler)
30
        transport = TSocket.TServerSocket(port=port)
31
        tfactory = TTransport.TFramedTransportFactory()
32
        pfactory = TBinaryProtocolFactory()
33
        server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)
34
        print "Starting DtrService at, port " + str(port) + " host " + host_name
35
        sys.stdout.flush()
36
        server.serve()
37
        print "Server functioning"    
38
 
39
if __name__ == "__main__":
40
    parser = optparse.OptionParser()
41
    parser.add_option("-l", "--logfile", dest="logfile",
42
                      type="string",
43
                      help="Log all output to LOG_FILE",
44
                      )
45
    parser.add_option("-i", "--pidfile", dest="pidfile",
46
                      type="string",
47
                      help="Write the PID to pidfile")
48
    (options, args) = parser.parse_args()
49
    daemon = DtrServer(options.logfile, options.pidfile)
50
    if len(args) == 0:
51
        daemon.run()
52
    elif len(args) == 1:
53
        if 'start' == args[0]:
54
            daemon.start()
55
        elif 'stop' == args[0]:
56
            daemon.stop()
57
        elif 'restart' == args[0]:
58
            daemon.restart()
59
        else:
60
            print "Unknown command"
61
            sys.exit(2)
62
        sys.exit(0)
63
    else:
64
        print "usage: %s start|stop|restart" % sys.argv[0]
65
        sys.exit(2)