private void serializeRemoteProcessGroupStatus(final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final RemoteProcessGroupStatus status, final DateFormat df, final String hostname, final String applicationName, final String platform, final String parentId, final Date currentDate) { final JsonObjectBuilder builder = factory.createObjectBuilder(); final String componentType = "RemoteProcessGroup"; final String componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "activeRemotePortCount", status.getActiveRemotePortCount()); addField(builder, "activeThreadCount", status.getActiveThreadCount()); addField(builder, "inactiveRemotePortCount", status.getInactiveRemotePortCount()); addField(builder, "receivedContentSize", status.getReceivedContentSize()); addField(builder, "receivedCount", status.getReceivedCount()); addField(builder, "sentContentSize", status.getSentContentSize()); addField(builder, "sentCount", status.getSentCount()); addField(builder, "averageLineageDuration", status.getAverageLineageDuration()); arrayBuilder.add(builder.build()); } }
public static ComponentDetails forRemoteProcessGroup(final RemoteProcessGroupStatus status) { return forRemoteProcessGroup(status.getId(), status.getGroupId(), status.getName(), status.getTargetUri()); }
@Override public Long getValue(final RemoteProcessGroupStatus status) { return Long.valueOf((status.getReceivedContentSize().longValue() + status.getSentContentSize().longValue()) / 300L); } }),
public RemoteProcessGroupStatusDTO createRemoteProcessGroupStatusDto(final RemoteProcessGroup remoteProcessGroup, final RemoteProcessGroupStatus remoteProcessGroupStatus) { final RemoteProcessGroupStatusDTO dto = new RemoteProcessGroupStatusDTO(); dto.setId(remoteProcessGroupStatus.getId()); dto.setGroupId(remoteProcessGroupStatus.getGroupId()); dto.setTargetUri(remoteProcessGroupStatus.getTargetUri()); dto.setName(remoteProcessGroupStatus.getName()); dto.setTransmissionStatus(remoteProcessGroupStatus.getTransmissionStatus().toString()); dto.setStatsLastRefreshed(new Date()); dto.setValidationStatus(getRemoteProcessGroupValidationStatus(remoteProcessGroup).name()); final RemoteProcessGroupStatusSnapshotDTO snapshot = new RemoteProcessGroupStatusSnapshotDTO(); dto.setAggregateSnapshot(snapshot); snapshot.setId(remoteProcessGroupStatus.getId()); snapshot.setGroupId(remoteProcessGroupStatus.getGroupId()); snapshot.setName(remoteProcessGroupStatus.getName()); snapshot.setTargetUri(remoteProcessGroupStatus.getTargetUri()); snapshot.setTransmissionStatus(remoteProcessGroupStatus.getTransmissionStatus().toString()); snapshot.setActiveThreadCount(remoteProcessGroupStatus.getActiveThreadCount()); snapshot.setFlowFilesSent(remoteProcessGroupStatus.getSentCount()); snapshot.setBytesSent(remoteProcessGroupStatus.getSentContentSize()); snapshot.setFlowFilesReceived(remoteProcessGroupStatus.getReceivedCount()); snapshot.setBytesReceived(remoteProcessGroupStatus.getReceivedContentSize()); StatusMerger.updatePrettyPrintedFields(snapshot); return dto; }
mergedRemoteGroupMap.put(status.getId(), status); RemoteProcessGroupStatus merged = mergedRemoteGroupMap.get(statusToMerge.getId()); if (merged == null) { mergedRemoteGroupMap.put(statusToMerge.getId(), statusToMerge.clone()); continue; merged.setReceivedContentSize(merged.getReceivedContentSize() + statusToMerge.getReceivedContentSize()); merged.setReceivedCount(merged.getReceivedCount() + statusToMerge.getReceivedCount()); merged.setSentContentSize(merged.getSentContentSize() + statusToMerge.getSentContentSize()); merged.setSentCount(merged.getSentCount() + statusToMerge.getSentCount()); merged.setActiveThreadCount(merged.getActiveThreadCount() + statusToMerge.getActiveThreadCount());
static RemoteProcessGroupStatusBean parseRemoteProcessGroupStatusRequest(RemoteProcessGroupStatus inputRemoteProcessGroupStatus, String statusTypes, FlowController flowController) { RemoteProcessGroupStatusBean remoteProcessGroupStatusBean = new RemoteProcessGroupStatusBean(); remoteProcessGroupStatusBean.setName(inputRemoteProcessGroupStatus.getName()); .sourceIdMatches(inputRemoteProcessGroupStatus.getId()) .build()); RemoteProcessGroupHealth remoteProcessGroupHealth = new RemoteProcessGroupHealth(); remoteProcessGroupHealth.setTransmissionStatus(inputRemoteProcessGroupStatus.getTransmissionStatus().name()); remoteProcessGroupHealth.setActivePortCount(inputRemoteProcessGroupStatus.getActiveRemotePortCount()); remoteProcessGroupHealth.setInactivePortCount(inputRemoteProcessGroupStatus.getInactiveRemotePortCount()); remoteProcessGroupHealth.setHasBulletins(!bulletinList.isEmpty()); RemoteProcessGroupStats remoteProcessGroupStats = new RemoteProcessGroupStats(); remoteProcessGroupStats.setActiveThreads(inputRemoteProcessGroupStatus.getActiveThreadCount()); remoteProcessGroupStats.setSentContentSize(inputRemoteProcessGroupStatus.getSentContentSize()); remoteProcessGroupStats.setSentCount(inputRemoteProcessGroupStatus.getSentCount());
public void addRemoteProcessGroup(RemoteProcessGroupStatus r) { remoteProcessGroups.put(r.getId(), r); }
flowFilesReceived += remoteStatus.getReceivedCount(); bytesReceived += remoteStatus.getReceivedContentSize(); flowFilesSent += remoteStatus.getSentCount(); bytesSent += remoteStatus.getSentContentSize();
private static <E> Map<String, E> transformStatusCollection(Collection<E> statusCollection) { Map<String, E> statusMap = new HashMap<>(); for (E status : statusCollection) { if (status instanceof ProcessorStatus) { statusMap.put(((ProcessorStatus) status).getId(), status); if (((ProcessorStatus) status).getName() != null) { statusMap.put(((ProcessorStatus) status).getName(), status); } } else if (status instanceof ConnectionStatus) { statusMap.put(((ConnectionStatus) status).getId(), status); if (((ConnectionStatus) status).getName() != null) { statusMap.put(((ConnectionStatus) status).getName(), status); } } else if (status instanceof RemoteProcessGroupStatus) { statusMap.put(((RemoteProcessGroupStatus) status).getId(), status); if (((RemoteProcessGroupStatus) status).getName() != null) { statusMap.put(((RemoteProcessGroupStatus) status).getName(), status); } } } return statusMap; }
/** * Gets the status for the specified remote process group. * * @param remoteProcessGroupId remote process group id * @return the status for the specified remote process group */ public RemoteProcessGroupStatus getRemoteProcessGroupStatus(final String remoteProcessGroupId) { final ProcessGroup root = getRootGroup(); final RemoteProcessGroup remoteProcessGroup = root.findRemoteProcessGroup(remoteProcessGroupId); // ensure the output port was found if (remoteProcessGroup == null) { throw new ResourceNotFoundException(String.format("Unable to locate remote process group with id '%s'.", remoteProcessGroupId)); } final String groupId = remoteProcessGroup.getProcessGroup().getIdentifier(); final ProcessGroupStatus groupStatus = flowController.getEventAccess().getGroupStatus(groupId, NiFiUserUtils.getNiFiUser(), 1); if (groupStatus == null) { throw new ResourceNotFoundException(String.format("Unable to locate group with id '%s'.", groupId)); } final RemoteProcessGroupStatus status = groupStatus.getRemoteProcessGroupStatus().stream().filter(rpgStatus -> remoteProcessGroupId.equals(rpgStatus.getId())).findFirst().orElse(null); if (status == null) { throw new ResourceNotFoundException(String.format("Unable to locate remote process group with id '%s'.", remoteProcessGroupId)); } return status; }
private void serializeRemoteProcessGroupStatus(final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final RemoteProcessGroupStatus status, final DateFormat df, final String hostname, final String applicationName, final String platform, final String parentId, final Date currentDate) { final JsonObjectBuilder builder = factory.createObjectBuilder(); final String componentType = "RemoteProcessGroup"; final String componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "activeRemotePortCount", status.getActiveRemotePortCount()); addField(builder, "activeThreadCount", status.getActiveThreadCount()); addField(builder, "inactiveRemotePortCount", status.getInactiveRemotePortCount()); addField(builder, "receivedContentSize", status.getReceivedContentSize()); addField(builder, "receivedCount", status.getReceivedCount()); addField(builder, "sentContentSize", status.getSentContentSize()); addField(builder, "sentCount", status.getSentCount()); addField(builder, "averageLineageDuration", status.getAverageLineageDuration()); arrayBuilder.add(builder.build()); } }
final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(rpg)); final RemoteProcessGroupStatusDTO status = getComponentStatus( () -> groupStatus.getRemoteProcessGroupStatus().stream().filter(remoteProcessGroupStatus -> rpg.getIdentifier().equals(remoteProcessGroupStatus.getId())).findFirst().orElse(null), remoteProcessGroupStatus -> createRemoteProcessGroupStatusDto(rpg, remoteProcessGroupStatus) );
final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(remoteProcessGroup)); final RemoteProcessGroupStatusDTO status = getComponentStatus( () -> groupStatus.getRemoteProcessGroupStatus().stream().filter(rpgStatus -> remoteProcessGroup.getIdentifier().equals(rpgStatus.getId())).findFirst().orElse(null), remoteProcessGroupStatus -> createRemoteProcessGroupStatusDto(remoteProcessGroup, remoteProcessGroupStatus) );
if (childRemoteProcessGroupStatusCollection != null) { for (final RemoteProcessGroupStatus childRemoteProcessGroupStatus : childRemoteProcessGroupStatusCollection) { final RemoteProcessGroup remoteProcessGroup = processGroup.findRemoteProcessGroup(childRemoteProcessGroupStatus.getId()); final RemoteProcessGroupStatusDTO childRemoteProcessGroupStatusDto = createRemoteProcessGroupStatusDto(remoteProcessGroup, childRemoteProcessGroupStatus); final PermissionsDTO remoteProcessGroupPermissions = createPermissionsDto(remoteProcessGroup);
public void addRemoteProcessGroup(RemoteProcessGroupStatus r) { remoteProcessGroups.put(r.getId(), r); }
private static List<PortStatus> getPortStatusList(RemoteProcessGroupStatus inputRemoteProcessGroupStatus, FlowController flowController, String rootGroupId, Function<RemoteProcessGroup, Set<RemoteGroupPort>> portFunction) { return portFunction.apply(flowController.getGroup(rootGroupId).getRemoteProcessGroup(inputRemoteProcessGroupStatus.getId())).stream().map(r -> { PortStatus portStatus = new PortStatus(); portStatus.setName(r.getName()); portStatus.setTargetExists(r.getTargetExists()); portStatus.setTargetRunning(r.isTargetRunning()); return portStatus; }).collect(Collectors.toList()); }