@Override default String getStartupCommand() { if (getUpstartServiceName() != null) { return "service " + getUpstartServiceName() + " restart"; } return null; }
@Override default String getStartupCommand() { if (getUpstartServiceName() != null) { return "service " + getUpstartServiceName() + " restart"; } return null; }
@Override public String getInstallCommand(DeploymentDetails deploymentDetails, GenerateService.ResolvedConfiguration resolvedConfiguration, Map<String, String> installCommands, String startupCommand) { Map<String, Object> bindings = new HashMap<>(); List<SpinnakerService.Type> serviceTypes = new ArrayList<>(installCommands.keySet()).stream().map(SpinnakerService.Type::fromCanonicalName).collect(Collectors.toList()); List<String> upstartNames = getPrioritizedBakeableServices(serviceTypes) .stream() .filter(i -> resolvedConfiguration.getServiceSettings(i.getService()).getEnabled()) .map(i -> ((BakeDebianService) i).getUpstartServiceName()) .filter(Objects::nonNull) .collect(Collectors.toList()); List<String> systemdServiceConfigs = upstartNames.stream() .map(n -> n + ".service") .collect(Collectors.toList()); List<String> serviceInstalls = serviceTypes.stream() .map(t -> installCommands.get(t.getCanonicalName())) .collect(Collectors.toList()); TemplatedResource resource = new StringReplaceJarResource("/debian/init.sh"); bindings.put("services", Strings.join(upstartNames, " ")); bindings.put("systemd-service-configs", Strings.join(systemdServiceConfigs, " ")); String upstartInit = resource.setBindings(bindings).toString(); BillOfMaterials.ArtifactSources artifactSources = artifactService.getArtifactSources(deploymentDetails.getDeploymentName()); resource = new StringReplaceJarResource("/debian/pre-bake.sh"); bindings = new HashMap<>(); bindings.put("debian-repository", artifactSourcesConfig.mergeWithBomSources(artifactSources).getDebianRepository()); bindings.put("install-commands", String.join("\n", serviceInstalls)); bindings.put("upstart-init", upstartInit); bindings.put("startup-file", Paths.get(startupScriptPath, "startup.sh").toString()); bindings.put("startup-command", startupCommand); return resource.setBindings(bindings).toString(); }
@Override public String getInstallCommand(DeploymentDetails deploymentDetails, GenerateService.ResolvedConfiguration resolvedConfiguration, Map<String, String> installCommands, String startupCommand) { Map<String, Object> bindings = new HashMap<>(); List<SpinnakerService.Type> serviceTypes = new ArrayList<>(installCommands.keySet()).stream().map(SpinnakerService.Type::fromCanonicalName).collect(Collectors.toList()); List<String> upstartNames = getPrioritizedBakeableServices(serviceTypes) .stream() .filter(i -> resolvedConfiguration.getServiceSettings(i.getService()).getEnabled()) .map(i -> ((BakeDebianService) i).getUpstartServiceName()) .filter(Objects::nonNull) .collect(Collectors.toList()); List<String> systemdServiceConfigs = upstartNames.stream() .map(n -> n + ".service") .collect(Collectors.toList()); List<String> serviceInstalls = serviceTypes.stream() .map(t -> installCommands.get(t.getCanonicalName())) .collect(Collectors.toList()); TemplatedResource resource = new StringReplaceJarResource("/debian/init.sh"); bindings.put("services", Strings.join(upstartNames, " ")); bindings.put("systemd-service-configs", Strings.join(systemdServiceConfigs, " ")); String upstartInit = resource.setBindings(bindings).toString(); BillOfMaterials.ArtifactSources artifactSources = artifactService.getArtifactSources(deploymentDetails.getDeploymentName()); resource = new StringReplaceJarResource("/debian/pre-bake.sh"); bindings = new HashMap<>(); bindings.put("debian-repository", artifactSourcesConfig.mergeWithBomSources(artifactSources).getDebianRepository()); bindings.put("install-commands", String.join("\n", serviceInstalls)); bindings.put("upstart-init", upstartInit); bindings.put("startup-file", Paths.get(startupScriptPath, "startup.sh").toString()); bindings.put("startup-command", startupCommand); return resource.setBindings(bindings).toString(); }
default String installArtifactCommand(DeploymentDetails deploymentDetails) { Map<String, Object> bindings = new HashMap<>(); String artifactName = getArtifact().getName(); bindings.put("artifact", artifactName); bindings.put("version", deploymentDetails.getArtifactVersion(artifactName)); // pin as well as install at a particular version to ensure `apt-get uprade` doesn't accidentally upgrade to `nightly` TemplatedResource pinResource = new StringReplaceJarResource("/debian/pin.sh"); TemplatedResource installResource = new StringReplaceJarResource("/debian/install-component.sh"); String ensureStopped = String.join("\n", "set +e", "service " + getUpstartServiceName() + " stop", "set -e"); pinResource.setBindings(bindings); installResource.setBindings(bindings); return Strings.join("\n", pinResource, installResource, ensureStopped); } }
default String installArtifactCommand(DeploymentDetails deploymentDetails) { Map<String, Object> bindings = new HashMap<>(); String artifactName = getArtifact().getName(); bindings.put("artifact", artifactName); bindings.put("version", deploymentDetails.getArtifactVersion(artifactName)); // pin as well as install at a particular version to ensure `apt-get uprade` doesn't accidentally upgrade to `nightly` TemplatedResource pinResource = new StringReplaceJarResource("/debian/pin.sh"); TemplatedResource installResource = new StringReplaceJarResource("/debian/install-component.sh"); String ensureStopped = String.join("\n", "set +e", "service " + getUpstartServiceName() + " stop", "set -e"); pinResource.setBindings(bindings); installResource.setBindings(bindings); return Strings.join("\n", pinResource, installResource, ensureStopped); } }