@RequestMapping(value = "/", method = RequestMethod.GET) DaemonTask<Halconfig, Features> getFeatures(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings) { return GenericGetRequest.<Features>builder() .getter(() -> featuresService.getFeatures(deploymentName)) .validator(() -> featuresService.validateFeatures(deploymentName)) .description("Get features") .build() .execute(validationSettings); }
@RequestMapping(value = "/", method = RequestMethod.PUT) DaemonTask<Halconfig, Void> setFeatures(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestBody Features features) { return GenericUpdateRequest.<Features>builder(halconfigParser) .stagePath(halconfigDirectoryStructure.getStagingPath(deploymentName)) .updater(f -> featuresService.setFeatures(deploymentName, f)) .validator(() -> featuresService.validateFeatures(deploymentName)) .description("Edit features") .build() .execute(validationSettings, features); } }
public Features getFeatures(String deploymentName) { NodeFilter filter = new NodeFilter().setDeployment(deploymentName).setFeatures(); List<Features> matching = lookupService.getMatchingNodesOfType(filter, Features.class); switch (matching.size()) { case 0: Features features = new Features(); setFeatures(deploymentName, features); return features; case 1: return matching.get(0); default: throw new RuntimeException("It shouldn't be possible to have multiple features nodes. This is a bug."); } }
public Features getFeatures(String deploymentName) { NodeFilter filter = new NodeFilter().setDeployment(deploymentName).setFeatures(); List<Features> matching = lookupService.getMatchingNodesOfType(filter, Features.class); switch (matching.size()) { case 0: Features features = new Features(); setFeatures(deploymentName, features); return features; case 1: return matching.get(0); default: throw new RuntimeException("It shouldn't be possible to have multiple features nodes. This is a bug."); } }