Martin Peřina has uploaded a new change for review. Change subject: core: restapi: Replace FenceExecutor in GetVdsFenceStatusQuery ......................................................................
core: restapi: Replace FenceExecutor in GetVdsFenceStatusQuery Replaces FenceExecutor with HostFenceActionExecutor in GetVdsFenceStatusQuery. Change-Id: Icde949ea1f9507f28aab23d232e08ff93569b38d Bug-Url: https://bugzilla.redhat.com/1182510 Signed-off-by: Martin Perina <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsFenceStatusQuery.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendHostResource.java M backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendHostResourceTest.java 3 files changed, 38 insertions(+), 30 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/68/38968/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsFenceStatusQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsFenceStatusQuery.java index 87a0831..47179fe 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsFenceStatusQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetVdsFenceStatusQuery.java @@ -1,10 +1,10 @@ package org.ovirt.engine.core.bll; import org.ovirt.engine.core.bll.context.EngineContext; -import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue; +import org.ovirt.engine.core.bll.pm.HostFenceActionExecutor; import org.ovirt.engine.core.common.businessentities.VDS; +import org.ovirt.engine.core.common.businessentities.pm.FenceActionType; import org.ovirt.engine.core.common.queries.VdsIdParametersBase; -import org.ovirt.engine.core.common.vdscommands.VDSFenceReturnValue; import org.ovirt.engine.core.dal.dbbroker.DbFacade; public class GetVdsFenceStatusQuery<P extends VdsIdParametersBase> extends FenceQueryBase<P> { @@ -20,18 +20,7 @@ @Override protected void executeQueryCommand() { VDS vds = DbFacade.getInstance().getVdsDao().get(getParameters().getVdsId()); - FenceExecutor executor = new FenceExecutor(vds); - VDSFenceReturnValue result = executor.checkHostStatus(); - if (result.getSucceeded()) { - getQueryReturnValue().setReturnValue(result); - } else { - handleError(result); - } - } - - private void handleError(VDSFenceReturnValue returnValue) { - String msg = returnValue.getExceptionString(); - alertPowerManagementStatusFailed(msg); - getQueryReturnValue().setReturnValue(new FenceStatusReturnValue("unknown", msg)); + HostFenceActionExecutor executor = new HostFenceActionExecutor(vds); + getQueryReturnValue().setReturnValue(executor.fence(FenceActionType.STATUS)); } } 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 4f43425..99103af 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 @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.List; - import javax.ws.rs.Path; import javax.ws.rs.core.Response; @@ -50,9 +49,7 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.action.VdsOperationActionParameters; -import org.ovirt.engine.core.common.businessentities.pm.FenceActionType; import org.ovirt.engine.core.common.businessentities.FenceAgent; -import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.storage.StorageType; @@ -60,6 +57,10 @@ import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VDSType; import org.ovirt.engine.core.common.businessentities.VdsStatic; +import org.ovirt.engine.core.common.businessentities.pm.FenceActionType; +import org.ovirt.engine.core.common.businessentities.pm.FenceOperationResult; +import org.ovirt.engine.core.common.businessentities.pm.FenceOperationResult.Status; +import org.ovirt.engine.core.common.businessentities.pm.HostPowerStatus; import org.ovirt.engine.core.common.queries.DiscoverSendTargetsQueryParameters; import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters; import org.ovirt.engine.core.common.queries.GetUnregisteredBlockStorageDomainsParameters; @@ -411,14 +412,15 @@ } private Response getFenceStatus(Action action) { - VDSReturnValue result = getEntity(VDSReturnValue.class, VdcQueryType.GetVdsFenceStatus, new VdsIdParametersBase(guid), guid.toString()); - FenceStatusReturnValue fenceResult = (FenceStatusReturnValue) result.getReturnValue(); - if (fenceResult.getIsSucceeded()) { + VDSReturnValue result = getEntity( + VDSReturnValue.class, + VdcQueryType.GetVdsFenceStatus, + new VdsIdParametersBase(guid), + guid.toString()); + FenceOperationResult fenceResult = (FenceOperationResult) result.getReturnValue(); + if (fenceResult.getStatus() == Status.SUCCESS) { PowerManagement pm = new PowerManagement(); - pm.setStatus(fenceResult.getStatus().toLowerCase().equals("on") ? StatusUtils.create(PowerManagementStatus.ON) - : fenceResult.getStatus().toLowerCase().equals("off") ? StatusUtils.create(PowerManagementStatus.OFF) - : fenceResult.getStatus().toLowerCase().equals("unknown") ? StatusUtils.create(PowerManagementStatus.UNKNOWN) - : null); + pm.setStatus(StatusUtils.create(convertHostPowerStatus(fenceResult.getPowerStatus()))); action.setPowerManagement(pm); return actionSuccess(action); } else { @@ -426,6 +428,19 @@ } } + private PowerManagementStatus convertHostPowerStatus(HostPowerStatus status) { + switch (status) { + case ON: + return PowerManagementStatus.ON; + + case OFF: + return PowerManagementStatus.OFF; + + default: + return PowerManagementStatus.UNKNOWN; + } + } + private Response handleFailure(Action action, String message) { action.setStatus(StatusUtils.create(CreationStatus.FAILED)); action.setFault(new Fault()); 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 18e35ab..34cf28e 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 @@ -13,7 +13,6 @@ import java.math.MathContext; import java.util.ArrayList; import java.util.List; - import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; @@ -41,12 +40,13 @@ import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatus; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; -import org.ovirt.engine.core.common.businessentities.pm.FenceActionType; -import org.ovirt.engine.core.common.businessentities.FenceStatusReturnValue; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VdsStatistics; +import org.ovirt.engine.core.common.businessentities.pm.FenceActionType; +import org.ovirt.engine.core.common.businessentities.pm.FenceOperationResult; +import org.ovirt.engine.core.common.businessentities.pm.HostPowerStatus; import org.ovirt.engine.core.common.businessentities.storage.StorageType; import org.ovirt.engine.core.common.queries.DiscoverSendTargetsQueryParameters; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -559,7 +559,7 @@ public void testFenceStatus() throws Exception { VDSReturnValue retVal = new VDSReturnValue(); retVal.setSucceeded(true); - retVal.setReturnValue(new FenceStatusReturnValue("on", "")); + retVal.setReturnValue(new FenceOperationResult(FenceOperationResult.Status.SUCCESS, HostPowerStatus.ON)); setUpEntityQueryExpectations(VdcQueryType.GetVdsFenceStatus, VdsIdParametersBase.class, new String[] { "VdsId" }, @@ -577,7 +577,11 @@ public void testFenceStatusFailure() throws Exception { VDSReturnValue retVal = new VDSReturnValue(); retVal.setSucceeded(true); - retVal.setReturnValue(new FenceStatusReturnValue("unknown", "some_error")); + retVal.setReturnValue( + new FenceOperationResult( + FenceOperationResult.Status.ERROR, + HostPowerStatus.UNKNOWN, + "some_error")); setUpEntityQueryExpectations(VdcQueryType.GetVdsFenceStatus, VdsIdParametersBase.class, new String[] { "VdsId" }, -- To view, visit https://gerrit.ovirt.org/38968 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icde949ea1f9507f28aab23d232e08ff93569b38d Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Peřina <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
