Source code for csle_collector.ryu_manager.query_ryu_manager

import csle_collector.ryu_manager.ryu_manager_pb2_grpc
import csle_collector.ryu_manager.ryu_manager_pb2
import csle_collector.constants.constants as constants


[docs]def get_ryu_status(stub: csle_collector.ryu_manager.ryu_manager_pb2_grpc.RyuManagerStub, timeout=constants.GRPC.TIMEOUT_SECONDS) \ -> csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO: """ Queries the server for the ryu server status :param stub: the stub to send the remote gRPC to the server :param timeout: the GRPC timeout (seconds) :return: a RyuDTO describing the status of the ryu controller """ get_ryu_status_msg = csle_collector.ryu_manager.ryu_manager_pb2.GetRyuStatusMsg() ryu_dto: csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO = \ stub.getRyuStatus(get_ryu_status_msg, timeout=timeout) return ryu_dto
[docs]def stop_ryu(stub: csle_collector.ryu_manager.ryu_manager_pb2_grpc.RyuManagerStub, timeout=constants.GRPC.TIMEOUT_SECONDS) \ -> csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO: """ Sends a request to the Ryu controller to stop the Ryu controller :param stub: the stub to send the remote gRPC to the server :param timeout: the GRPC timeout (seconds) :return: a RyuDTO describing the status of the ryu controller """ stop_ryu_msg = csle_collector.ryu_manager.ryu_manager_pb2.StopRyuMsg() ryu_dto: csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO = \ stub.stopRyu(stop_ryu_msg, timeout=timeout) return ryu_dto
[docs]def start_ryu(stub: csle_collector.ryu_manager.ryu_manager_pb2_grpc.RyuManagerStub, port: int, web_port: int, controller: str, timeout=constants.GRPC.TIMEOUT_SECONDS) \ -> csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO: """ Sends a request to the Ryu manager to start the Ryu controller :param stub: the stub to send the remote gRPC to the server :param timeout: the GRPC timeout (seconds) :param port: the port that Ryu will listen to :param web_port: the port that the Ryu web interface will listen to :param controller: the controller that Ryu will start :return: a RyuDTO describing the status of the ryu controller """ start_ryu_msg = csle_collector.ryu_manager.ryu_manager_pb2.StartRyuMsg( port=port, web_port=web_port, controller=controller) ryu_dto: csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO = \ stub.startRyu(start_ryu_msg, timeout=timeout) return ryu_dto
[docs]def stop_ryu_monitor(stub: csle_collector.ryu_manager.ryu_manager_pb2_grpc.RyuManagerStub, timeout=constants.GRPC.TIMEOUT_SECONDS) \ -> csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO: """ Sends a request to the Ryu controller to stop the Ryu monitor :param stub: the stub to send the remote gRPC to the server :param timeout: the GRPC timeout (seconds) :return: a RyuDTO describing the status of the ryu controller """ stop_ryu_monitor_msg = csle_collector.ryu_manager.ryu_manager_pb2.StopRyuMonitorMsg() ryu_dto: csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO = \ stub.stopRyuMonitor(stop_ryu_monitor_msg, timeout=timeout) return ryu_dto
[docs]def start_ryu_monitor(stub: csle_collector.ryu_manager.ryu_manager_pb2_grpc.RyuManagerStub, kafka_ip: str, kafka_port: int, time_step_len: int, timeout=constants.GRPC.TIMEOUT_SECONDS) \ -> csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO: """ Sends a request to the Ryu manager to start the Ryu controller :param stub: the stub to send the remote gRPC to the server :param timeout: the GRPC timeout (seconds) :param kafka_port: the port of Kafka to send data to :param kafka_ip: the ip of Kafka to send data to :param time_step_len: the time period for monitoring :return: a RyuDTO describing the status of the ryu controller """ start_ryu_monitor_msg = csle_collector.ryu_manager.ryu_manager_pb2.StartRyuMonitorMsg( kafka_ip=kafka_ip, kafka_port=kafka_port, time_step_len=time_step_len) ryu_dto: csle_collector.ryu_manager.ryu_manager_pb2.RyuDTO = \ stub.startRyuMonitor(start_ryu_monitor_msg, timeout=timeout) return ryu_dto