Alona Kaplan has uploaded a new change for review.

Change subject: restapi: add refresh capabilities action to Host
......................................................................

restapi: add refresh capabilities action to Host

The action will cause the engine to sync with the host getCaps.

Change-Id: I57ad42614de63d2a4690b22445db05d75fab4185
Signed-off-by: Alona Kaplan <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.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/BackendHostResource.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/BackendHostResourceTest.java
5 files changed, 47 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/88/15688/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java
 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java
index 39f4088..4dde9c7 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/resource/HostResource.java
@@ -16,13 +16,13 @@
 
 package org.ovirt.engine.api.resource;
 
-import javax.ws.rs.Path;
 import javax.ws.rs.POST;
+import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
-import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
 
+import org.jboss.resteasy.annotations.providers.jaxb.Formatted;
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Actionable;
 import org.ovirt.engine.api.model.Host;
@@ -31,7 +31,7 @@
 @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, 
MediaType.APPLICATION_X_YAML})
 public interface HostResource extends UpdatableResource<Host>, 
MeasurableResource {
 
-    @Path("{action: 
(approve|install|fence|activate|deactivate|commitnetconfig|iscsidiscover|iscsilogin)}/{oid}")
+    @Path("{action: 
(approve|install|fence|activate|deactivate|commitnetconfig|iscsidiscover|iscsilogin|refreshcapabilities)}/{oid}")
     public ActionResource getActionSubresource(@PathParam("action")String 
action, @PathParam("oid")String oid);
 
     @POST
@@ -82,6 +82,12 @@
     @Path("iscsilogin")
     public Response iscsiLogin(Action action);
 
+    @POST
+    @Formatted
+    @Actionable
+    @Path("refreshcapabilities")
+    public Response refreshCapabilities(Action action);
+
     @Path("nics")
     public HostNicsResource getHostNicsResource();
 
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 222df88..76dc70b 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
@@ -1892,6 +1892,15 @@
     urlparams: {}
     headers:
       Content-Type: {value: application/xml|json, required: true}
+      Correlation-Id: {value: 'any string', required: false}   
+- name: /api/hosts/{host:id}/refreshcapabilities|rel=refreshcapabilities
+  request:
+    body:
+      parameterType: Action
+      signatures: []
+    urlparams: {}
+    headers:
+      Content-Type: {value: application/xml|json, required: true}
       Correlation-Id: {value: 'any string', required: false}
 - name: /api/hosts/{host:id}/nics|rel=get
   request:
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
index 0d4e7c4..7e140d9 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java
@@ -56,7 +56,7 @@
         HostResource {
 
     private static final String DEFAULT_ISCSI_PORT = "3260";
-    private BackendHostsResource parent;
+    private final BackendHostsResource parent;
 
     public BackendHostResource(String id, BackendHostsResource parent) {
         super(id, Host.class, VDS.class, SUB_COLLECTIONS);
@@ -176,6 +176,7 @@
         return doAction(VdcActionType.ConnectStorageToVds, connectionParms, 
action);
     }
 
+    @Override
     public Response iscsiDiscover(Action action) {
         validateParameters(action, "iscsi.address");
 
@@ -281,6 +282,13 @@
     }
 
     @Override
+    public Response refreshCapabilities(Action action) {
+        return doAction(VdcActionType.GetVdsCapabilities,
+                new VdsActionParameters(guid),
+                action);
+    }
+
+    @Override
     public HostNicsResource getHostNicsResource() {
         return inject(new BackendHostNicsResource(id));
     }
@@ -316,6 +324,7 @@
         return inject(new BackendActionResource(action, ids));
     }
 
+    @Override
     protected VDS getEntity() {
         return getEntity(VDS.class, VdcQueryType.GetVdsByVdsId, new 
IdQueryParameters(guid), id);
     }
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 072b4c2..50d90e6 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
@@ -53,6 +53,7 @@
         if (VersionUtils.greaterOrEqual(version, 
BackendCapabilitiesResource.VERSION_3_3)) {
             addFeatureVmApplications(features);
             addFeatureVnicCustomProperties(features);
+            addFeatureGetHostCapabilities(features);
         }
         return features;
     }
@@ -239,4 +240,11 @@
         feature.setDescription("Ability to add custom properties to vm nic.");
         features.getFeature().add(feature);
     }
+
+    private void addFeatureGetHostCapabilities(Features features) {
+        Feature feature = new Feature();
+        feature.setName("Refresh Host Capabilities");
+        feature.setDescription("Ability to sync with getVdsCaps manually.");
+        features.getFeature().add(feature);
+    }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
index 014337c..593ca95 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java
@@ -546,6 +546,16 @@
         assertEquals(actionReturned.getFault().getReason(), "some_error");
     }
 
+    @Test
+    public void testRefreshCapabilities() throws Exception {
+        setUriInfo(setUpActionExpectations(VdcActionType.GetVdsCapabilities,
+                VdsActionParameters.class,
+                new String[] { "VdsId" },
+                new Object[] { GUIDS[0] }));
+
+        verifyActionResponse(resource.refreshCapabilities(new Action()));
+    }
+
     protected VDS setUpStatisticalExpectations() throws Exception {
         VdsStatistics stats = control.createMock(VdsStatistics.class);
         VDS entity = control.createMock(VDS.class);
@@ -644,6 +654,7 @@
         return entity;
     }
 
+    @Override
     protected void verifyModel(Host model, int index) {
         verifyModelSpecific(model, index);
         verifyLinks(model);


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

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

Reply via email to