Add a trivial doc change to bronze branch
[ric-plt/xapp-frame-py.git] / examples / ping_xapp.py
1 """
2 Test xapp 1
3 """
4 # ==================================================================================
5 #       Copyright (c) 2020 Nokia
6 #       Copyright (c) 2020 AT&T Intellectual Property.
7 #
8 #   Licensed under the Apache License, Version 2.0 (the "License");
9 #   you may not use this file except in compliance with the License.
10 #   You may obtain a copy of the License at
11 #
12 #          http://www.apache.org/licenses/LICENSE-2.0
13 #
14 #   Unless required by applicable law or agreed to in writing, software
15 #   distributed under the License is distributed on an "AS IS" BASIS,
16 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 #   See the License for the specific language governing permissions and
18 #   limitations under the License.
19 # ==================================================================================
20
21
22 import time
23 import json
24 from ricxappframe.xapp_frame import Xapp
25
26
27 def entry(self):
28     my_ns = "myxapp"
29     number = 0
30     while True:
31         # test healthcheck
32         print("ping is healthy? {}".format(xapp.healthcheck()))
33
34         # rmr send to default handler
35         self.rmr_send(json.dumps({"ping": number}).encode(), 6660666)
36
37         # rmr send 60000, should trigger registered callback
38         val = json.dumps({"test_send": number}).encode()
39         self.rmr_send(val, 60000)
40         number += 1
41
42         # store it in SDL and read it back; delete and read
43         self.sdl_set(my_ns, "ping", number)
44         self.logger.info(self.sdl_get(my_ns, "ping"))
45         self.logger.info(self.sdl_find_and_get(my_ns, "pin"))
46         self.sdl_delete(my_ns, "ping")
47         self.logger.info(self.sdl_get(my_ns, "ping"))
48
49         # rmr receive
50         for (summary, sbuf) in self.rmr_get_messages():
51             # summary is a dict that contains bytes so we can't use json.dumps on it
52             # so we have no good way to turn this into a string to use the logger unfortunately
53             # print is more "verbose" than the ric logger
54             # if you try to log this you will get: TypeError: Object of type bytes is not JSON serializable
55             print("ping: {0}".format(summary))
56             self.rmr_free(sbuf)
57
58         time.sleep(2)
59
60
61 xapp = Xapp(entrypoint=entry, rmr_port=4564, use_fake_sdl=True)
62 xapp.run()