예제 #1
0
 /**
  * Clean up unused deployment collector items
  *
  * @param collector the {@link UDeployCollector}
  */
 @SuppressWarnings("PMD.AvoidDeeplyNestedIfStmts")
 private void clean(OctopusCollector collector) {
   deleteUnwantedJobs(collector);
   Set<ObjectId> uniqueIDs = new HashSet<>();
   for (com.capitalone.dashboard.model.Component comp : dbComponentRepository.findAll()) {
     if (comp.getCollectorItems() == null || comp.getCollectorItems().isEmpty()) continue;
     List<CollectorItem> itemList = comp.getCollectorItems().get(CollectorType.Deployment);
     if (itemList == null) continue;
     for (CollectorItem ci : itemList) {
       if (ci == null) continue;
       uniqueIDs.add(ci.getId());
     }
   }
   List<OctopusApplication> appList = new ArrayList<>();
   Set<ObjectId> udId = new HashSet<>();
   udId.add(collector.getId());
   for (OctopusApplication app : octopusApplicationRepository.findByCollectorIdIn(udId)) {
     if (app != null) {
       app.setEnabled(uniqueIDs.contains(app.getId()));
       appList.add(app);
     }
   }
   octopusApplicationRepository.save(appList);
 }