Michael Pasternak has uploaded a new change for review. Change subject: restapi: Inconsistent schema implementation in PayloadFile #1018782 ......................................................................
restapi: Inconsistent schema implementation in PayloadFile #1018782 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1018782 Change-Id: I82ec264bb18798fd911143741b60a4e9469efd48 Signed-off-by: Michael pasternak <[email protected]> --- 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/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java 3 files changed, 18 insertions(+), 28 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/20162/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 7f96ec8..2ed8911 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 @@ -1768,6 +1768,7 @@ <xs:complexContent> <xs:extension base="BaseResource"> <xs:sequence> + <xs:element name="content" type="xs:string" /> <xs:element name="type" type="xs:string" minOccurs="0"/> <xs:element ref="storage_domain" minOccurs="0"/> </xs:sequence> @@ -2322,25 +2323,10 @@ <xs:complexType name="Payload"> <xs:sequence> - <xs:element name="file" type="PayloadFile" minOccurs="0" maxOccurs="unbounded"/> + <xs:element ref="files"/> <xs:element name="volume_id" type="xs:string" maxOccurs="1"/> </xs:sequence> <xs:attribute name="type" type="xs:string"> - <xs:annotation> - <xs:appinfo> - <jaxb:property generateIsSetMethod="false"/> - </xs:appinfo> - </xs:annotation> - </xs:attribute> - </xs:complexType> - - <xs:element name="payload_file" type="PayloadFile"/> - - <xs:complexType name="PayloadFile"> - <xs:sequence> - <xs:element name="content" type="xs:string" /> - </xs:sequence> - <xs:attribute name="name" type="xs:string"> <xs:annotation> <xs:appinfo> <jaxb:property generateIsSetMethod="false"/> 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 c01e1b3..fe751af 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 @@ -82,7 +82,7 @@ vm.origin: xs:string vm.os.kernel: xs:string vm.tunnel_migration: xs:boolean - vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', payload.volume_id: 'xs:string', payload.file.name: 'xs:string', payload.file.content: 'xs:string'} + 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'} description: update the virtual machine in the system for the given virtual machine id with the values specified in the request urlparams: {} @@ -152,7 +152,7 @@ vm.os.kernel: xs:string vm.disks.clone: xs:boolean vm.tunnel_migration: xs:boolean - vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', payload.volume_id: 'xs:string', payload.file.name: 'xs:string', payload.file.content: 'xs:string'} + 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.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'} @@ -195,7 +195,7 @@ vm.origin: xs:string vm.os.kernel: xs:string vm.tunnel_migration: xs:boolean - vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', payload.volume_id: 'xs:string', payload.file.name: 'xs:string', payload.file.content: 'xs:string'} + 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'} 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 @@ -236,7 +236,7 @@ vm.os.kernel: xs:string vm.disks.clone: xs:boolean vm.tunnel_migration: xs:boolean - vm.payloads.payload--COLLECTION: {payload.type: 'xs:string', payload.volume_id: 'xs:string', payload.file.name: 'xs:string', payload.file.content: 'xs:string'} + 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.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'} 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 b5c75e3..56450d4 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 @@ -23,6 +23,7 @@ import org.ovirt.engine.api.model.Display; import org.ovirt.engine.api.model.DisplayType; import org.ovirt.engine.api.model.Domain; +import org.ovirt.engine.api.model.File; import org.ovirt.engine.api.model.GuestInfo; import org.ovirt.engine.api.model.HighAvailability; import org.ovirt.engine.api.model.Host; @@ -32,7 +33,7 @@ import org.ovirt.engine.api.model.OperatingSystem; import org.ovirt.engine.api.model.OsType; import org.ovirt.engine.api.model.Payload; -import org.ovirt.engine.api.model.PayloadFile; +import org.ovirt.engine.api.model.Files; import org.ovirt.engine.api.model.Quota; import org.ovirt.engine.api.model.Template; import org.ovirt.engine.api.model.Usb; @@ -867,11 +868,14 @@ } } model.setVolumeId(entity.getVolumeId()); - for (Map.Entry<String, String> entry : entity.getFiles().entrySet()) { - PayloadFile file = new PayloadFile(); - file.setName(entry.getKey()); - file.setContent(entry.getValue()); - model.getFile().add(file); + if (entity.getFiles().size() > 0) { + model.setFiles(new Files()); + for (Map.Entry<String, String> entry : entity.getFiles().entrySet()) { + File file = new File(); + file.setName(entry.getKey()); + file.setContent(entry.getValue()); + model.getFiles().getFiles().add(file); + } } return model; } @@ -890,8 +894,8 @@ if (model.isSetVolumeId()) { entity.setVolumeId(model.getVolumeId()); } - if (model.getFile() != null) { - for (PayloadFile file : model.getFile()) { + if (model.isSetFiles()) { + for (File file : model.getFiles().getFiles()) { entity.getFiles().put(file.getName(), file.getContent()); } } -- To view, visit http://gerrit.ovirt.org/20162 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I82ec264bb18798fd911143741b60a4e9469efd48 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Michael Pasternak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
