public static String sourcesToCsv(Collection<Source> sources) { if (sources == null) { return ""; } StringBuilder resultBuilder = new StringBuilder(""); for (Source source : sources) { resultBuilder.append(source.name()); resultBuilder.append(","); } if (resultBuilder.length() > 0) { resultBuilder.deleteCharAt(resultBuilder.length() - 1); } return resultBuilder.toString(); }
/** * @return Set of required rng sources. */ public Set<VmRngDevice.Source> getRequiredRngSources() { final Set<VmRngDevice.Source> requiredRngSources = new HashSet<>(getAdditionalRngSources()); requiredRngSources.add(VmRngDevice.Source.getUrandomOrRandomFor(getCompatibilityVersion())); return Collections.unmodifiableSet(requiredRngSources); }
public static Set<Source> csvToSourcesSet(String csvSources) { Set<Source> result = new HashSet<>(); if (csvSources != null) { for (String chunk : csvSources.split(",")) { if (!StringHelper.isNullOrEmpty(chunk)) { try { Source src = Source.valueOf(chunk); if (src != null) { result.add(src); } } catch (IllegalArgumentException ex) { log.warn("Unknown RNG source '{}'", chunk); } } } } return result; }
private void setRngAvailability() { TModel model = getModel(); Set<VmRngDevice.Source> requiredRngSources = model.getSelectedCluster().getRequiredRngSources(); boolean urandomSourceAvailable = requiredRngSources.contains(VmRngDevice.Source.URANDOM) || requiredRngSources.contains(VmRngDevice.Source.RANDOM); boolean hwrngSourceAvailable = requiredRngSources.contains(VmRngDevice.Source.HWRNG); model.getRngSourceUrandom().setIsChangeable(urandomSourceAvailable); if (!urandomSourceAvailable) { model.getRngSourceUrandom().setChangeProhibitionReason(messages.rngSourceNotSupportedByCluster( VmRngDevice.Source.getUrandomOrRandomFor(getModel().getSelectedCluster().getCompatibilityVersion()) .toString().toLowerCase())); } model.getRngSourceHwrng().setIsChangeable(hwrngSourceAvailable); if (!hwrngSourceAvailable) { model.getRngSourceHwrng().setChangeProhibitionReason(messages.rngSourceNotSupportedByCluster( VmRngDevice.Source.HWRNG.toString().toLowerCase())); } }
@Mapping(from = RngDevice.class, to = VmRngDevice.class) public static VmRngDevice map(RngDevice model, VmRngDevice template) { if (model != null && model.isSetSource()) { VmRngDevice dev = new VmRngDevice(); if (model.isSetRate()) { dev.setBytes(model.getRate().getBytes()); if (model.getRate().isSetPeriod()) { dev.setPeriod(model.getRate().getPeriod()); } } VmRngDevice.Source source = VmRngDevice.Source.valueOf(model.getSource().name()); if (source != null) { dev.setSource(source); return dev; } } return null; }
public VmRngDevice.Source getUrandomOrRandomRngSource() { return VmRngDevice.Source.getUrandomOrRandomFor(getModel().getCompatibilityVersion()); }
public Source getSource() { try { return Source.valueOf(((String) getSpecParams().get(SOURCE_STRING)).toUpperCase()); } catch (Exception e) { return Source.URANDOM; } }
private static Map<String, Object> createSpecPars(Integer bytes, Integer period, Source source) { Map<String, Object> result = new HashMap<>(); if (bytes != null) { result.put(BYTES_STRING, bytes.toString()); } if (period != null) { result.put(PERIOD_STRING, period.toString()); } result.put(SOURCE_STRING, source.name().toLowerCase()); return result; }
public void updateSourceByVersion(Version clusterVersion) { final Source source = getSource(); if (source == Source.URANDOM || source == Source.RANDOM) { setSource(Source.getUrandomOrRandomFor(clusterVersion)); } }
@Mapping(from = RngSource.class, to = VmRngDevice.Source.class) public static VmRngDevice.Source map(RngSource model, VmRngDevice.Source template) { if (model != null) { return VmRngDevice.Source.valueOf(model.name()); } return null; }
public static RngSource map(VmRngDevice.Source backend, RngSource rest) { if (backend != null) { return RngSource.fromValue(backend.name()); } return null; }
private void setRngSourcesCheckboxes(Version ver) { getRngHwrngSourceRequired().setIsChangeable(true); String defaultRequiredRngSourcesCsv = defaultClusterRngSourcesCsv(ver); getRngHwrngSourceRequired().setEntity(getIsNew() ? defaultRequiredRngSourcesCsv.contains(VmRngDevice.Source.HWRNG.name().toLowerCase()) : getEntity().getRequiredRngSources().contains(VmRngDevice.Source.HWRNG)); }