diff --git a/ryu/services/protocols/vrrp/router.py b/ryu/services/protocols/vrrp/router.py index ff2290d5..8a87a0d5 100644 --- a/ryu/services/protocols/vrrp/router.py +++ b/ryu/services/protocols/vrrp/router.py @@ -26,11 +26,16 @@ from ryu.base import app_manager from ryu.controller import event from ryu.controller import handler from ryu.lib import hub +from ryu.lib import apgw from ryu.lib.packet import vrrp from ryu.services.protocols.vrrp import event as vrrp_event from ryu.services.protocols.vrrp import api as vrrp_api +_ = type('', (apgw.StructuredMessage,), {}) +_.COMPONENT_NAME = 'vrrp' + + # TODO: improve Timer service and move it into framework class Timer(object): def __init__(self, handler_): @@ -139,6 +144,7 @@ class VRRPRouter(app_manager.RyuApp): _EVENTS = [vrrp_event.EventVRRPStateChanged] _CONSTRUCTORS = {} _STATE_MAP = {} # should be overrided by concrete class + LOGGER_NAME = 'vrrp' @staticmethod def register(version): @@ -271,8 +277,8 @@ class VRRPRouter(app_manager.RyuApp): @handler.set_ev_handler(_EventStatisticsOut) def statistics_handler(self, ev): - # sends stats to somewhere here - # print self.statistics.get_stats() + stats = self.statistics.get_stats() + self.logger.info(_(msg=stats, log_type='stats')) self.stats_out_timer.start(self.statistics.statistics_interval) # RFC defines that start timer, then change the state. diff --git a/ryu/services/protocols/vrrp/rpc_manager.py b/ryu/services/protocols/vrrp/rpc_manager.py index 0ba15e1d..f7101a48 100644 --- a/ryu/services/protocols/vrrp/rpc_manager.py +++ b/ryu/services/protocols/vrrp/rpc_manager.py @@ -24,6 +24,7 @@ from ryu.services.protocols.vrrp import api as vrrp_api from ryu.lib import rpc from ryu.lib import hub from ryu.lib import mac +from ryu.lib import apgw VRRP_RPC_PORT = 50004 # random CONF = cfg.CONF @@ -32,6 +33,9 @@ CONF.register_opts([ cfg.IntOpt('vrrp-rpc-port', default=VRRP_RPC_PORT, help='port for vrrp rpc interface')]) +_ = type('', (apgw.StructuredMessage,), {}) +_.COMPONENT_NAME = 'vrrp' + class RPCError(Exception): pass @@ -47,6 +51,8 @@ class Peer(object): class RpcVRRPManager(app_manager.RyuApp): + LOGGER_NAME = 'vrrp' + def __init__(self, *args, **kwargs): super(RpcVRRPManager, self).__init__(*args, **kwargs) self._args = args @@ -55,6 +61,7 @@ class RpcVRRPManager(app_manager.RyuApp): self._rpc_events = hub.Queue(128) self.server_thread = hub.spawn(self._peer_accept_thread) self.event_thread = hub.spawn(self._rpc_request_loop_thread) + apgw.update_syslog_format() def _rpc_request_loop_thread(self): while True: @@ -63,6 +70,9 @@ class RpcVRRPManager(app_manager.RyuApp): error = None result = None try: + self.logger.info(_(msg={'msgid': msgid, + 'target_method': target_method, + 'params': params})) if target_method == "vrrp_config": result = self._config(msgid, params) elif target_method == "vrrp_list": @@ -102,7 +112,6 @@ class RpcVRRPManager(app_manager.RyuApp): return d def _config(self, msgid, params): - self.logger.debug('handle vrrp_config request') try: param_dict = params[0] except: @@ -149,7 +158,6 @@ class RpcVRRPManager(app_manager.RyuApp): return None def _config_change(self, msgid, params): - self.logger.debug('handle vrrp_config_change request') try: config_values = params[0] except: @@ -167,7 +175,6 @@ class RpcVRRPManager(app_manager.RyuApp): return {} def _list(self, msgid, params): - self.logger.debug('handle vrrp_list request') result = vrrp_api.vrrp_list(self) instance_list = result.instance_list ret_list = [] @@ -186,13 +193,11 @@ class RpcVRRPManager(app_manager.RyuApp): @handler.set_ev_cls(vrrp_event.EventVRRPStateChanged) def vrrp_state_changed_handler(self, ev): - self.logger.info('handle EventVRRPStateChanged') name = ev.instance_name old_state = ev.old_state new_state = ev.new_state vrid = ev.config.vrid - self.logger.info('VRID:%s %s: %s -> %s', vrid, name, old_state, - new_state) params = {'vrid': vrid, 'old_state': old_state, 'new_state': new_state} + self.logger.info(_(msg=params)) for peer in self._peers: peer._endpoint.send_notification("notify_status", [params])