Liron Ar has uploaded a new change for review.

Change subject: core: restapi: add GetVmOvfConifugrationQuery
......................................................................

core: restapi: add GetVmOvfConifugrationQuery

This patch adds the GetVmOvfConfigurationBySnapshotQuery query which
returns the Ovf configuration of snapshot (if present).

Change-Id: I46340c4461b57a4c314fb50ca9c19ac5fd08a451
Signed-off-by: Liron Aravot <[email protected]>
---
A 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmOvfConfigurationBySnapshotQuery.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
A 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotOvfResource.java
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotResource.java
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/BackendSnapshotResource.java
A 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotSnapshotOvfResource.java
7 files changed, 78 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/76/16176/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmOvfConfigurationBySnapshotQuery.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmOvfConfigurationBySnapshotQuery.java
new file mode 100644
index 0000000..0c1275e
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVmOvfConfigurationBySnapshotQuery.java
@@ -0,0 +1,25 @@
+package org.ovirt.engine.core.bll;
+
+import org.ovirt.engine.core.common.businessentities.Snapshot;
+import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.dao.SnapshotDao;
+
+public class GetVmOvfConfigurationBySnapshotQuery<P extends IdQueryParameters> 
extends QueriesCommandBase<P> {
+
+
+    public GetVmOvfConfigurationBySnapshotQuery(P parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected void executeQueryCommand() {
+        Snapshot snapshot = getSnapshotDao().get(getParameters().getId(), 
getUserID(), getParameters().isFiltered());
+        if (snapshot != null) {
+            
getQueryReturnValue().setReturnValue(snapshot.getVmConfiguration());
+        }
+    }
+
+    protected SnapshotDao getSnapshotDao() {
+        return getDbFacade().getSnapshotDao();
+    }
+}
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
index 2ef4b2a..e811a6b 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/VdcQueryType.java
@@ -12,6 +12,7 @@
     GetVmsByStorageDomain,
     GetVmCustomProperties(VdcQueryAuthType.User),
     GetVmConfigurationBySnapshot(VdcQueryAuthType.User),
+    GetVmOvfConfigurationBySnapshot(VdcQueryAuthType.User),
     GetVmsByDiskGuid,
     GetVmPayload(VdcQueryAuthType.User),
     IsBalloonEnabled(VdcQueryAuthType.User),
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotOvfResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotOvfResource.java
new file mode 100644
index 0000000..b1ad88d
--- /dev/null
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotOvfResource.java
@@ -0,0 +1,15 @@
+package org.ovirt.engine.api.resource;
+
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+
+import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
+
+@Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, 
ApiMediaType.APPLICATION_X_YAML})
+public interface SnapshotOvfResource {
+
+    @GET
+    @Formatted
+    public String get();
+}
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotResource.java
index 2dcca4a..c1dab67 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/SnapshotResource.java
@@ -76,4 +76,7 @@
 
     @Path("nics")
     public SnapshotNicsResource getSnapshotNicsResource();
+
+    @Path("ovf")
+    public SnapshotOvfResource getSnapshotOvfResource();
 }
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 bb40326..db9efed 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
@@ -626,6 +626,13 @@
     headers:
       Content-Type: {value: application/xml|json, required: true}
       Correlation-Id: {value: 'any string', required: false}
+- name: /api/vms/{vm:id}/snapshots/{snapshot:id}/ovf|rel=get
+  request:
+    body:
+      parameterType: null
+      signatures: []
+    urlparams: {}
+    headers: {}
 - name: /api/vms/{vm:id}/snapshots/{snapshot:id}/cdroms|rel=get
   request:
     body:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java
index ac6f9ff..b54750e 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotResource.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.api.resource.SnapshotCdRomsResource;
 import org.ovirt.engine.api.resource.SnapshotDisksResource;
 import org.ovirt.engine.api.resource.SnapshotNicsResource;
+import org.ovirt.engine.api.resource.SnapshotOvfResource;
 import org.ovirt.engine.api.resource.SnapshotResource;
 import org.ovirt.engine.core.common.action.RestoreAllSnapshotsParameters;
 import org.ovirt.engine.core.common.action.TryBackToAllSnapshotsOfVmParameters;
@@ -44,6 +45,10 @@
             notFound();
         }
         return entity;
+    }
+
+    public Guid getSnapshotId() {
+        return guid;
     }
 
     @Override
@@ -127,6 +132,11 @@
         return new BackendSnapshotNicsResource(this, id);
     }
 
+    @Override
+    public SnapshotOvfResource getSnapshotOvfResource() {
+        return new BackendSnapshotSnapshotOvfResource(this, id);
+    }
+
     public void setCollectionResource(BackendSnapshotsResource collection) {
         this.collection = collection;
     }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotSnapshotOvfResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotSnapshotOvfResource.java
new file mode 100644
index 0000000..1acf606
--- /dev/null
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendSnapshotSnapshotOvfResource.java
@@ -0,0 +1,17 @@
+package org.ovirt.engine.api.restapi.resource;
+
+import org.ovirt.engine.api.resource.SnapshotOvfResource;
+import org.ovirt.engine.core.common.queries.IdQueryParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryType;
+
+public class BackendSnapshotSnapshotOvfResource extends 
BackendSnapshotElementsResource implements SnapshotOvfResource {
+
+    public BackendSnapshotSnapshotOvfResource(BackendSnapshotResource parent, 
String vmId) {
+        super(parent, vmId);
+    }
+
+    @Override
+    public String get() {
+        return parent.getEntity(String.class, 
VdcQueryType.GetVmOvfConfigurationBySnapshot, new 
IdQueryParameters(parent.getSnapshotId()), null);
+    }
+}


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

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

Reply via email to