diff options
author | 2018-06-05 15:54:27 +0200 | |
---|---|---|
committer | 2018-06-05 15:54:27 +0200 | |
commit | 4a6ece4ba912ccf3401739843e3dfe3478a0e4d5 (patch) | |
tree | 48fc486d3f2db83aab517247c5b17b2b17986aaf /test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py | |
parent | 4be4a414c00995d19287f60b78ba75e978fcf134 (diff) |
Added 4 new TC
Issue-ID: INT-510
Change-Id: Iabc9b4d563fd981d60536e45b62a2286f17cd904
Signed-off-by: Mariusz Wagner <mariusz.wagner@nokia.com>
Diffstat (limited to 'test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py')
-rw-r--r-- | test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py b/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py deleted file mode 100644 index 6daf59b5b..000000000 --- a/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py +++ /dev/null @@ -1,157 +0,0 @@ -import BaseHTTPServer -import json -import posixpath -import sys -import urllib -from Queue import Queue - -import jsonschema -from robot.api import logger - -try: - from cStringIO import StringIO -except ImportError: - from StringIO import StringIO - -CommonEventSchemaV5 = "./CommonEventFormat_28.3.json" -EvtSchema = None -EventQueue = {"defaultTopic": Queue()} - - -def cleanUpEvent(topic="defaultTopic"): - try: - EventQueue.get(topic).empty() - except Exception as e: - logger.console(str(e)) - logger.console("DMaaP Event enqueue failed") - - -def enqueEvent(evt, topic="defaultTopic"): - if topic not in EventQueue.keys(): - EventQueue.update({topic: Queue()}) - - try: - EventQueue.get(topic).put(evt) - logger.console("DMaaP Event enqued - size=" + str(len(evt))) - return True - except Exception as e: - logger.console(str(e)) - logger.console("DMaaP Event enqueue failed") - return False - - -def dequeEvent(topic="defaultTopic", waitSec=10): - try: - evt = EventQueue.get(topic).get(True, waitSec) - logger.console("DMaaP Event dequeued - size=" + str(len(evt))) - return evt - except Exception as e: - logger.console(str(e)) - logger.console("DMaaP Event dequeue failed") - return None - - -class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler): - - def do_PUT(self): - self.send_response(405) - return - - def do_PATCH(self): - self.send_response(200) - return - - def do_POST(self): - - respCode = 0 - - if 'POST' not in self.requestline: - respCode = 405 - - if respCode == 0: - content_len = int(self.headers.getheader('content-length', 0)) - post_body = self.rfile.read(content_len) - - logger.console("DMaaP Receive Event:\n" + post_body) - - indx = post_body.index("{") - if indx != 0: - post_body = post_body[indx:] - - topic = self.getTopicName(self.path) - - if topic is not None: - logger.console("DMaaP Topic Name: " + topic) - if enqueEvent(post_body, topic) == False: - print "enque event fails" - - global EvtSchema - try: - if EvtSchema is None: - with open(CommonEventSchemaV5) as file: - EvtSchema = json.load(file) - decoded_body = json.loads(post_body) - jsonschema.validate(decoded_body, EvtSchema) - except: - respCode = 400 - - if respCode == 0: - if 'clientThrottlingState' in self.requestline: - self.send_response(204) - else: - self.send_response(200) - self.send_header('Content-Type', 'application/json') - self.end_headers() - self.wfile.write("{\"count\": 1, \"serverTimeMs\": 3}") - self.wfile.close() - else: - self.send_response(respCode) - - return - - def do_GET(self): - self.send_response(200) - self.send_header('Content-Type', 'application/json') - self.end_headers() - self.wfile.write(dequeEvent(self.getTopicName(self.path))) - self.wfile.close() - - return - - def getTopicName(self, path): - # abandon query parameters - path = path.split('?',1)[0] - path = path.split('#',1)[0] - - path = posixpath.normpath(urllib.unquote(path)) - parts = filter(None, path.split('/')) - - if len(parts) > 1 and parts[0] == "events": - return str(parts[1]) - else: - return None - -def _main_ (HandlerClass = DMaaPHandler, - ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"): - - if sys.argv[1:]: - port = int(sys.argv[1]) - else: - port = 2222 - - print "Load event schema file: " + CommonEventSchemaV5 - with open(CommonEventSchemaV5) as file: - global EvtSchema - EvtSchema = json.load(file) - - server_address = ('', port) - - HandlerClass.protocol_version = protocol - httpd = ServerClass(server_address, HandlerClass) - - sa = httpd.socket.getsockname() - print "Serving HTTP on", sa[0], "port", sa[1], "..." - httpd.serve_forever() - -if __name__ == '__main__': - _main_()
\ No newline at end of file |