Skip to content

Commit f2562da

Browse files
authored
Merge pull request #184 from conorschofield/master
add extra logging and skipping over bad pvs
2 parents 2f06488 + 5bb1f5b commit f2562da

File tree

1 file changed

+28
-15
lines changed

1 file changed

+28
-15
lines changed

src/main/java/org/phoebus/channelfinder/processors/aa/AAChannelProcessor.java

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ private void addChannelChange(
199199
aaArchivePVS.get(archiverAlias).add(newArchiverPV);
200200
}
201201
}
202-
202+
203203
private ArchiveAction pickArchiveAction(String archiveStatus, String pvStatus) {
204204
if (archiveStatus.equals("Being archived") && (pvStatus.equals(PV_STATUS_INACTIVE))) {
205205
return ArchiveAction.PAUSE;
@@ -209,39 +209,52 @@ private ArchiveAction pickArchiveAction(String archiveStatus, String pvStatus) {
209209
&& !archiveStatus.equals("Paused")
210210
&& pvStatus.equals(PV_STATUS_ACTIVE)) { // If archive status anything else
211211
return ArchiveAction.ARCHIVE;
212+
212213
}
213214

214215
return ArchiveAction.NONE;
215216
}
216217

217218
private Map<ArchiveAction, List<ArchivePVOptions>> getArchiveActions(
218-
Map<String, ArchivePVOptions> archivePVS, ArchiverInfo archiverInfo) {
219+
Map<String, ArchivePVOptions> archivePVS, ArchiverInfo archiverInfo) {
219220
if (archiverInfo == null) {
220221
return Map.of();
221222
}
222223

223224
logger.log(Level.INFO, () -> String.format("Get archiver status in archiver %s", archiverInfo));
224225

225226
Map<ArchiveAction, List<ArchivePVOptions>> result = new EnumMap<>(ArchiveAction.class);
226-
Arrays.stream(ArchiveAction.values())
227-
.forEach(archiveAction -> result.put(archiveAction, new ArrayList<>()));
227+
Arrays.stream(ArchiveAction.values()).forEach(archiveAction -> result.put(archiveAction, new ArrayList<>()));
228228
// Don't request to archive an empty list.
229229
if (archivePVS.isEmpty()) {
230230
return result;
231231
}
232-
List<Map<String, String>> statuses =
233-
archiverClient.getStatuses(archivePVS, archiverInfo.url(), archiverInfo.alias());
234-
statuses.forEach(
235-
archivePVStatusJsonMap -> {
236-
String archiveStatus = archivePVStatusJsonMap.get("status");
237-
String pvName = archivePVStatusJsonMap.get("pvName");
238-
String pvStatus = archivePVS.get(pvName).getPvStatus();
239-
ArchiveAction action = pickArchiveAction(archiveStatus, pvStatus);
240-
result.get(action).add(archivePVS.get(pvName));
241-
});
232+
List<Map<String, String>> statuses = archiverClient.getStatuses(archivePVS, archiverInfo.url(), archiverInfo.alias());
233+
logger.log(Level.FINER, "Statuses {0}", statuses);
234+
statuses.forEach(archivePVStatusJsonMap -> {
235+
String archiveStatus = archivePVStatusJsonMap.get("status");
236+
String pvName = archivePVStatusJsonMap.get("pvName");
237+
238+
if (archiveStatus == null || pvName == null) {
239+
logger.log(Level.WARNING, "Missing status or pvName in archivePVStatusJsonMap: {0}", archivePVStatusJsonMap);
240+
return;
241+
}
242+
243+
ArchivePVOptions archivePVOptions = archivePVS.get(pvName);
244+
if (archivePVOptions == null) {
245+
logger.log(Level.WARNING, "archivePVS does not contain pvName: {0}", pvName);
246+
return;
247+
}
248+
249+
String pvStatus = archivePVOptions.getPvStatus();
250+
ArchiveAction action = pickArchiveAction(archiveStatus, pvStatus);
251+
252+
List<ArchivePVOptions> archivePVOptionsList = result.get(action);
253+
archivePVOptionsList.add(archivePVOptions);
254+
});
242255
return result;
243256
}
244-
257+
245258
private ArchivePVOptions createArchivePV(
246259
List<String> policyList, Channel channel, String archiveProperty, String pvStaus) {
247260
ArchivePVOptions newArchiverPV = new ArchivePVOptions();

0 commit comments

Comments
 (0)