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

Reply via email to