2 * Copyright (c) 2017 6WIND, Inc. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netvirt.alarm;
11 import org.slf4j.Logger;
12 import org.slf4j.LoggerFactory;
14 public class NeutronvpnAlarms {
16 private static final Logger LOG = LoggerFactory.getLogger(NeutronvpnAlarms.class);
17 protected NvpnJMXAlarmAgent alarmAgent = new NvpnJMXAlarmAgent();
18 private static final String ALARM_TEXT = "ExtraRouteConfigFaultAlarm";
19 private static final String ALARM_ID = "NeutronvpnControlPathFailure";
20 private static final String SOURCE_START = "neutronvpn:";
21 private static final String CUSTOM_PROPERTY = "neutronvpncontrolpathalarm";
23 public NeutronvpnAlarms() {
24 alarmAgent.registerMbean();
27 public void unregisterMbean() {
28 alarmAgent.unregisterMbean();
31 public void raiseNeutronvpnAlarm(String typeAlarm, String detailsAlarm) {
32 if (!isAlarmEnabled() || typeAlarm == null || typeAlarm.isEmpty()) {
35 StringBuilder source = new StringBuilder().append(SOURCE_START).append(typeAlarm);
36 LOG.trace("Raising {} alarm. {} alarmtext {} ", ALARM_ID, source, ALARM_TEXT);
37 alarmAgent.invokeFMraisemethod(ALARM_ID, ALARM_TEXT, source.toString(), detailsAlarm);
40 public void clearNeutronvpnAlarm(String typeAlarm, String detailsAlarm) {
41 if (!isAlarmEnabled() || typeAlarm == null || typeAlarm.isEmpty()) {
44 StringBuilder source = new StringBuilder().append(SOURCE_START).append(typeAlarm);
45 LOG.trace("Clearing {} alarm of source {} alarmtext {} ", ALARM_ID, source, ALARM_TEXT);
46 alarmAgent.invokeClearAlarmBean(ALARM_ID, ALARM_TEXT, source.toString(), detailsAlarm);
49 public boolean isAlarmEnabled() {
50 final String enabledPropertyStr = System.getProperty(CUSTOM_PROPERTY, "true");
51 return enabledPropertyStr != null && enabledPropertyStr.equalsIgnoreCase("true");