Newer
Older
# Copyright 2022-2024 ETSI OSG/SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
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
from concurrent import futures
import time
import logging
import grpc
import connectionServiceWithNotif_pb2
import connectionServiceWithNotif_pb2_grpc
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
class connectionServiceWithNotif(connectionServiceWithNotif_pb2_grpc.ConnectionServiceWithNotifServicer):
def __init__(self):
self.connectionList = connectionServiceWithNotif_pb2.ConnectionList()
def CreateConnection(self, request, context):
logging.debug("Received Connection " + request.connectionId)
self.connectionList.connection.extend([request])
return google_dot_protobuf_dot_empty__pb2.Empty()
def ListConnection(self, request, context):
logging.debug("List Connections")
return self.connectionList
def GetBer (self, request, context):
logging.debug("Get Ber")
while True:
time.sleep(5)
ber=connectionServiceWithNotif_pb2.Ber(value=10)
yield ber
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
connectionServiceWithNotif_pb2_grpc.add_ConnectionServiceWithNotifServicer_to_server(connectionServiceWithNotif(), server)
server.add_insecure_port('[::]:50051')
logging.debug("Starting server")
server.start()
try:
while True:
time.sleep(_ONE_DAY_IN_SECONDS)
except KeyboardInterrupt:
server.stop(0)
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG)
serve()