|
@@ -19,6 +19,7 @@ package org.apache.ambari.server.notifications.dispatchers;
|
|
|
|
|
|
import org.apache.ambari.server.notifications.DispatchCallback;
|
|
|
import org.apache.ambari.server.notifications.Notification;
|
|
|
+import org.apache.ambari.server.notifications.NotificationDispatcher;
|
|
|
import org.apache.ambari.server.notifications.Recipient;
|
|
|
import org.junit.Test;
|
|
|
import org.mockito.ArgumentCaptor;
|
|
@@ -367,4 +368,183 @@ public class SNMPDispatcherTest {
|
|
|
doReturn(trap).when(dispatcher).prepareTrap(notification, snmpVersion);
|
|
|
dispatcher.sendTraps(notification, snmpVersion);
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv1() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.COMMUNITY_PROPERTY, "public");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.VALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_incorrectSNMPversion() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv4");
|
|
|
+ properties.put(SNMPDispatcher.COMMUNITY_PROPERTY, "public");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv1_invalid() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv1");
|
|
|
+ properties.put(SNMPDispatcher.COMMUNITY_PROPERTY, "public");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv2c() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv2c");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.COMMUNITY_PROPERTY, "public");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.VALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv2c_invalid() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv2c");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_incorrectSecurityLevel() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_AUTH_PASSPHRASE_PROPERTY, "PASSPHRASE1");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_PRIV_PASSPHRASE_PROPERTY, "PASSPHRASE2");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "INCORRECT");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_noAuthNoPriv() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "NOAUTH_NOPRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.VALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_AuthNoPriv_valid() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_AUTH_PASSPHRASE_PROPERTY, "PASSPHRASE1");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "AUTH_NOPRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.VALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_AuthNoPriv_invalid() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "AUTH_NOPRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_AuthPriv_valid() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_AUTH_PASSPHRASE_PROPERTY, "PASSPHRASE1");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_PRIV_PASSPHRASE_PROPERTY, "PASSPHRASE2");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "AUTH_PRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.VALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_AuthPriv_noPassphrases() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "AUTH_PRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testValidateAlertValidation_SNMPv3_AuthPriv_onlyAuthPassphrase() throws Exception {
|
|
|
+ Map<String, String> properties = new HashMap<String, String>();
|
|
|
+ properties.put(SNMPDispatcher.SUBJECT_OID_PROPERTY, "1");
|
|
|
+ properties.put(SNMPDispatcher.BODY_OID_PROPERTY, "2");
|
|
|
+ properties.put(SNMPDispatcher.PORT_PROPERTY, "162");
|
|
|
+ properties.put(SNMPDispatcher.SNMP_VERSION_PROPERTY, "SNMPv3");
|
|
|
+ properties.put(SNMPDispatcher.TRAP_OID_PROPERTY, "1.3.6.1.6.3.1.1.5.4");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_USERNAME_PROPERTY, "USER");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_AUTH_PASSPHRASE_PROPERTY, "PASSPHRASE1");
|
|
|
+ properties.put(SNMPDispatcher.SECURITY_LEVEL_PROPERTY, "AUTH_PRIV");
|
|
|
+ NotificationDispatcher dispatcher = new SNMPDispatcher();
|
|
|
+ NotificationDispatcher.ConfigValidationResult configValidationResult = dispatcher.validateTargetConfig(properties);
|
|
|
+ assertEquals(NotificationDispatcher.ConfigValidationResult.Status.INVALID, configValidationResult.getStatus());
|
|
|
+ }
|
|
|
}
|