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

Reply via email to