PRH BBS tests
[integration/csit.git] / tests / dcaegen2 / prh-testcases / resources / simulator / DMaaP.py
1 import logging
2 import re
3 import sys
4 import time
5 from http.server import BaseHTTPRequestHandler
6 import httpServerLib
7
8 ch = logging.StreamHandler(sys.stdout)
9 handlers = [ch]
10 logging.basicConfig(
11     level=logging.DEBUG,
12     format='[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s',
13     handlers=handlers
14 )
15
16 logger = logging.getLogger('DMaaP-simulator-logger')
17
18 DMAAP_EMPTY = b'[]'
19
20 ves_event = DMAAP_EMPTY
21 captured_prh_event = DMAAP_EMPTY
22
23 class DmaapSetup(BaseHTTPRequestHandler):
24
25     def do_GET(self):
26         try:
27             if re.search('/setup/get_pnf_ready', self.path):
28                 global captured_prh_event
29                 httpServerLib.set_response_200_ok(self, payload = captured_prh_event)
30                 logger.debug('DmaapSetup GET /setup/get_pnf_ready -> 200 OK')
31             else:
32                 httpServerLib.set_response_404_not_found(self)
33                 logger.info('DmaapSetup GET ' + self.path + ' -> 404 Not found')
34         except Exception as e:
35             logger.error(e)
36             httpServerLib.set_response_500_server_error(self)
37
38     def do_PUT(self):
39         try:
40             if re.search('/setup/set_ves_event', self.path):
41                 global ves_event
42                 ves_event = httpServerLib.get_payload(self)
43                 httpServerLib.set_response_200_ok(self)
44                 logger.debug('DmaapSetup PUT /setup/set_ves_event -> 200 OK')
45             else:
46                 httpServerLib.set_response_404_not_found(self)
47                 logger.info('DmaapSetup PUT ' + self.path + ' -> 404 Not found')
48         except Exception as e:
49             logger.error(e)
50             httpServerLib.set_response_500_server_error(self)
51
52     def do_POST(self):
53         try:
54             if re.search('/reset', self.path):
55                 global ves_event
56                 global captured_prh_event
57                 ves_event = DMAAP_EMPTY
58                 captured_prh_event = DMAAP_EMPTY
59                 httpServerLib.set_response_200_ok(self)
60                 logger.debug('DmaapSetup POST /reset -> 200 OK')
61             else:
62                 httpServerLib.set_response_404_not_found(self)
63                 logger.info('DmaapSetup POST ' + self.path + ' -> 404 Not found')
64         except Exception as e:
65             logger.error(e)
66             httpServerLib.set_response_500_server_error(self)
67
68 class DMaaPHandler(BaseHTTPRequestHandler):
69
70     def do_POST(self):
71         try:
72             if re.search('/events/unauthenticated.PNF_READY', self.path):
73                 global captured_prh_event
74                 captured_prh_event = httpServerLib.get_payload(self)
75                 httpServerLib.set_response_200_ok(self)
76                 logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200')
77             else:
78                 httpServerLib.set_response_404_not_found(self)
79                 logger.info('DMaaPHandler POST ' + self.path + ' -> 404 Not found')
80         except Exception as e:
81             logger.error(e)
82             httpServerLib.set_response_500_server_error(self)
83
84     def do_GET(self):
85         try:
86             if re.search('/events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12', self.path):
87                 global ves_event
88                 httpServerLib.set_response_200_ok(self, payload = ves_event)
89                 ves_event = DMAAP_EMPTY
90                 logger.debug('DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200')
91             else:
92                 httpServerLib.set_response_404_not_found(self)
93                 logger.info('DMaaPHandler GET ' + self.path + ' -> 404 Not found')
94         except Exception as e:
95             logger.error(e)
96             httpServerLib.set_response_500_server_error(self)
97
98 def _main_(handler_class=DMaaPHandler, protocol="HTTP/1.0"):
99     handler_class.protocol_version = protocol
100     httpServerLib.start_http_endpoint(2222, DMaaPHandler)
101     httpServerLib.start_https_endpoint(2223, DMaaPHandler, keyfile="certs/org.onap.dmaap-bc.key", certfile="certs/dmaap_bc_topic_mgr_dmaap_bc.onap.org.cer", ca_certs="certs/ca_local_0.cer")
102     httpServerLib.start_http_endpoint(2224, DmaapSetup)
103     while 1:
104         time.sleep(10)
105
106 if __name__ == '__main__':
107     _main_()