Martin Betak has uploaded a new change for review. Change subject: restapi: Add Reboot VM action ......................................................................
restapi: Add Reboot VM action Added reboot action for VM. Change-Id: I072dd2e8292c21f1ad7f4794c7f273cfc5a670cb Signed-off-by: Martin Betak <[email protected]> --- M backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmResource.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/BackendVmResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java 5 files changed, 43 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/22745/1 diff --git a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmResource.java b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmResource.java index 5eddd74..c010b9c 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmResource.java +++ b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/VmResource.java @@ -34,7 +34,7 @@ @Produces({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) public interface VmResource extends UpdatableResource<VM>, AsynchronouslyCreatedResource, MeasurableResource { - @Path("{action: (start|stop|shutdown|suspend|detach|migrate|export|move|ticket|cancelmigration)}/{oid}") + @Path("{action: (start|stop|shutdown|reboot|suspend|detach|migrate|export|move|ticket|cancelmigration)}/{oid}") public ActionResource getActionSubresource(@PathParam("action")String action, @PathParam("oid")String oid); @POST @@ -62,6 +62,13 @@ @Formatted @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) @Actionable + @Path("reboot") + public Response reboot(Action action); + + @POST + @Formatted + @Consumes({ApiMediaType.APPLICATION_XML, ApiMediaType.APPLICATION_JSON, ApiMediaType.APPLICATION_X_YAML}) + @Actionable @Path("suspend") public Response suspend(Action action); 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 a9abe8f..b89964a 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 @@ -273,6 +273,16 @@ headers: Content-Type: {value: application/xml|json, required: true} Correlation-Id: {value: 'any string', required: false} +- name: /vms/{vm:id}/reboot|rel=reboot + description: reboot a virtual machine in the system identified by the given id + request: + body: + parameterType: Action + signatures: [] + urlparams: {} + headers: + Content-Type: {value: application/xml|json, required: true} + Correlation-Id: {value: 'any string', required: false} - name: /vms/{vm:id}/start|rel=start description: start a virtual machine in the system identified by the given id request: diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java index a159936..e211094 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java @@ -227,6 +227,13 @@ } @Override + public Response reboot(Action action) { + return doAction(VdcActionType.RebootVm, + new VmOperationParameterBase(guid), + action); + } + + @Override public Response start(Action action) { RunVmParams params; VdcActionType actionType; diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java index 094ea2c..b580d4b 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java @@ -75,10 +75,18 @@ if (VersionUtils.greaterOrEqual(version, BackendCapabilitiesResource.VERSION_3_4)) { addGlusterBricksFeature(features); addFeatureCopyMoveDiskInAdditionalContext(features); + addRebootFeature(features); } return features; } + private void addRebootFeature(Features features) { + Feature feature = new Feature(); + feature.setName("Reboot VM"); + feature.setDescription("Ability to reboot VM"); + features.getFeature().add(feature); + } + private void addSingleQxlPciFeature(Features features) { Feature feature = new Feature(); feature.setName("Single PCI for Qxl"); diff --git a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java index ebd6ffc..d32c5ec 100644 --- a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java +++ b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java @@ -577,6 +577,16 @@ } @Test + public void testReboot() throws Exception { + setUriInfo(setUpActionExpectations(VdcActionType.RebootVm, + VmOperationParameterBase.class, + new String[] { "VmId" }, + new Object[] { GUIDS[0] })); + + verifyActionResponse(resource.reboot(new Action())); + } + + @Test public void testStop() throws Exception { setUriInfo(setUpActionExpectations(VdcActionType.StopVm, StopVmParameters.class, -- To view, visit http://gerrit.ovirt.org/22745 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I072dd2e8292c21f1ad7f4794c7f273cfc5a670cb Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Betak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
