Search in sources :

Example 6 with StringReplaceJarResource

use of com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource in project halyard by spinnaker.

the class LocalGitServiceProvider method getInstallCommand.

@Override
public String getInstallCommand(DeploymentDetails deploymentDetails, GenerateService.ResolvedConfiguration resolvedConfiguration, Map<String, String> installCommands) {
    Map<String, Object> bindings;
    List<SpinnakerService.Type> serviceTypes = new ArrayList<>(installCommands.keySet()).stream().map(SpinnakerService.Type::fromCanonicalName).collect(Collectors.toList());
    List<String> serviceInstalls = serviceTypes.stream().map(t -> installCommands.get(t.getCanonicalName())).collect(Collectors.toList());
    TemplatedResource resource = new StringReplaceJarResource("/git/install.sh");
    bindings = new HashMap<>();
    bindings.put("install-commands", String.join("\n", serviceInstalls));
    return resource.setBindings(bindings).toString();
}
Also used : DeploymentDetails(com.netflix.spinnaker.halyard.deploy.deployment.v1.DeploymentDetails) Autowired(org.springframework.beans.factory.annotation.Autowired) HashMap(java.util.HashMap) ArtifactService(com.netflix.spinnaker.halyard.deploy.services.v1.ArtifactService) GenerateService(com.netflix.spinnaker.halyard.deploy.services.v1.GenerateService) SpinnakerRuntimeSettings(com.netflix.spinnaker.halyard.deploy.spinnaker.v1.SpinnakerRuntimeSettings) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) Component(org.springframework.stereotype.Component) List(java.util.List) LocalServiceProvider(com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.local.LocalServiceProvider) StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) Map(java.util.Map) RemoteAction(com.netflix.spinnaker.halyard.core.RemoteAction) SpinnakerService(com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.SpinnakerService) TemplatedResource(com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource) StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) TemplatedResource(com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource) SpinnakerService(com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.SpinnakerService)

Example 7 with StringReplaceJarResource

use of com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource in project halyard by spinnaker.

the class NestableCommand method commandCompletorCase.

private String commandCompletorCase(int depth) {
    StringReplaceJarResource completorCase = new StringReplaceJarResource("/hal-completor-case");
    Map<String, Object> bindings = new HashMap<>();
    String flagNames = commander.getParameters().stream().map(ParameterDescription::getLongestName).reduce("", (a, b) -> a + " " + b);
    String subcommandNames = subcommands.entrySet().stream().map(Map.Entry::getKey).reduce("", (a, b) -> a + " " + b);
    bindings.put("subcommands", subcommandNames);
    bindings.put("flags", flagNames);
    bindings.put("command", getCommandName());
    bindings.put("depth", depth + "");
    bindings.put("next", (depth + 1) + "");
    String subCases = subcommands.entrySet().stream().map(c -> c.getValue().commandCompletorCase(depth + 1)).reduce("", (a, b) -> a + b);
    bindings.put("recurse", subCases.isEmpty() ? ":" : subCases);
    return completorCase.setBindings(bindings).toString();
}
Also used : Parameters(com.beust.jcommander.Parameters) Setter(lombok.Setter) ExpectedDaemonFailureException(com.netflix.spinnaker.halyard.cli.services.v1.ExpectedDaemonFailureException) Getter(lombok.Getter) Parameter(com.beust.jcommander.Parameter) HashMap(java.util.HashMap) AnsiFormatUtils(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiFormatUtils) ArrayList(java.util.ArrayList) AccessLevel(lombok.AccessLevel) JobExecutor(com.netflix.spinnaker.halyard.core.job.v1.JobExecutor) Map(java.util.Map) ThreadLocalRandom(java.util.concurrent.ThreadLocalRandom) FormatConverter(com.netflix.spinnaker.halyard.cli.command.v1.converter.FormatConverter) Console(java.io.Console) ConnectException(java.net.ConnectException) AnsiParagraphBuilder(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiParagraphBuilder) AnsiStoryBuilder(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiStoryBuilder) AnsiStyle(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiStyle) ParameterDescription(com.beust.jcommander.ParameterDescription) AnsiUi(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiUi) JCommander(com.beust.jcommander.JCommander) AnsiPrinter(com.netflix.spinnaker.halyard.cli.ui.v1.AnsiPrinter) Collectors(java.util.stream.Collectors) JobExecutorLocal(com.netflix.spinnaker.halyard.core.job.v1.JobExecutorLocal) LogLevelConverter(com.netflix.spinnaker.halyard.cli.command.v1.converter.LogLevelConverter) TaskKilledException(com.netflix.spinnaker.halyard.cli.services.v1.TaskKilledException) Level(ch.qos.logback.classic.Level) List(java.util.List) RetrofitError(retrofit.RetrofitError) TreeMap(java.util.TreeMap) StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) Comparator(java.util.Comparator) StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) HashMap(java.util.HashMap) HashMap(java.util.HashMap) Map(java.util.Map) TreeMap(java.util.TreeMap)

Example 8 with StringReplaceJarResource

use of com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource in project halyard by spinnaker.

the class LocalDebianService method installArtifactCommand.

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 upstartServiceName = getUpstartServiceName();
    String ensureStopped = StringUtils.isEmpty(upstartServiceName) ? "" : String.join("\n", "set +e", String.join(" ", "service", upstartServiceName, "stop"), "set -e");
    pinResource.setBindings(bindings);
    installResource.setBindings(bindings);
    return Strings.join("\n", pinResource, installResource, ensureStopped);
}
Also used : StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) HashMap(java.util.HashMap) TemplatedResource(com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource)

Example 9 with StringReplaceJarResource

use of com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource in project halyard by spinnaker.

the class LocalGitServiceProvider method getPrepCommand.

@Override
public String getPrepCommand(DeploymentDetails deploymentDetails, List<String> prepCommands) {
    String servicePrep = String.join("\n", prepCommands);
    TemplatedResource resource = new StringReplaceJarResource("/git/prep.sh");
    Map<String, Object> bindings = new HashMap<>();
    bindings.put("prep-commands", servicePrep);
    return resource.setBindings(bindings).toString();
}
Also used : StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) HashMap(java.util.HashMap) TemplatedResource(com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource)

Example 10 with StringReplaceJarResource

use of com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource in project halyard by spinnaker.

the class LocalGitService method installArtifactCommand.

default String installArtifactCommand(DeploymentDetails deploymentDetails) {
    Map<String, Object> bindings = new HashMap<>();
    bindings.put("scripts-dir", getScriptsDir());
    bindings.put("artifact", getArtifact().getName());
    TemplatedResource installResource = new StringReplaceJarResource("/git/install-component.sh");
    installResource.setBindings(bindings);
    return installResource.toString();
}
Also used : StringReplaceJarResource(com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource) HashMap(java.util.HashMap) TemplatedResource(com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource)

Aggregations

StringReplaceJarResource (com.netflix.spinnaker.halyard.core.resource.v1.StringReplaceJarResource)13 TemplatedResource (com.netflix.spinnaker.halyard.core.resource.v1.TemplatedResource)11 HashMap (java.util.HashMap)11 RemoteAction (com.netflix.spinnaker.halyard.core.RemoteAction)6 Collectors (java.util.stream.Collectors)5 DeploymentDetails (com.netflix.spinnaker.halyard.deploy.deployment.v1.DeploymentDetails)4 ArtifactService (com.netflix.spinnaker.halyard.deploy.services.v1.ArtifactService)4 GenerateService (com.netflix.spinnaker.halyard.deploy.services.v1.GenerateService)4 SpinnakerRuntimeSettings (com.netflix.spinnaker.halyard.deploy.spinnaker.v1.SpinnakerRuntimeSettings)4 SpinnakerService (com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.SpinnakerService)4 Autowired (org.springframework.beans.factory.annotation.Autowired)4 Component (org.springframework.stereotype.Component)4 ArtifactSourcesConfig (com.netflix.spinnaker.halyard.config.config.v1.ArtifactSourcesConfig)3 BillOfMaterials (com.netflix.spinnaker.halyard.core.registry.v1.BillOfMaterials)3 LocalServiceProvider (com.netflix.spinnaker.halyard.deploy.spinnaker.v1.service.local.LocalServiceProvider)3 Strings (io.fabric8.utils.Strings)3 ArrayList (java.util.ArrayList)3 List (java.util.List)3 Map (java.util.Map)3 java.util (java.util)2