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/63/20163/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 1fc7cb7..43cfc73 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/20163
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I82ec264bb18798fd911143741b60a4e9469efd48
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Michael Pasternak <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to