Frank Kobzik has uploaded a new change for review. Change subject: restapi: RNG device sources reporting ......................................................................
restapi: RNG device sources reporting This is a restapi part to RNG sources reporting. It adds required_rng_sources to cluster and supported_rng_sources to host resources. Change-Id: I4416fa456d16e65e080df7935769e7153e73b50e Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> Bug-Url: https://bugzilla.redhat.com/977079 --- M backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java M backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RngDeviceMapper.java 4 files changed, 58 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/87/27187/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd index e599d4a..16a2ce1 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd @@ -1346,6 +1346,7 @@ <xs:element ref="display" minOccurs="0" maxOccurs="1"/> <xs:element ref="ksm" minOccurs="0" maxOccurs="1"/> <xs:element ref="serial_number" minOccurs="0" maxOccurs="1" /> + <xs:element name="required_rng_sources" type="RngSources" minOccurs="0" maxOccurs="1" /> <!-- Also a rel="networks" link --> </xs:sequence> </xs:extension> @@ -1436,6 +1437,7 @@ <xs:element name="product_name" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="uuid" type="xs:string" minOccurs="0" maxOccurs="1"/> <xs:element name="family" type="xs:string" minOccurs="0" maxOccurs="1"/> + <xs:element name="supported_rng_sources" type="RngSources" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> @@ -2490,12 +2492,20 @@ </xs:sequence> </xs:complexType> + <xs:complexType name="RngSources"> + <xs:sequence> + <xs:element ref="source" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:element name="source" type="xs:string"/> + <xs:element name="rng_device" type="RngDevice"/> <xs:complexType name="RngDevice"> <xs:sequence> <xs:element name="rate" type="Rate" minOccurs="0" maxOccurs="1"/> - <xs:element name="source" type="xs:string" minOccurs="1" maxOccurs="1"/> + <xs:element ref="source" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java index 308c1a4..cc50298 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java @@ -1,9 +1,6 @@ package org.ovirt.engine.api.restapi.types; -import static org.ovirt.engine.api.restapi.utils.VersionUtils.greaterOrEqual; - import java.util.LinkedHashMap; - import org.apache.commons.lang.StringUtils; import org.ovirt.engine.api.model.Architecture; import org.ovirt.engine.api.model.CPU; @@ -24,6 +21,9 @@ import org.ovirt.engine.core.common.businessentities.MigrateOnErrorOptions; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDSGroup; + + +import static org.ovirt.engine.api.restapi.utils.VersionUtils.greaterOrEqual; public class ClusterMapper { private static final String CPU_OVER_COMMIT_DURATION_MINUTES = "CpuOverCommitDurationMinutes"; @@ -108,6 +108,10 @@ if (model.isSetSerialNumber()) { SerialNumberMapper.copySerialNumber(model.getSerialNumber(), entity); } + if (model.isSetRequiredRngSources()) { + entity.getRequiredRngSources().clear(); + entity.getRequiredRngSources().addAll(RngDeviceMapper.mapRngSources(model.getRequiredRngSources(), null)); + } return entity; } @@ -159,6 +163,10 @@ model.setSerialNumber(SerialNumberMapper.map(entity, null)); } + if (entity.getRequiredRngSources() != null) { + model.setRequiredRngSources(RngDeviceMapper.mapRngSources(entity.getRequiredRngSources(), null)); + } + return model; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java index edb7497..ecb7d84 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java @@ -448,6 +448,7 @@ model.setSerialNumber(entity.getHardwareSerialNumber()); model.setUuid(entity.getHardwareUUID()); model.setVersion(entity.getHardwareVersion()); + model.setSupportedRngSources(RngDeviceMapper.mapRngSources(entity.getSupportedRngSources(), null)); return model; } diff --git a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RngDeviceMapper.java b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RngDeviceMapper.java index 1639ecf..e1d0adc 100644 --- a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RngDeviceMapper.java +++ b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/RngDeviceMapper.java @@ -1,7 +1,11 @@ package org.ovirt.engine.api.restapi.types; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; import org.ovirt.engine.api.model.Rate; import org.ovirt.engine.api.model.RngDevice; +import org.ovirt.engine.api.model.RngSources; import org.ovirt.engine.core.common.businessentities.VmRngDevice; public class RngDeviceMapper { @@ -48,4 +52,35 @@ return null; } + @Mapping(from = RngSources.class, to = VmRngDevice.Source.class) + public static List<VmRngDevice.Source> mapRngSources(RngSources model, List<VmRngDevice.Source> template) { + if (model.getSource() != null) { + List<VmRngDevice.Source> result = new ArrayList<>(); + for (String sourceString : model.getSource()) { + try { + result.add(VmRngDevice.Source.valueOf(sourceString)); + } catch (IllegalArgumentException iae) { + // do nothing - we have illegal string here + } + } + return result; + } + return null; + } + + @Mapping(from = VmRngDevice.Source.class, to = RngSources.class) + public static RngSources mapRngSources(Collection<VmRngDevice.Source> entity, RngSources template) { + RngSources result = (template == null) + ? new RngSources() + : template; + + if (entity != null) { + for (VmRngDevice.Source source : entity) { + result.getSource().add(source.name()); + } + } + + return result; + } + } -- To view, visit http://gerrit.ovirt.org/27187 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4416fa456d16e65e080df7935769e7153e73b50e Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches