package org.ovirt.engine.core.vdsbroker.gluster;
import org.ovirt.engine.core.common.errors.EngineError;
import org.ovirt.engine.core.common.errors.VDSError;
import org.ovirt.engine.core.common.vdscommands.VdsIdVDSCommandParametersBase;
import org.ovirt.engine.core.vdsbroker.vdsbroker.VdsBrokerCommand;
/**
* Gluster Specific VDS broker. The main purpose is to handle gluster command errors.
*/
public abstract class AbstractGlusterBrokerCommand<P extends VdsIdVDSCommandParametersBase> extends VdsBrokerCommand<P> {
public AbstractGlusterBrokerCommand(P parameters) {
super(parameters);
}
@Override
protected void proceedProxyReturnValue() {
EngineError returnStatus = getReturnValueFromStatus(getReturnStatus());
switch (returnStatus) {
case GlusterGeneralException:
case GlusterPermissionDeniedException:
case GlusterSyntaxErrorException:
case GlusterMissingArgumentException:
case GlusterCmdExecFailedException:
case GlusterXmlErrorException:
case GlusterVolumeCreateFailed:
case GlusterVolumeStartFailed:
case GlusterVolumeStopFailed:
case AddBricksToGlusterVolumeFailed:
case GlusterVolumeSetOptionFailed:
case GlusterVolumeRebalanceStartFailed:
case GlusterVolumeGeoRepSessionStartFailed:
case GlusterVolumeDeleteFailed:
case GlusterVolumeReplaceBrickStartFailed:
case GlusterVolumeReplaceBrickFailed:
case GlusterVolumeListFailed:
case GlusterVolumeOptionInfoFailed:
case GlusterVolumeResetOptionsFailed:
case GlusterVolumeRemoveBricksFailed:
case GlusterVolumeProfileStartFailed:
case GlusterVolumeGeoRepSessionPauseFailed:
case GlusterVolumeProfileStopFailed:
case GlusterAddHostFailed:
case GlusterHostRemoveFailedException:
case GlusterHostIsNotPartOfCluster:
case GlusterPeerListFailed:
case GlusterVolumeStatusFailed:
case GlusterVolumeProfileInfoFailed:
case GlusterHookFailed:
case GlusterHookEnableFailed:
case GlusterHookDisableFailed:
case GlusterHookNotFound:
case GlusterHookListException:
case GlusterHostUUIDNotFound:
case GlusterHookConflict:
case GlusterHookUpdateFailed:
case GlusterHookAlreadyExists:
case GlusterHookChecksumMismatch:
case GlusterHookAddFailed:
case GlusterHookRemoveFailed:
case GlusterServicesActionFailed:
case GlusterServiceActionNotSupported:
case GlusterVolumeRebalanceStopFailed:
case GlusterVolumeStatusAllFailedException:
case GlusterVolumeRebalanceStatusFailedException:
case GlusterVolumeEmptyCheckFailed:
case GlusterGeoRepPublicKeyFileCreateFailed:
case GlusterGeoRepPublicKeyFileReadError:
case GlusterGeoRepUserNotFound:
case GlusterGeoRepPublicKeyWriteFailed:
case GlusterGeoRepExecuteMountBrokerOptFailed:
case GlusterGeoRepExecuteMountBrokerUserAddFailed:
case GlusterMountBrokerRootCreateFailed:
case GlusterGeoRepSessionCreateFailed:
case GlusterVolumeGeoRepSessionResumeFailed:
case GlusterGeoRepException:
case GlusterVolumeRemoveBricksStartFailed:
case GlusterVolumeRemoveBricksStopFailed:
case GlusterVolumeRemoveBrickStatusFailed:
case GlusterVolumeRemoveBricksCommitFailed:
case GlusterVolumeGeoRepStatusFailed:
case GlusterGeoRepConfigFailed:
case GlusterLibgfapiException:
case GlfsStatvfsException:
case GlfsInitException:
case GlfsFiniException:
case GlusterGeoRepSessionDeleteFailedException:
case GlusterVolumeGeoRepSessionStopFailed:
case GlusterSnapshotException:
case GlusterSnapshotInfoFailedException:
case GlusterSnapshotDeleteFailedException:
case GlusterSnapshotActivateFailedException:
case GlusterSnapshotDeactivateFailedException:
case GlusterSnapshotRestoreFailedException:
case GlusterSnapshotCreateFailedException:
case GlusterSnapshotConfigFailedException:
case GlusterSnapshotConfigSetFailedException:
case GlusterSnapshotConfigGetFailedException:
case GlusterHostStorageDeviceNotFoundException:
case GlusterHostStorageDeviceInUseException:
case GlusterHostStorageDeviceMountFailedException:
case GlusterHostStorageDeviceFsTabFoundException:
case GlusterHostStorageDevicePVCreateFailedException:
case GlusterHostStorageDeviceLVConvertFailedException:
case GlusterHostStorageDeviceLVChangeFailedException:
case GlusterHostStorageDeviceMakeDirsFailedException:
case GlusterHostStorageMountPointInUseException:
case GlusterHostStorageDeviceVGCreateFailedException:
case GlusterHostStorageDeviceVGScanFailedException:
case GlusterHostFailedToSetSelinuxContext:
case GlusterHostFailedToRunRestorecon:
case GlusterSnapshotScheduleFlagUpdateFailedException:
case GlusterDisableSnapshotScheduleFailedException:
case GlusterMetaVolumeMountFailedException:
case GlusterMetaVolumeFstabUpdateFailedException:
case GlusterProcessesStopFailedException:
case GlusterVolumeHealInfoFailedException:
// Capture error from gluster command and record failure
getVDSReturnValue().setVdsError(new VDSError(returnStatus, getReturnStatus().message));
getVDSReturnValue().setSucceeded(false);
break;
default:
super.proceedProxyReturnValue();
break;
}
}
}