diff --git a/src/config/svc-monitor/svc_monitor/instance_manager.py b/src/config/svc-monitor/svc_monitor/instance_manager.py index 3375835df37..f7702dc0bfb 100644 --- a/src/config/svc-monitor/svc_monitor/instance_manager.py +++ b/src/config/svc-monitor/svc_monitor/instance_manager.py @@ -476,6 +476,9 @@ def _associate_vrouter(self, si, vm): def _update_local_preference(self, si, del_vm): if si.ha_mode != 'active-standby': return + st = ServiceTemplateSM.get(si.service_template) + if not st: + return if si.local_preference[del_vm.index] == \ svc_info.get_standby_preference(): diff --git a/src/config/svc-monitor/svc_monitor/svc_monitor.py b/src/config/svc-monitor/svc_monitor/svc_monitor.py index 83300083524..dca359116ac 100644 --- a/src/config/svc-monitor/svc_monitor/svc_monitor.py +++ b/src/config/svc-monitor/svc_monitor/svc_monitor.py @@ -202,6 +202,12 @@ def config_log(self, msg, level): def _vnc_subscribe_callback(self, oper_info): self._db_resync_done.wait() + try: + self._vnc_subscribe_actions(oper_info) + except Exception: + cgitb_error_log(self) + + def _vnc_subscribe_actions(self, oper_info): try: msg = "Notification Message: %s" % (pformat(oper_info)) self.config_log(msg, level=SandeshLevel.SYS_DEBUG) @@ -243,9 +249,7 @@ def _vnc_subscribe_callback(self, oper_info): except Exception: - string_buf = cStringIO.StringIO() - cgitb.Hook(file=string_buf, format="text").handle(sys.exc_info()) - self.config_log(string_buf.getvalue(), level=SandeshLevel.SYS_ERR) + cgitb_error_log(self) for sas_id in dependency_tracker.resources.get('service_appliance_set', []): sas_obj = ServiceApplianceSetSM.get(sas_id) @@ -812,10 +816,9 @@ def launch_timer(monitor): cgitb_error_log(monitor) def cgitb_error_log(monitor): - tmp_file = cStringIO.StringIO() - cgitb.Hook(format="text", file=tmp_file).handle(sys.exc_info()) - monitor._svc_err_logger.error("%s" % tmp_file.getvalue()) - tmp_file.close() + string_buf = cStringIO.StringIO() + cgitb.Hook(file=string_buf, format="text").handle(sys.exc_info()) + monitor.config_log(string_buf.getvalue(), level=SandeshLevel.SYS_ERR) def parse_args(args_str): '''