From 1621a27167041e191289c0eac9a5e1fda84b752a Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Wed, 12 Jun 2013 21:37:12 +0200 Subject: beinc_server nearly done --- bins_server.py | 140 --------------------------------------------------------- 1 file changed, 140 deletions(-) delete mode 100755 bins_server.py (limited to 'bins_server.py') diff --git a/bins_server.py b/bins_server.py deleted file mode 100755 index 68ccb74..0000000 --- a/bins_server.py +++ /dev/null @@ -1,140 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -import argparse -import getpass -import json -import os -import sys - -import cherrypy - -import settings - - -class CustomSocketServer(SocketServer.TCPServer): - - def __init__(self, server_address, RequestHandlerClass, queue): - SocketServer.TCPServer.__init__(self, - server_address, - RequestHandlerClass) - self.queue = queue - - -class MyTCPHandler(SocketServer.StreamRequestHandler): - """ - The RequestHandler class for our server. - - It is instantiated once per connection to the server, and must - override the handle() method to implement communication to the - client. - """ - - def handle(self): - - data = self.rfile.readline().strip() - - if self.server.queue.qsize() > 3: - self.server.queue.get() - - self.server.queue.put(data) - #print(self.data) - - -class WebNotifyServer(object): - - def __init__(self, queue): - self.queue = queue - - @cherrypy.expose - def notifications(self): - - entry_list = list() - - while not self.queue.empty(): - entry_list.append(self.queue.get(False)) - - #print (json.dumps(entry_list, sort_keys=True, indent=4)) - return json.dumps(entry_list) - - -def socket_server(queue): - - try: - server = CustomSocketServer((settings.SOCKET_SERVER_HOST, - settings.SOCKET_SERVER_PORT), - MyTCPHandler, - queue) - server.serve_forever() - - except Exception as e: - sys.stderr.write("SocketServer error: {0}".format(e)) - sys.exit(1) - - sys.exit(0) - - - -def web_server(queue): - - cherrypy.config.update({ - 'server.socket_host': settings.WEB_SERVER_HOST, - 'server.socket_port': settings.WEB_SERVER_PORT, - 'server.ssl_module': 'pyopenssl', - 'server.ssl_certificate': settings.WEB_SERVER_CERT, - 'server.ssl_private_key': settings.WEB_SERVER_KEY, - }) - - try: - - cherrypy.quickstart(WebNotifyServer(queue)) - - except Exception as e: - sys.stderr.write("WebServer error: {0}".format(e)) - sys.exit(1) - - sys.exit(0) - - -def main(): - - parser = argparse.ArgumentParser(description='The following options are available') - - - parser.add_argument('-d', - action='store_true', - dest='daemonize', - default=False, - help='daemonize the server process') - - parser.add_argument('-H', '--hostname', - metavar='HOSTNAME', - type=str, - dest='hostname', - default='127.0.0.1', - help="Server IP / hostname") - - parser.add_argument('-P', '--port', - metavar='PORT', - type=int, - dest='port', - default='9998', - help="Server port") - - parser.add_argument('-p', '--password', - metavar='PASSWORD', - type=str, - dest='password', - help="Access password for the BOINS server") - - parser.add_argument('-v', '--version', - action='version', - version='%(prog)s {0}'.format(__VERSION__), - help='display program-version and exit') - - - - sys.exit(0) - -if __name__ == "__main__": - main() -- cgit v1.3