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
