aboutsummaryrefslogtreecommitdiffstats
path: root/tests/dcaegen2/prh-testcases/resources/simulator/DMaaP.py
blob: 43d0bca0fe74ce64c3194f52bd004748ed5ef698 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import logging
import re
import sys
import time
from http.server import BaseHTTPRequestHandler
import httpServerLib

ch = logging.StreamHandler(sys.stdout)
handlers = [ch]
logging.basicConfig(
    level=logging.DEBUG,
    format='[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s',
    handlers=handlers
)

logger = logging.getLogger('DMaaP-simulator-logger')

DMAAP_EMPTY = b'[]'

event_ves = DMAAP_EMPTY
event_pnf_ready = DMAAP_EMPTY
event_pnf_update = DMAAP_EMPTY

class DmaapSetup(BaseHTTPRequestHandler):

    def do_GET(self):
        try:
            if re.search('/verify/pnf_ready', self.path):
                global event_pnf_ready
                httpServerLib.set_response_200_ok(self, payload = event_pnf_ready)
                logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK')
            elif re.search('/verify/pnf_update', self.path):
                global event_pnf_update
                httpServerLib.set_response_200_ok(self, payload = event_pnf_update)
                logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK')
            else:
                httpServerLib.set_response_404_not_found(self)
                logger.info('DmaapSetup GET ' + self.path + ' -> 404 Not found')
        except Exception as e:
            logger.error(e)
            httpServerLib.set_response_500_server_error(self)

    def do_PUT(self):
        try:
            if re.search('/setup/ves_event', self.path):
                global event_ves
                event_ves = httpServerLib.get_payload(self)
                httpServerLib.set_response_200_ok(self)
                logger.debug('DmaapSetup PUT /setup/ves_event -> 200 OK, content: ' + event_ves.decode("utf-8"))
            else:
                httpServerLib.set_response_404_not_found(self)
                logger.info('DmaapSetup PUT ' + self.path + ' -> 404 Not found')
        except Exception as e:
            logger.error(e)
            httpServerLib.set_response_500_server_error(self)

    def do_POST(self):
        try:
            if re.search('/reset', self.path):
                global event_ves
                global event_pnf_ready
                global event_pnf_update
                event_ves = DMAAP_EMPTY
                event_pnf_ready = DMAAP_EMPTY
                event_pnf_update = DMAAP_EMPTY
                httpServerLib.set_response_200_ok(self)
                logger.debug('DmaapSetup POST /reset -> 200 OK')
            else:
                httpServerLib.set_response_404_not_found(self)
                logger.info('DmaapSetup POST ' + self.path + ' -> 404 Not found')
        except Exception as e:
            logger.error(e)
            httpServerLib.set_response_500_server_error(self)

class DMaaPHandler(BaseHTTPRequestHandler):

    def do_POST(self):
        try:
            if re.search('/events/unauthenticated.PNF_READY', self.path):
                global event_pnf_ready
                event_pnf_ready = httpServerLib.get_payload(self)
                httpServerLib.set_response_200_ok(self)
                logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: '
                             + event_pnf_ready.decode("utf-8"))
            elif re.search('/events/unauthenticated.PNF_UPDATE', self.path):
                global event_pnf_update
                event_pnf_update = httpServerLib.get_payload(self)
                httpServerLib.set_response_200_ok(self)
                logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: '
                             + event_pnf_update.decode("utf-8"))
            else:
                httpServerLib.set_response_404_not_found(self)
                logger.info('DMaaPHandler POST ' + self.path + ' -> 404 Not found')
        except Exception as e:
            logger.error(e)
            httpServerLib.set_response_500_server_error(self)

    def do_GET(self):
        try:
            if re.search('/events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12', self.path):
                global event_ves
                httpServerLib.set_response_200_ok(self, payload = event_ves)
                logger.debug(
                    'DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200, content: '
                    + event_ves.decode("utf-8"))
                event_ves = DMAAP_EMPTY
                logger.debug('DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200')
            else:
                httpServerLib.set_response_404_not_found(self)
                logger.info('DMaaPHandler GET ' + self.path + ' -> 404 Not found')
        except Exception as e:
            logger.error(e)
            httpServerLib.set_response_500_server_error(self)

def _main_(handler_class=DMaaPHandler, protocol="HTTP/1.0"):
    handler_class.protocol_version = protocol
    httpServerLib.start_https_endpoint(2223, DMaaPHandler, keyfile="certs/dmaap-mr.key", certfile="certs/dmaap-mr.crt", ca_certs="certs/root.crt")
    httpServerLib.start_http_endpoint(2224, DmaapSetup)
    while 1:
        time.sleep(10)

if __name__ == '__main__':
    _main_()