public void collectLogs(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } deployer.collectLogs(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); }
@RequestMapping(value = "/{deploymentName:.+}/collectLogs/", method = RequestMethod.PUT) DaemonTask<Halconfig, Void> collectLogs(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<String> serviceNames, @RequestParam(required = false) List<String> excludeServiceNames) { List<String> finalServiceNames = serviceNames != null ? serviceNames : Collections.emptyList(); List<String> finalExcludeServiceNames = excludeServiceNames != null ? excludeServiceNames : Collections.emptyList(); StaticRequestBuilder<Void> builder = new StaticRequestBuilder<>(() -> { deployService.collectLogs(deploymentName, finalServiceNames, finalExcludeServiceNames); return null; }); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeploymentShallow(deploymentName)); } return DaemonTaskHandler.submitTask(builder::build, "Collecting service logs"); }
@RequestMapping(value = "/{deploymentName:.+}/connect/", method = RequestMethod.POST) DaemonTask<Halconfig, RemoteAction> connect(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<String> serviceNames) { List<String> finalServiceNames = serviceNames == null ? new ArrayList<>() : serviceNames; StaticRequestBuilder<RemoteAction> builder = new StaticRequestBuilder<>( () -> deployService.connectCommand(deploymentName, finalServiceNames)); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeploymentShallow(deploymentName)); } return DaemonTaskHandler.submitTask(builder::build, "Connect to Spinnaker deployment."); }
public void clean(String deploymentName) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); RemoteAction action = serviceProvider.clean(deploymentDetails, serviceProvider.buildRuntimeSettings(deploymentConfiguration)); action.commitScript(halconfigDirectoryStructure.getUnInstallScriptPath(deploymentName)); }
@RequestMapping(value = "/{deploymentName:.+}/deploy/", method = RequestMethod.POST) DaemonTask<Halconfig, RemoteAction> deploy(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<DeployOption> deployOptions, @RequestParam(required = false) List<String> serviceNames, @RequestParam(required = false) List<String> excludeServiceNames) { List<DeployOption> finalDeployOptions = deployOptions != null ? deployOptions : Collections.emptyList(); List<String> finalServiceNames = serviceNames != null ? serviceNames : Collections.emptyList(); List<String> finalExcludeServiceNames = excludeServiceNames != null ? excludeServiceNames : Collections.emptyList(); StaticRequestBuilder<RemoteAction> builder = new StaticRequestBuilder<>( () -> deployService.deploy(deploymentName, finalDeployOptions, finalServiceNames, finalExcludeServiceNames)); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeployment(deploymentName)); } return DaemonTaskHandler .submitTask(builder::build, "Apply deployment", TimeUnit.MINUTES.toMillis(30)); }
@RequestMapping(value = "/{deploymentName:.+}/prep/", method = RequestMethod.POST) DaemonTask<Halconfig, RemoteAction> prep(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<String> serviceNames, @RequestParam(required = false) List<String> excludeServiceNames) { List<String> finalServiceNames = serviceNames != null ? serviceNames : Collections.emptyList(); List<String> finalExcludeServiceNames = excludeServiceNames != null ? excludeServiceNames : Collections.emptyList(); StaticRequestBuilder<RemoteAction> builder = new StaticRequestBuilder<>( () -> deployService.prep(deploymentName, finalServiceNames, finalExcludeServiceNames)); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeployment(deploymentName)); } return DaemonTaskHandler .submitTask(builder::build, "Prep deployment", TimeUnit.MINUTES.toMillis(5)); }
@RequestMapping(value = "/{deploymentName:.+}/rollback/", method = RequestMethod.POST) DaemonTask<Halconfig, Void> rollback(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings, @RequestParam(required = false) List<String> serviceNames, @RequestParam(required = false) List<String> excludeServiceNames) { List<String> finalServiceNames = serviceNames != null ? serviceNames : Collections.emptyList(); List<String> finalExcludeServiceNames = excludeServiceNames != null ? excludeServiceNames : Collections.emptyList(); Supplier<Void> buildResponse = () -> { deployService.rollback(deploymentName, finalServiceNames, finalExcludeServiceNames); return null; }; StaticRequestBuilder<Void> builder = new StaticRequestBuilder<>(buildResponse); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeploymentShallow(deploymentName)); } return DaemonTaskHandler .submitTask(builder::build, "Rollback Spinnaker", TimeUnit.MINUTES.toMillis(30)); }
@RequestMapping(value = "/{deploymentName:.+}/configDiff/", method = RequestMethod.GET) DaemonTask<Halconfig, NodeDiff> configDiff(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings) { return GenericGetRequest.<NodeDiff>builder() .getter(() -> deployService.configDiff(deploymentName)) .validator(() -> deploymentService.validateDeployment(deploymentName)) .description("Determine config diff") .build() .execute(validationSettings); }
@RequestMapping(value = "/{deploymentName:.+}/clean/", method = RequestMethod.POST) DaemonTask<Halconfig, Void> clean(@PathVariable String deploymentName, @ModelAttribute ValidationSettings validationSettings) { Supplier<Void> buildResponse = () -> { deployService.clean(deploymentName); return null; }; StaticRequestBuilder<Void> builder = new StaticRequestBuilder<>(buildResponse); builder.setSeverity(validationSettings.getSeverity()); if (validationSettings.isValidate()) { builder.setValidateResponse(() -> deploymentService.validateDeploymentShallow(deploymentName)); } return DaemonTaskHandler.submitTask(builder::build, "Clean Deployment of Spinnaker"); }
public void clean(String deploymentName) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); RemoteAction action = serviceProvider.clean(deploymentDetails, serviceProvider.buildRuntimeSettings(deploymentConfiguration)); action.commitScript(halconfigDirectoryStructure.getUnInstallScriptPath(deploymentName)); }
public void deployConfig(com.netflix.spinnaker.halyard.proto.DeployConfigRequest request, io.grpc.stub.StreamObserver<com.google.longrunning.Operation> responseObserver) { StaticRequestBuilder<RemoteAction> builder = new StaticRequestBuilder<>( () -> deployService.deploy(request.getName(), Collections.emptyList(), Collections.emptyList(), Collections.emptyList())); builder.setValidateResponse(() -> deploymentService.validateDeployment(request.getName())); builder.setSeverity(Severity.WARNING); builder.setSetup(() -> halconfigParser.setInmemoryHalConfig(new ByteArrayInputStream(request.getConfig().toByteArray())) ); responseObserver.onNext(DaemonTaskHandler .submitTask(builder::build, "Apply deployment", TimeUnit.MINUTES.toMillis(30)).getLRO()); responseObserver.onCompleted(); }
public void rollback(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); deployer.rollback(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); }
public void rollback(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); deployer.rollback(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); }
public void collectLogs(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } deployer.collectLogs(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); }
public RemoteAction connectCommand(String deploymentName, List<String> serviceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes.add(SpinnakerService.Type.DECK); serviceTypes.add(SpinnakerService.Type.GATE); } RemoteAction result = deployer.connectCommand(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); result.setAutoRun(true); result.commitScript(halconfigDirectoryStructure.getConnectScriptPath(deploymentName)); return result; }
public RemoteAction connectCommand(String deploymentName, List<String> serviceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes.add(SpinnakerService.Type.DECK); serviceTypes.add(SpinnakerService.Type.GATE); } RemoteAction result = deployer.connectCommand(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); result.setAutoRun(true); result.commitScript(halconfigDirectoryStructure.getConnectScriptPath(deploymentName)); return result; }
public RemoteAction prep(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } RemoteAction action = deployer.prep(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); if (!action.getScript().isEmpty()) { action.commitScript(halconfigDirectoryStructure.getPrepScriptPath(deploymentName)); } return action; }
public RemoteAction prep(String deploymentName, List<String> serviceNames, List<String> excludeServiceNames) { DeploymentConfiguration deploymentConfiguration = deploymentService.getDeploymentConfiguration(deploymentName); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration); Deployer deployer = getDeployer(deploymentConfiguration); SpinnakerServiceProvider<DeploymentDetails> serviceProvider = serviceProviderFactory.create(deploymentConfiguration); SpinnakerRuntimeSettings runtimeSettings = serviceProvider.buildRuntimeSettings(deploymentConfiguration); List<SpinnakerService.Type> serviceTypes = serviceNames.stream() .map(SpinnakerService.Type::fromCanonicalName) .collect(Collectors.toList()); if (serviceTypes.isEmpty()) { serviceTypes = serviceProvider .getServices() .stream() .map(SpinnakerService::getType) .collect(Collectors.toList()); } if (!excludeServiceNames.isEmpty()) { serviceTypes = serviceTypes .stream() .filter(serviceType -> !excludeServiceNames.contains(serviceType.getCanonicalName())) .collect(Collectors.toList()); } RemoteAction action = deployer.prep(serviceProvider, deploymentDetails, runtimeSettings, serviceTypes); if (!action.getScript().isEmpty()) { action.commitScript(halconfigDirectoryStructure.getPrepScriptPath(deploymentName)); } return action; }
configParser.atomicWrite(serviceProfilesPath, resolvedConfiguration.getServiceProfiles()); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration);
configParser.atomicWrite(serviceProfilesPath, resolvedConfiguration.getServiceProfiles()); Deployer deployer = getDeployer(deploymentConfiguration); DeploymentDetails deploymentDetails = getDeploymentDetails(deploymentConfiguration);