use of com.googlecode.jsendnsca.NagiosPassiveCheckSender in project pentaho-kettle by pentaho.
the class JobEntrySendNagiosPassiveCheck method execute.
public Result execute(Result previousResult, int nr) {
log.logBasic(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.Started", serverName));
Result result = previousResult;
result.setNrErrors(1);
result.setResult(false);
// Target
String realServername = environmentSubstitute(serverName);
String realPassword = Utils.resolvePassword(variables, password);
int realPort = Const.toInt(environmentSubstitute(port), DEFAULT_PORT);
int realResponseTimeOut = Const.toInt(environmentSubstitute(responseTimeOut), DEFAULT_RESPONSE_TIME_OUT);
int realConnectionTimeOut = Const.toInt(environmentSubstitute(connectionTimeOut), DEFAULT_CONNECTION_TIME_OUT);
// Sender
String realSenderServerName = environmentSubstitute(senderServerName);
String realSenderServiceName = environmentSubstitute(senderServiceName);
try {
if (Utils.isEmpty(realServername)) {
throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.TargetServerMissing"));
}
String realMessageString = environmentSubstitute(message);
if (Utils.isEmpty(realMessageString)) {
throw new KettleException(BaseMessages.getString(PKG, "JobSendNagiosPassiveCheck.Error.MessageMissing"));
}
Level level = Level.UNKNOWN;
switch(getLevel()) {
case LEVEL_TYPE_OK:
level = Level.OK;
break;
case LEVEL_TYPE_CRITICAL:
level = Level.CRITICAL;
break;
case LEVEL_TYPE_WARNING:
level = Level.WARNING;
break;
default:
break;
}
Encryption encr = Encryption.NONE;
switch(getEncryptionMode()) {
case ENCRYPTION_MODE_TRIPLEDES:
encr = Encryption.TRIPLE_DES;
break;
case ENCRYPTION_MODE_XOR:
encr = Encryption.XOR;
break;
default:
break;
}
// settings
NagiosSettingsBuilder ns = new NagiosSettingsBuilder();
ns.withNagiosHost(realServername);
ns.withPort(realPort);
ns.withConnectionTimeout(realConnectionTimeOut);
ns.withResponseTimeout(realResponseTimeOut);
ns.withEncryption(encr);
if (!Utils.isEmpty(realPassword)) {
ns.withPassword(realPassword);
} else {
ns.withNoPassword();
}
// target nagios host
NagiosSettings settings = ns.create();
// sender
MessagePayloadBuilder pb = new MessagePayloadBuilder();
if (!Utils.isEmpty(realSenderServerName)) {
pb.withHostname(realSenderServerName);
}
pb.withLevel(level);
if (!Utils.isEmpty(realSenderServiceName)) {
pb.withServiceName(realSenderServiceName);
}
pb.withMessage(realMessageString);
MessagePayload payload = pb.create();
NagiosPassiveCheckSender sender = new NagiosPassiveCheckSender(settings);
sender.send(payload);
result.setNrErrors(0);
result.setResult(true);
} catch (Exception e) {
log.logError(BaseMessages.getString(PKG, "JobEntrySendNagiosPassiveCheck.ErrorGetting", e.toString()));
}
return result;
}
use of com.googlecode.jsendnsca.NagiosPassiveCheckSender in project LogHub by fbacchella.
the class Nsca method configure.
@Override
public boolean configure(Properties properties) {
try {
NagiosSettings settings = new NagiosSettings();
if (port > 0) {
settings.setPort(port);
}
if (nagiosServer != null) {
settings.setNagiosHost(nagiosServer);
}
if (encryption != null) {
settings.setEncryption(encryption);
}
if (password != null) {
settings.setPassword(password);
}
if (connectTimeout >= 0) {
settings.setConnectTimeout(connectTimeout);
}
if (timeout >= 0) {
settings.setTimeout(timeout);
}
if (largeMessageSupport) {
settings.enableLargeMessageSupport();
}
sender = new NagiosPassiveCheckSender(settings);
// Uses a map to ensure that each field is tested, for easier debuging
return MAPFIELD.enumerate().map(i -> {
if (!mapping.containsKey(i)) {
logger.error("NSCA mapping field '{}' missing", i);
return false;
} else {
return true;
}
}).allMatch(i -> i) && super.configure(properties);
} catch (IllegalArgumentException e) {
logger.error("invalid NSCA configuration: {}", e.getMessage());
return false;
}
}
Aggregations