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
