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