use of org.opennms.core.rpc.api.RpcTarget in project opennms by OpenNMS.
the class RpcTargetHelperTest method overridesGivenLocationAndSystemIdUsingAttributes.
@Test
public void overridesGivenLocationAndSystemIdUsingAttributes() {
final Map<String, Object> attributes = new HashMap<>();
attributes.put(RpcTargetHelper.LOCATION_KEY, "xx");
attributes.put(RpcTargetHelper.SYSTEM_ID_KEY, "yy");
final RpcTarget target = new RpcTargetHelper().target().withLocation("x").withSystemId("y").withServiceAttributes(attributes).build();
assertThat(target.getLocation(), equalTo("xx"));
assertThat(target.getSystemId(), equalTo("yy"));
}
use of org.opennms.core.rpc.api.RpcTarget in project opennms by OpenNMS.
the class RpcTargetHelperTest method canUseForeignIdAsSystemId.
@Test
public void canUseForeignIdAsSystemId() {
final Map<String, Object> attributes = new HashMap<>();
attributes.put(RpcTargetHelper.SYSTEM_ID_KEY, "yy");
attributes.put(RpcTargetHelper.USE_FOREIGN_ID_AS_SYSTEM_ID_KEY, Boolean.TRUE.toString());
final OnmsNode node = mock(OnmsNode.class);
when(node.getForeignId()).thenReturn("aa");
final NodeDao nodeDao = mock(NodeDao.class);
when(nodeDao.get(1)).thenReturn(node);
final RpcTarget target = new RpcTargetHelper().target().withSystemId("y").withServiceAttributes(attributes).withNodeId(1).withNodeDao(nodeDao).build();
assertThat(target.getLocation(), nullValue());
assertThat(target.getSystemId(), equalTo("aa"));
}
use of org.opennms.core.rpc.api.RpcTarget in project opennms by OpenNMS.
the class RpcTargetHelperTest method overridesGivenLocationUsingCallback.
@Test
public void overridesGivenLocationUsingCallback() {
final Map<String, Object> attributes = new HashMap<>();
attributes.put(RpcTargetHelper.LOCATION_KEY, "xx");
final RpcTarget target = new RpcTargetHelper().target().withLocation("x").withServiceAttributes(attributes).withLocationOverride(l -> "xx".equals(l) ? "aa" : "bb").build();
assertThat(target.getLocation(), equalTo("aa"));
assertThat(target.getSystemId(), nullValue());
}
use of org.opennms.core.rpc.api.RpcTarget in project opennms by OpenNMS.
the class PollerRequestBuilderImpl method execute.
@Override
public CompletableFuture<PollerResponse> execute() {
if (serviceMonitor == null) {
throw new IllegalArgumentException("Monitor or monitor class name is required.");
} else if (service == null) {
throw new IllegalArgumentException("Monitored service is required.");
}
final RpcTarget target = client.getRpcTargetHelper().target().withNodeId(service.getNodeId()).withLocation(service.getNodeLocation()).withSystemId(systemId).withServiceAttributes(attributes).withLocationOverride((s) -> serviceMonitor.getEffectiveLocation(s)).build();
final PollerRequestDTO request = new PollerRequestDTO();
request.setLocation(target.getLocation());
request.setSystemId(target.getSystemId());
request.setClassName(serviceMonitor.getClass().getCanonicalName());
request.setServiceName(service.getSvcName());
request.setAddress(service.getAddress());
request.setNodeId(service.getNodeId());
request.setNodeLabel(service.getNodeLabel());
request.setNodeLocation(service.getNodeLocation());
request.setTimeToLiveMs(ttlInMs);
request.addAttributes(attributes);
// Retrieve the runtime attributes, which may include attributes
// such as the agent details and other state related attributes
// which should be included in the request
final Map<String, Object> parameters = request.getMonitorParameters();
request.addAttributes(serviceMonitor.getRuntimeAttributes(request, parameters));
// Execute the request
return client.getDelegate().execute(request).thenApply(results -> {
PollStatus pollStatus = results.getPollStatus();
// Invoke the adapters in the same order as which they were added
for (ServiceMonitorAdaptor adaptor : adaptors) {
// The adapters may update the status
pollStatus = adaptor.handlePollResult(service, attributes, pollStatus);
}
results.setPollStatus(pollStatus);
return results;
});
}
use of org.opennms.core.rpc.api.RpcTarget in project opennms by OpenNMS.
the class RpcTargetHelperTest method usesGivenLocationAndSystemId.
@Test
public void usesGivenLocationAndSystemId() {
final RpcTarget target = new RpcTargetHelper().target().withLocation("x").withSystemId("y").build();
assertThat(target.getLocation(), equalTo("x"));
assertThat(target.getSystemId(), equalTo("y"));
}
Aggregations