Repository: ambari
Updated Branches:
  refs/heads/trunk da6430abe -> accf8f1d5


AMBARI-19356 Change type of fields for Ambari SNMP alert trap (dsen)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/accf8f1d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/accf8f1d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/accf8f1d

Branch: refs/heads/trunk
Commit: accf8f1d59e41d379a3cac4435a16a36ce0adf85
Parents: da6430a
Author: Dmytro Sen <[email protected]>
Authored: Fri Jan 6 18:01:06 2017 +0200
Committer: Dmytro Sen <[email protected]>
Committed: Fri Jan 6 18:02:19 2017 +0200

----------------------------------------------------------------------
 .../dispatchers/AmbariSNMPDispatcher.java       | 37 ++++++++++++++------
 .../dispatchers/AmbariSNMPDispatcherTest.java   | 13 +++++++
 2 files changed, 40 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/accf8f1d/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java
index 86ef07c..80222c6 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcher.java
@@ -19,6 +19,7 @@
 package org.apache.ambari.server.notifications.dispatchers;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
@@ -32,6 +33,7 @@ import org.slf4j.LoggerFactory;
 import org.snmp4j.PDU;
 import org.snmp4j.Snmp;
 import org.snmp4j.mp.SnmpConstants;
+import org.snmp4j.smi.Integer32;
 import org.snmp4j.smi.OID;
 import org.snmp4j.smi.OctetString;
 import org.snmp4j.smi.VariableBinding;
@@ -115,15 +117,15 @@ public class AmbariSNMPDispatcher extends SNMPDispatcher {
         pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID, new 
OID(AMBARI_ALERT_TRAP_OID)));
         // Set notification body and subject for PDU objects with identifiers 
specified in dispatch properties.
         AlertNoticeDispatchService.AlertInfo alertInfo = 
alertNotification.getAlertInfo();
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_DEFINITION_ID_OID, 
alertInfo.getAlertDefinitionId());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_DEFINITION_NAME_OID, 
alertInfo.getAlertDefinition().getDefinitionName());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_DEFINITION_HASH_OID, 
alertInfo.getAlertDefinitionHash());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_NAME_OID, 
alertInfo.getAlertName());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_TEXT_OID, 
alertInfo.getAlertText());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_STATE_OID, 
alertInfo.getAlertState().getIntValue());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_HOST_NAME_OID, 
alertInfo.getHostName());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_SERVICE_NAME_OID, 
alertInfo.getServiceName());
-        addVariableBindingCheckForNull(pdu, AMBARI_ALERT_COMPONENT_NAME_OID, 
alertInfo.getComponentName());
+        addIntVariableBindingCheckForNull(pdu, AMBARI_ALERT_DEFINITION_ID_OID, 
new BigDecimal(alertInfo.getAlertDefinitionId()).intValueExact());
+        addStringVariableBindingCheckForNull(pdu, 
AMBARI_ALERT_DEFINITION_NAME_OID, 
alertInfo.getAlertDefinition().getDefinitionName());
+        addStringVariableBindingCheckForNull(pdu, 
AMBARI_ALERT_DEFINITION_HASH_OID, alertInfo.getAlertDefinitionHash());
+        addStringVariableBindingCheckForNull(pdu, AMBARI_ALERT_NAME_OID, 
alertInfo.getAlertName());
+        addStringVariableBindingCheckForNull(pdu, AMBARI_ALERT_TEXT_OID, 
alertInfo.getAlertText());
+        addIntVariableBindingCheckForNull(pdu, AMBARI_ALERT_STATE_OID, 
alertInfo.getAlertState().getIntValue());
+        addStringVariableBindingCheckForNull(pdu, AMBARI_ALERT_HOST_NAME_OID, 
alertInfo.getHostName());
+        addStringVariableBindingCheckForNull(pdu, 
AMBARI_ALERT_SERVICE_NAME_OID, alertInfo.getServiceName());
+        addStringVariableBindingCheckForNull(pdu, 
AMBARI_ALERT_COMPONENT_NAME_OID, alertInfo.getComponentName());
 
         return pdu;
     }
@@ -143,7 +145,7 @@ public class AmbariSNMPDispatcher extends SNMPDispatcher {
      * @param oid
      * @param val
      */
-    private void addVariableBindingCheckForNull(PDU pdu, String oid, Object 
val) {
+    private void addStringVariableBindingCheckForNull(PDU pdu, String oid, 
Object val) {
         if (val == null)  {
             pdu.add(new VariableBinding(new OID(oid), new 
OctetString("null")));
         } else {
@@ -151,4 +153,19 @@ public class AmbariSNMPDispatcher extends SNMPDispatcher {
                     new OctetString(String.valueOf(val))));
         }
     }
+    /**
+     * Adds new {@link VariableBinding} using provided {@link OID} and value 
to {@link PDU}
+     * if val is null than adds {@link OctetString} with "null" value;
+     * @param pdu
+     * @param oid
+     * @param val
+     */
+    private void addIntVariableBindingCheckForNull(PDU pdu, String oid, 
Integer val) {
+        if (val == null)  {
+            pdu.add(new VariableBinding(new OID(oid), new 
OctetString("null")));
+        } else {
+            pdu.add(new VariableBinding(new OID(oid),
+                    new Integer32(val)));
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/accf8f1d/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
index 3561730..64f1c8f 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/notifications/dispatchers/AmbariSNMPDispatcherTest.java
@@ -20,6 +20,7 @@ package org.apache.ambari.server.notifications.dispatchers;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
@@ -53,6 +54,9 @@ import org.snmp4j.PDU;
 import org.snmp4j.Snmp;
 import org.snmp4j.Target;
 import org.snmp4j.mp.SnmpConstants;
+import org.snmp4j.smi.Integer32;
+import org.snmp4j.smi.OID;
+import org.snmp4j.smi.OctetString;
 import org.snmp4j.smi.VariableBinding;
 
 public class AmbariSNMPDispatcherTest {
@@ -254,14 +258,23 @@ public class AmbariSNMPDispatcherTest {
         }
         assertEquals(10, variableBindings.size());
         assertEquals(AmbariSNMPDispatcher.AMBARI_ALERT_TRAP_OID, 
variableBindings.get(SnmpConstants.snmpTrapOID.toString()).toValueString());
+        
assertTrue(variableBindings.get(SnmpConstants.snmpTrapOID.toString()).getVariable()
 instanceof OID);
         assertEquals(String.valueOf(DEFINITION_ID), 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_ID_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_ID_OID).getVariable()
 instanceof Integer32);
         assertEquals(DEFINITION_NAME, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_NAME_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_DEFINITION_NAME_OID).getVariable()
 instanceof OctetString);
         assertEquals(ALERT_LABEL, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_NAME_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_NAME_OID).getVariable()
 instanceof OctetString);
         assertEquals(ALERT_TEXT, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_TEXT_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_TEXT_OID).getVariable()
 instanceof OctetString);
         assertEquals(String.valueOf(ALERT_STATE.getIntValue()), 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_STATE_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_STATE_OID).getVariable()
 instanceof Integer32);
         assertEquals(ALERT_HOSTNAME, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_HOST_NAME_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_HOST_NAME_OID).getVariable()
 instanceof OctetString);
         assertEquals(ALERT_SERVICE_NAME, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_SERVICE_NAME_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_SERVICE_NAME_OID).getVariable()
 instanceof OctetString);
         assertEquals(ALERT_COMPONENT_NAME, 
variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_COMPONENT_NAME_OID).toValueString());
+        
assertTrue(variableBindings.get(AmbariSNMPDispatcher.AMBARI_ALERT_COMPONENT_NAME_OID).getVariable()
 instanceof OctetString);
     }
 
     @Test

Reply via email to