diff --git a/src/main/java/com/netflix/simianarmy/janitor/AbstractJanitor.java b/src/main/java/com/netflix/simianarmy/janitor/AbstractJanitor.java index 75cf3d3b..94270dce 100644 --- a/src/main/java/com/netflix/simianarmy/janitor/AbstractJanitor.java +++ b/src/main/java/com/netflix/simianarmy/janitor/AbstractJanitor.java @@ -232,6 +232,11 @@ public void prepareToRun() { */ @Override public void markResources() { + if (config.getBoolOrElse("simianarmy.janitor.skipMark", false)) { + LOGGER.info("*****SKIPPING MARKING {}****", resourceType); + return ; + } + markedResources.clear(); unmarkedResources.clear(); checkedResourcesCount = 0; @@ -308,24 +313,25 @@ public void cleanupResources() { LOGGER.info("Checking {} marked resources for cleanup. LeashMode={}", trackedMarkedResources.size(), leashed); Date now = calendar.now().getTime(); for (Resource markedResource : trackedMarkedResources.values()) { - // find matching crawled resource. This ensures we always have the freshest resource. - List matchingCrawledResources = Optional.ofNullable(crawler.resources(markedResource.getId())) - .orElse(Collections.emptyList()); - - LOGGER.info("Rechecking resource ({}) before deletion {} - matching candidates {}", - markedResource.getResourceType(), markedResource, matchingCrawledResources); - Optional crawledResource = matchingCrawledResources.stream() - .filter(r -> r.equals(markedResource)) - .findFirst(); - - if (!crawledResource.isPresent() || ruleEngine.isValid(crawledResource.get())) { - skippedVanishedOrValidResources.add(markedResource); - if (config.getBoolOrElse("simianarmy.janitor.skipVanishedOrValidResources", false)) { + if (config.getBoolOrElse("simianarmy.janitor.skipVanishedOrValidResources", false)) { + // find matching crawled resource. This ensures we always have the freshest resource. + List matchingCrawledResources = Optional.ofNullable(crawler.resources(markedResource.getId())) + .orElse(Collections.emptyList()); + + LOGGER.info("Rechecking resource {} before deletion {} - matching candidates {}", + markedResource, markedResource.getResourceType(), matchingCrawledResources); + Optional crawledResource = matchingCrawledResources.stream() + .filter(r -> r.equals(markedResource)) + .findFirst(); + + if (!crawledResource.isPresent() || ruleEngine.isValid(crawledResource.get())) { + skippedVanishedOrValidResources.add(markedResource); LOGGER.warn("Skipping resource {} that either no longer exists or is now valid", markedResource); continue; } } + if (canClean(markedResource, now)) { LOGGER.info("Cleaning up resource {} of type {}. LeashMode={}", markedResource.getId(), markedResource.getResourceType().name(), leashed);