blob: c247ee30d5a639c19164718ef74e44869ca00750 [file] [log] [blame]
Tommy Carpenter21f659c2020-02-26 14:12:54 -05001"""
2Test 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
22import time
23import json
Tommy Carpenter21f659c2020-02-26 14:12:54 -050024from ricxappframe.xapp_frame import Xapp
25
Tommy Carpenter21f659c2020-02-26 14:12:54 -050026
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040027def entry(self):
28 my_ns = "myxapp"
29 number = 0
30 while True:
31 # test healthcheck
Lott, Christopher (cl778h)bbc90282020-05-07 08:39:49 -040032 print("ping is healthy? {}".format(xapp.healthcheck()))
Tommy Carpenter21f659c2020-02-26 14:12:54 -050033
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040034 # rmr send to default handler
Lott, Christopher (cl778h)bbc90282020-05-07 08:39:49 -040035 self.rmr_send(json.dumps({"ping": number}).encode(), 6660666)
Tommy Carpenter21f659c2020-02-26 14:12:54 -050036
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040037 # rmr send 60000, should trigger registered callback
38 val = json.dumps({"test_send": number}).encode()
39 self.rmr_send(val, 60000)
40 number += 1
Tommy Carpenter21f659c2020-02-26 14:12:54 -050041
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040042 # store it in SDL and read it back; delete and read
Lott, Christopher (cl778h)bbc90282020-05-07 08:39:49 -040043 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"))
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040048
49 # rmr receive
50 for (summary, sbuf) in self.rmr_get_messages():
Lott, Christopher (cl778h)bbc90282020-05-07 08:39:49 -040051 # 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
Tommy Carpenter0f8305b2020-03-18 10:34:28 -040053 # 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
Lott, Christopher (cl778h)bbc90282020-05-07 08:39:49 -040055 print("ping: {0}".format(summary))
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040056 self.rmr_free(sbuf)
57
58 time.sleep(2)
Tommy Carpenter21f659c2020-02-26 14:12:54 -050059
60
Tommy Carpenterf9cd5cc2020-03-09 13:46:37 -040061xapp = Xapp(entrypoint=entry, rmr_port=4564, use_fake_sdl=True)
Tommy Carpenter21f659c2020-02-26 14:12:54 -050062xapp.run()