@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(); }
public static Type fromCanonicalName(String canonicalName) { String finalName = reduceName(canonicalName); return Arrays.stream(values()) .filter(t -> reduceName(t.getCanonicalName()).equalsIgnoreCase(finalName)) .findFirst() .orElseThrow(() -> new IllegalArgumentException("No service with canonical name " + canonicalName + " exists.")); } }
public static Type fromCanonicalName(String canonicalName) { String finalName = reduceName(canonicalName); return Arrays.stream(values()) .filter(t -> reduceName(t.getCanonicalName()).equalsIgnoreCase(finalName)) .findFirst() .orElseThrow(() -> new IllegalArgumentException("No service with canonical name " + canonicalName + " exists.")); } }
public <S> KubernetesV2Service getService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (KubernetesV2Service) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }}
public <S> KubernetesV2Service getService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (KubernetesV2Service) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }}
public <S> BakeService<S> getBakeService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (BakeService<S>) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
public <S> DistributedService<S, T> getDeployableService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (DistributedService<S, T>) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
public String getCanonicalName() { return getType().getCanonicalName(); }
SpinnakerService getSpinnakerService(SpinnakerService.Type type) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (SpinnakerService) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
public <S> LocalService<S> getLocalService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (LocalService<S>) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
public <S> LocalService<S> getLocalService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (LocalService<S>) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
public String getBaseCanonicalName() { return getType().getBaseType().getCanonicalName(); }
public String getCanonicalName() { return getType().getCanonicalName(); }
public <S> DistributedService<S, T> getDeployableService(SpinnakerService.Type type, Class<S> clazz) { Field serviceField = getField(type.getCanonicalName() + "service"); if (serviceField == null) { return null; } serviceField.setAccessible(true); try { return (DistributedService<S, T>) serviceField.get(this); } catch (IllegalAccessException e) { throw new HalException(Problem.Severity.FATAL, "Can't access service field for " + type + ": " + e.getMessage()); } finally { serviceField.setAccessible(false); } }
default String secretName(String detail, int version) { return String.join("-", "hal", getService().getType().getCanonicalName(), detail, version + "", RandomStringUtils.random(5, true, true)); }
Type(Type baseType, String modifier) { this.canonicalName = baseType.getCanonicalName() + "-" + modifier; this.serviceName = "spin-" + this.canonicalName; this.baseType = baseType; this.modifier = modifier; }
default String secretName(String detail, int version) { return String.join("-", "hal", getService().getType().getCanonicalName(), detail, version + "", RandomStringUtils.random(5, true, true)); }
@Override protected Optional<String> customProfileOutputPath(String profileName) { if (profileName.equals(getCanonicalName() + ".yml") || profileName.startsWith(getCanonicalName() + "-") || profileName.equals(getType().getBaseType().getCanonicalName() + "-local.yml") || profileName.startsWith("spinnaker")) { return Optional.of(Paths.get(getConfigOutputPath(), profileName).toString()); } else { return Optional.empty(); } }
@Override protected Optional<String> customProfileOutputPath(String profileName) { if (profileName.equals(getCanonicalName() + ".yml") || profileName.startsWith(getCanonicalName() + "-") || profileName.equals(getType().getBaseType().getCanonicalName() + "-local.yml") || profileName.startsWith("spinnaker")) { return Optional.of(Paths.get(getConfigOutputPath(), profileName).toString()); } else { return Optional.empty(); } }
Type(Type baseType, String modifier) { this.canonicalName = baseType.getCanonicalName() + "-" + modifier; this.serviceName = "spin-" + this.canonicalName; this.baseType = baseType; this.modifier = modifier; }