6 from http.server import BaseHTTPRequestHandler
9 ch = logging.StreamHandler(sys.stdout)
13 format='[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s',
17 logger = logging.getLogger('DMaaP-simulator-logger')
21 event_ves = DMAAP_EMPTY
22 event_pnf_ready = DMAAP_EMPTY
23 event_pnf_update = DMAAP_EMPTY
25 class DmaapSetup(BaseHTTPRequestHandler):
29 if re.search('/verify/pnf_ready', self.path):
30 global event_pnf_ready
31 httpServerLib.set_response_200_ok(self, payload = event_pnf_ready)
32 logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK')
33 elif re.search('/verify/pnf_update', self.path):
34 global event_pnf_update
35 httpServerLib.set_response_200_ok(self, payload = event_pnf_update)
36 logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK')
38 httpServerLib.set_response_404_not_found(self)
39 logger.info('DmaapSetup GET ' + self.path + ' -> 404 Not found')
40 except Exception as e:
42 httpServerLib.set_response_500_server_error(self)
46 if re.search('/setup/ves_event', self.path):
48 event_ves = httpServerLib.get_payload(self)
49 httpServerLib.set_response_200_ok(self)
50 logger.debug('DmaapSetup PUT /setup/ves_event -> 200 OK, content: ' + event_ves.decode("utf-8"))
52 httpServerLib.set_response_404_not_found(self)
53 logger.info('DmaapSetup PUT ' + self.path + ' -> 404 Not found')
54 except Exception as e:
56 httpServerLib.set_response_500_server_error(self)
60 if re.search('/reset', self.path):
62 global event_pnf_ready
63 global event_pnf_update
64 event_ves = DMAAP_EMPTY
65 event_pnf_ready = DMAAP_EMPTY
66 event_pnf_update = DMAAP_EMPTY
67 httpServerLib.set_response_200_ok(self)
68 logger.debug('DmaapSetup POST /reset -> 200 OK')
70 httpServerLib.set_response_404_not_found(self)
71 logger.info('DmaapSetup POST ' + self.path + ' -> 404 Not found')
72 except Exception as e:
74 httpServerLib.set_response_500_server_error(self)
76 class DMaaPHandler(BaseHTTPRequestHandler):
80 if re.search('/events/unauthenticated.PNF_READY', self.path):
81 global event_pnf_ready
82 event_pnf_ready = httpServerLib.get_payload(self)
83 httpServerLib.set_response_200_ok(self)
84 logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: '
85 + event_pnf_ready.decode("utf-8"))
86 elif re.search('/events/unauthenticated.PNF_UPDATE', self.path):
87 global event_pnf_update
88 event_pnf_update = httpServerLib.get_payload(self)
89 httpServerLib.set_response_200_ok(self)
90 logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: '
91 + event_pnf_update.decode("utf-8"))
93 httpServerLib.set_response_404_not_found(self)
94 logger.info('DMaaPHandler POST ' + self.path + ' -> 404 Not found')
95 except Exception as e:
97 httpServerLib.set_response_500_server_error(self)
101 if re.search('/events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12', self.path):
103 httpServerLib.set_response_200_ok(self, payload=self.pack_event_json_as_quoted_string_into_array(event_ves))
105 'DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200, content: '
106 + event_ves.decode("utf-8"))
107 event_ves = DMAAP_EMPTY
108 logger.debug('DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200')
110 httpServerLib.set_response_404_not_found(self)
111 logger.info('DMaaPHandler GET ' + self.path + ' -> 404 Not found')
112 except Exception as e:
114 httpServerLib.set_response_500_server_error(self)
116 def pack_event_json_as_quoted_string_into_array(self, event):
117 if event == DMAAP_EMPTY:
120 decoded = event_ves.decode("utf-8")
121 packed = '[' + json.dumps(decoded) + ']'
122 logger.info("prepared response: " + packed)
123 return packed.encode()
126 def _main_(handler_class=DMaaPHandler, protocol="HTTP/1.0"):
127 handler_class.protocol_version = protocol
128 httpServerLib.start_https_endpoint(2223, DMaaPHandler, keyfile="certs/dmaap-mr.key", certfile="certs/dmaap-mr.crt", ca_certs="certs/root.crt")
129 httpServerLib.start_http_endpoint(2224, DmaapSetup)
133 if __name__ == '__main__':