Martin Betak has uploaded a new change for review.

Change subject: restapi: Enable configuration of Serial Number Policy
......................................................................

restapi: Enable configuration of Serial Number Policy

Added configuration of serial number to Vm, Template and Cluster backend
resources. Now it is possible to specify the serial number as

  <serial_number>
   <policy>host|vm|custom</policy>
   <value>My Custom Serial Number #123456</value>
  </serial_number>

Where the value is only to be used with the "custom" policy.

To set the policy to 'null' (meaning default from higher entity should
be used) use:

  <serial_number />

Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=918138
Change-Id: I0c678c70a647e9df8954374424e9a3ff0938b45a
Signed-off-by: Martin Betak <mbe...@redhat.com>
---
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/SerialNumberPolicy.java
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendCapabilitiesResource.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/ClusterMapper.java
A 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/SerialNumberMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/ClusterMapperTest.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
11 files changed, 185 insertions(+), 10 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/00/25100/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/SerialNumberPolicy.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/SerialNumberPolicy.java
new file mode 100644
index 0000000..e48a2c8
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/SerialNumberPolicy.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.api.model;
+
+import org.apache.commons.lang.StringUtils;
+
+public enum SerialNumberPolicy {
+    HOST, VM, CUSTOM;
+
+    public String value() {
+        return name().toLowerCase();
+    }
+
+    public static SerialNumberPolicy fromValue(String value) {
+        return StringUtils.isEmpty(value) ? null : 
valueOf(value.toUpperCase());
+    }
+}
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 163a0ea..2784154 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
@@ -640,6 +640,7 @@
           <xs:element ref="hook_states" minOccurs="0" />
           <xs:element ref="stages" minOccurs="0" />
           <xs:element ref="sso_methods" minOccurs="0"/>
+          <xs:element ref="serial_number_policies" minOccurs="0" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1053,6 +1054,20 @@
     </xs:sequence>
   </xs:complexType>
 
+  <xs:element name="serial_number_policies" type="SerialNumberPolicies" />
+
+  <xs:complexType name="SerialNumberPolicies">
+    <xs:sequence>
+      <xs:element name="serial_number_policy" type="xs:string" minOccurs="0" 
maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:appinfo>
+            <jaxb:property name="SerialNumberPolicies" />
+          </xs:appinfo>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
   <!-- Common to all resources -->
 
   <xs:complexType name="ActionableResource">
@@ -1291,6 +1306,7 @@
           <xs:element name="ballooning_enabled" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
           <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" />
           <!-- Also a rel="networks" link -->
         </xs:sequence>
       </xs:extension>
@@ -2318,6 +2334,7 @@
           <xs:element ref="permissions" minOccurs="0" maxOccurs="1"/>
           <!-- also rel="cdroms/disks/nics/watchdogs" links, see Devices below 
-->
           <xs:element name="version" type="TemplateVersion" minOccurs="0" 
maxOccurs="1"/>
+          <xs:element ref="serial_number" minOccurs="0" maxOccurs="1" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -2590,6 +2607,15 @@
     </xs:sequence>
   </xs:complexType>
 
+  <xs:element name="serial_number" type="SerialNumber" />
+
+  <xs:complexType name="SerialNumber">
+    <xs:sequence>
+      <xs:element name="policy" type="xs:string" minOccurs="0" maxOccurs="1" />
+      <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="1" />
+    </xs:sequence>
+  </xs:complexType>
+
   <xs:element name="vms" type="VMs"/>
   <xs:element name="vm" type="VM"/>
 
@@ -2660,6 +2686,7 @@
           <xs:element ref="reported_devices" minOccurs="0" maxOccurs="1"/>
           <xs:element ref="watchdogs" minOccurs="0" maxOccurs="1"/>
           <xs:element name="use_latest_template_version" type="xs:boolean" 
minOccurs="0" maxOccurs="1"/>
+          <xs:element ref="serial_number" minOccurs="0" maxOccurs="1" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -3285,7 +3312,7 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-<!-- RSDL -->
+  <!-- RSDL -->
 
   <xs:element name="url" type="Url"/>
 
@@ -3696,7 +3723,7 @@
     </xs:sequence>
   </xs:complexType>
 
- <xs:element name="content_types" type="ContentTypes"/>
+  <xs:element name="content_types" type="ContentTypes"/>
   <xs:complexType name="ContentTypes">
     <xs:sequence>
       <xs:element name="content_type" type="xs:string" minOccurs="0" 
maxOccurs="unbounded">
@@ -3805,13 +3832,13 @@
    </xs:sequence>
   </xs:complexType>
 
-<xs:element name="jobs" type="Jobs"/>
-<xs:element name="job" type="Job"/>
+  <xs:element name="jobs" type="Jobs"/>
+  <xs:element name="job" type="Job"/>
 
-<xs:element name="steps" type="Steps"/>
-<xs:element name="step" type="Step"/>
+  <xs:element name="steps" type="Steps"/>
+  <xs:element name="step" type="Step"/>
 
- <xs:element name="step_types" type="StepTypes"/>
+  <xs:element name="step_types" type="StepTypes"/>
   <xs:complexType name="StepTypes">
     <xs:sequence>
       <xs:element name="step_type" type="xs:string"  minOccurs="0" 
maxOccurs="unbounded">
@@ -3848,7 +3875,7 @@
   </xs:complexType>
 
 
-<xs:complexType name="Steps">
+  <xs:complexType name="Steps">
     <xs:complexContent>
       <xs:extension base="BaseResources">
         <xs:sequence>
@@ -3863,7 +3890,7 @@
     </xs:complexContent>
 </xs:complexType>
 
-<xs:complexType name="Job">
+  <xs:complexType name="Job">
     <xs:annotation>
       <xs:appinfo>
          <jaxb:class name="Job"/>
@@ -3884,7 +3911,7 @@
     </xs:complexContent>
   </xs:complexType>
 
-<xs:complexType name="Jobs">
+  <xs:complexType name="Jobs">
     <xs:complexContent>
       <xs:extension base="BaseResources">
         <xs:sequence>
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
index 6583e43..5e43395 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml
@@ -92,6 +92,8 @@
           vm.use_latest_template_version: xs:boolean
           vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', 
payload.volume_id: 'xs:string', payload.files.file--COLLECTION: {file.name: 
'xs:string', file.content: 'xs:string'}}
           vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 'xs:int', 
vcpu_pin.cpu_set: 'xs:string'}
+          vm.serial_number.policy: xs:string
+          vm.serial_number.value: xs:string
         description: update the virtual machine in the system for the given 
virtual machine id with the values specified in the request
     urlparams: {}
     headers:
@@ -169,6 +171,8 @@
           vm.initialization.configuration.data: 'xs:string'
           vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 'xs:int', 
vcpu_pin.cpu_set: 'xs:string'}
           vm.use_latest_template_version: xs:boolean
+          vm.serial_number.policy: xs:string
+          vm.serial_number.value: xs:string
         description: add a virtual machine to the system from scratch
       # the following signature is for clone VM from a Snapshot - requires the 
Snapshot ID
       - mandatoryArguments: {vm.name: 'xs:string', vm.template.id|name: 
'xs:string', vm.cluster.id|name: 'xs:string',
@@ -214,6 +218,8 @@
           vm.virtio_scsi.enabled: xs:boolean
           vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', 
payload.volume_id: 'xs:string', payload.files.file--COLLECTION: {file.name: 
'xs:string', file.content: 'xs:string'}}
           vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 'xs:int', 
vcpu_pin.cpu_set: 'xs:string'}
+          vm.serial_number.policy: xs:string
+          vm.serial_number.value: xs:string
         description: add a virtual machine to the system by cloning from a 
snapshot
       # the following signature is for adding VM from a configuration - 
requires the configuration type and the configuration data
       - mandatoryArguments: {vm.initialization.configuration.type: 
'xs:string', vm.initialization.configuration.data: 'xs:string'}
@@ -260,6 +266,8 @@
                 vm.initialization.configuration.type: 'xs:string'
                 vm.initialization.configuration.data: 'xs:string'
                 vm.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 
'xs:int', vcpu_pin.cpu_set: 'xs:string'}
+                vm.serial_number.policy: xs:string
+                vm.serial_number.value: xs:string
         description: add a virtual machine to the system from a configuration 
- requires the configuration type and the configuration data
     urlparams: {}
     headers:
@@ -3367,6 +3375,8 @@
           template.migration_downtime: xs:int
           template.virtio_scsi.enabled: xs:boolean
           template.version.version_name: xs:string
+          template.serial_number.policy: xs:string
+          template.serial_number.value: xs:string
         description: update the specified template in the system
     urlparams: {}
     headers:
@@ -3420,6 +3430,8 @@
           template.version.version_name: xs:string
           template.version.base_template.id: xs:string
           template.cpu.cpu_tune.vcpu_pin--COLLECTION: {vcpu_pin.vcpu: 
'xs:int', vcpu_pin.cpu_set: 'xs:string'}
+          template.serial_number.policy: xs:string
+          template.serial_number.value: xs:string
         description: add a new template to the system
     urlparams: {}
     headers:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendCapabilitiesResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendCapabilitiesResource.java
index aa24cf9..f106141 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendCapabilitiesResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendCapabilitiesResource.java
@@ -73,6 +73,8 @@
 import org.ovirt.engine.api.model.SchedulingPolicyType;
 import org.ovirt.engine.api.model.ScsiGenericIO;
 import org.ovirt.engine.api.model.ScsiGenericIoOptions;
+import org.ovirt.engine.api.model.SerialNumberPolicies;
+import org.ovirt.engine.api.model.SerialNumberPolicy;
 import org.ovirt.engine.api.model.SnapshotStatus;
 import org.ovirt.engine.api.model.SnapshotStatuses;
 import org.ovirt.engine.api.model.Stages;
@@ -166,6 +168,12 @@
             minor = 4;
         }
     };
+    public static final Version VERSION_3_5 = new Version() {
+        {
+            major = 3;
+            minor = 5;
+        }
+    };
     private static Version currentVersion = null;
 
     @Override
@@ -248,6 +256,7 @@
         addConfigurationTypes(version, ConfigurationType.values());
         addSnapshotStatuses(version, SnapshotStatus.values());
         addPayloadEncodings(version, PayloadEncoding.values());
+        addSerialNumberPolicies(version, SerialNumberPolicy.values());
 
         // External tasks types
         addStepEnumTypes(version, StepEnum.values());
@@ -763,6 +772,15 @@
         }
     }
 
+    private void addSerialNumberPolicies(VersionCaps version, 
SerialNumberPolicy[] values) {
+        if (VersionUtils.greaterOrEqual(version, VERSION_3_5)) {
+            version.setSerialNumberPolicies(new SerialNumberPolicies());
+            for (SerialNumberPolicy mode : values) {
+                
version.getSerialNumberPolicies().getSerialNumberPolicies().add(mode.value());
+            }
+        }
+    }
+
     @Override
     public CapabiliyResource getCapabilitiesSubResource(String id) {
         return new BackendCapabilityResource(id, this);
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 7361340..397bba1 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
@@ -102,6 +102,9 @@
         if (model.isSetDisplay() && model.getDisplay().isSetProxy()) {
             entity.setSpiceProxy("".equals(model.getDisplay().getProxy()) ? 
null : model.getDisplay().getProxy());
         }
+        if (model.isSetSerialNumber()) {
+            SerialNumberMapper.map(model.getSerialNumber(), entity);
+        }
 
         return entity;
     }
@@ -148,6 +151,9 @@
             display.setProxy(entity.getSpiceProxy());
             model.setDisplay(display);
         }
+        if (entity.getSerialNumberPolicy() != null) {
+            model.setSerialNumber(SerialNumberMapper.map(entity, null));
+        }
 
         return model;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/SerialNumberMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/SerialNumberMapper.java
new file mode 100644
index 0000000..0e7afb1
--- /dev/null
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/SerialNumberMapper.java
@@ -0,0 +1,64 @@
+package org.ovirt.engine.api.restapi.types;
+
+import org.ovirt.engine.api.model.SerialNumber;
+import org.ovirt.engine.api.model.SerialNumberPolicy;
+import org.ovirt.engine.core.common.businessentities.HasSerialNumberPolicy;
+
+public class SerialNumberMapper {
+    @Mapping(from = HasSerialNumberPolicy.class, to = SerialNumber.class)
+    public static SerialNumber map(HasSerialNumberPolicy entity, SerialNumber 
template) {
+        if (template == null) {
+            template = new SerialNumber();
+        }
+        SerialNumberPolicy policy = map(entity.getSerialNumberPolicy(), null);
+        if (policy != null) {
+            template.setPolicy(policy.value());
+        }
+        if (policy == SerialNumberPolicy.CUSTOM) {
+            template.setValue(entity.getCustomSerialNumber());
+        }
+
+        return template;
+    }
+
+    @Mapping(from = SerialNumber.class, to = HasSerialNumberPolicy.class)
+    public static <E extends HasSerialNumberPolicy> E map(SerialNumber 
serialNumber, E entity) {
+        SerialNumberPolicy serialNumberPolicy = 
SerialNumberPolicy.fromValue(serialNumber.getPolicy());
+        entity.setSerialNumberPolicy(map(serialNumberPolicy, null));
+        entity.setCustomSerialNumber(serialNumber.getValue());
+
+        return entity;
+    }
+
+    @Mapping(from = SerialNumberPolicy.class, to = 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.class)
+    public static 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy 
map(SerialNumberPolicy serialNumberPolicy, 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy template) {
+        if (serialNumberPolicy == null) {
+            return null;
+        }
+        switch (serialNumberPolicy) {
+            case HOST:
+                return 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.HOST_ID;
+            case VM:
+                return 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.VM_ID;
+            case CUSTOM:
+                return 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.CUSTOM;
+        }
+        return null;
+    }
+
+    @Mapping(from = 
org.ovirt.engine.core.common.businessentities.SerialNumberPolicy.class, to = 
SerialNumberPolicy.class)
+    public static SerialNumberPolicy 
map(org.ovirt.engine.core.common.businessentities.SerialNumberPolicy 
serialNumberPolicy, SerialNumberPolicy template) {
+        if (serialNumberPolicy == null) {
+            return null;
+        }
+        switch (serialNumberPolicy) {
+            case HOST_ID:
+                return  SerialNumberPolicy.HOST;
+            case VM_ID:
+                return SerialNumberPolicy.VM;
+            case CUSTOM:
+                return SerialNumberPolicy.CUSTOM;
+        }
+        return null;
+    }
+}
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
index 10cea77..9b9b119 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/TemplateMapper.java
@@ -176,6 +176,10 @@
             // numbering is generated in the backend, hence even if user 
specified version number, we ignore it.
         }
 
+        if (model.isSetSerialNumber()) {
+            SerialNumberMapper.map(model.getSerialNumber(), entity);
+        }
+
         return entity;
     }
 
@@ -296,6 +300,9 @@
         if (model.isSetMigrationDowntime()) {
             
staticVm.setMigrationDowntime(mapMinusOneToNull(model.getMigrationDowntime()));
         }
+        if (model.isSetSerialNumber()) {
+            SerialNumberMapper.map(model.getSerialNumber(), staticVm);
+        }
         return staticVm;
     }
 
@@ -397,6 +404,10 @@
             model.setVersion(version);
         }
 
+        if (entity.getSerialNumberPolicy() != null) {
+            model.setSerialNumber(SerialNumberMapper.map(entity, null));
+        }
+
         return model;
     }
 
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
index fe5045e..f605b56 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
@@ -121,6 +121,8 @@
         staticVm.setVncKeyboardLayout(entity.getVncKeyboardLayout());
         staticVm.setMigrationDowntime(entity.getMigrationDowntime());
         staticVm.setVmInit(entity.getVmInit());
+        staticVm.setSerialNumberPolicy(entity.getSerialNumberPolicy());
+        staticVm.setCustomSerialNumber(entity.getCustomSerialNumber());
         return staticVm;
     }
 
@@ -298,6 +300,11 @@
                 staticVm.getVmInit().setDomain(vm.getDomain().getName());
             }
         }
+
+        if (vm.isSetSerialNumber()) {
+            SerialNumberMapper.map(vm.getSerialNumber(), staticVm);
+        }
+
         return staticVm;
     }
 
@@ -521,6 +528,9 @@
         if (entity.getVmInit() != null) {
             model.setInitialization(map(entity.getVmInit(), null));
         }
+        if (entity.getSerialNumberPolicy() != null) {
+            
model.setSerialNumber(SerialNumberMapper.map(entity.getStaticData(), null));
+        }
         return model;
     }
 
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/ClusterMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/ClusterMapperTest.java
index 6aa12c5..0bcda48 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/ClusterMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/ClusterMapperTest.java
@@ -6,6 +6,7 @@
 import org.ovirt.engine.api.model.MigrateOnError;
 import org.ovirt.engine.api.model.SchedulingPolicy;
 import org.ovirt.engine.api.model.SchedulingPolicyType;
+import org.ovirt.engine.api.model.SerialNumberPolicy;
 import org.ovirt.engine.core.common.businessentities.VDSGroup;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -26,6 +27,7 @@
         SchedulingPolicy policy = new SchedulingPolicy();
         policy.setPolicy("power_saving");
         model.setSchedulingPolicy(policy);
+        model.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM.value());
         return model;
     }
 
@@ -55,6 +57,8 @@
         assertEquals(model.isBallooningEnabled(), 
transform.isBallooningEnabled());
         assertEquals(model.getKsm().isEnabled(), 
transform.getKsm().isEnabled());
         assertEquals(model.getDisplay().getProxy(), 
transform.getDisplay().getProxy());
+        assertEquals(model.getSerialNumber().getPolicy(), 
transform.getSerialNumber().getPolicy());
+        assertEquals(model.getSerialNumber().getValue(), 
transform.getSerialNumber().getValue());
     }
 
     private Mapper<Cluster, VDSGroup> getMapper() {
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java
index ad8b1eb..c907509 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/TemplateMapperTest.java
@@ -3,6 +3,7 @@
 import org.ovirt.engine.api.model.Boot;
 import org.ovirt.engine.api.model.BootDevice;
 import org.ovirt.engine.api.model.DisplayType;
+import org.ovirt.engine.api.model.SerialNumberPolicy;
 import org.ovirt.engine.api.model.Template;
 import org.ovirt.engine.api.model.VmType;
 import org.ovirt.engine.api.restapi.utils.OsTypeMockUtils;
@@ -37,6 +38,7 @@
             from.getCpu().getTopology().setCores(MappingTestHelper.rand(100));
         }
         from.setTimezone("Australia/Darwin");
+        from.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM.value());
         return from;
     }
 
@@ -81,5 +83,7 @@
         assertEquals(model.getMigrationDowntime(), 
transform.getMigrationDowntime());
         assertEquals(model.getVersion().getVersionName(), 
transform.getVersion().getVersionName());
         assertEquals(model.getVersion().getBaseTemplate().getId(), 
transform.getVersion().getBaseTemplate().getId());
+        assertEquals(model.getSerialNumber().getPolicy(), 
transform.getSerialNumber().getPolicy());
+        assertEquals(model.getSerialNumber().getValue(), 
transform.getSerialNumber().getValue());
     }
 }
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
index 5ec55ad..a6bc6b5 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
@@ -13,6 +13,7 @@
 import org.ovirt.engine.api.model.GuestNicConfiguration;
 import org.ovirt.engine.api.model.Host;
 import org.ovirt.engine.api.model.Payload;
+import org.ovirt.engine.api.model.SerialNumberPolicy;
 import org.ovirt.engine.api.model.Usb;
 import org.ovirt.engine.api.model.VCpuPin;
 import org.ovirt.engine.api.model.VM;
@@ -94,6 +95,7 @@
         for (GuestNicConfiguration guestNic : 
from.getInitialization().getNicConfigurations().getNicConfigurations()) {
             
guestNic.setBootProtocol(MappingTestHelper.shuffle(BootProtocol.class).value());
         }
+        from.getSerialNumber().setPolicy(SerialNumberPolicy.CUSTOM.value());
         return from;
     }
 
@@ -140,6 +142,8 @@
         assertEquals(model.isDeleteProtected(), transform.isDeleteProtected());
         assertEquals(model.isTunnelMigration(), transform.isTunnelMigration());
         assertEquals(model.getMigrationDowntime(), 
transform.getMigrationDowntime());
+        assertEquals(model.getSerialNumber().getPolicy(), 
transform.getSerialNumber().getPolicy());
+        assertEquals(model.getSerialNumber().getValue(), 
transform.getSerialNumber().getValue());
     }
 
     @Test


-- 
To view, visit http://gerrit.ovirt.org/25100
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0c678c70a647e9df8954374424e9a3ff0938b45a
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Betak <mbe...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to