/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.vplex.api;
import java.net.URI;
import java.util.List;
import com.emc.storageos.svcs.errorhandling.annotations.DeclareServiceCode;
import com.emc.storageos.svcs.errorhandling.annotations.MessageBundle;
import com.emc.storageos.svcs.errorhandling.model.ServiceError;
import com.emc.storageos.svcs.errorhandling.resources.ServiceCode;
/**
* This interface holds all the methods used to create {@link ServiceError}s
* related to VPLEX Devices
* <p/>
* Remember to add the English message associated to the method in VPlexErrors.properties and use the annotation {@link DeclareServiceCode}
* to set the service code associated to this error condition. You may need to create a new service code if there is no an existing one
* suitable for your error condition.
* <p/>
* For more information or to see an example, check the Developers Guide section in the Error Handling Wiki page:
* http://confluence.lab.voyence.com/display/OS/Error+Handling+Framework+and+Exceptions+in+ViPR
*/
@MessageBundle
public interface VPlexErrors {
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError jobFailedOp(final String opName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError jobFailed(final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError addStepsForCreateVolumesFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createCGFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError setCGVisibilityFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError addVolumesToCGFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createVirtualVolumesFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createVirtualVolumesRollbackFailed(final String stepId,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deleteVirtualVolumesFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupCreateFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createStorageViewFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupDeleteFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupAddVolumesFailed(final String volList,
final String exportGroup, final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupRemoveVolumesFailed(final String volList,
final String exportGroup, final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupAddInitiatorsFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportMaskDeleteFailed(final String exportMaskNames, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError zoneAddInitiatorStepFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError registerInitiatorsStepFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError storageViewAddInitiatorFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError storageViewAddStoragePortFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportGroupRemoveInitiatorsFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError zoneRemoveInitiatorStepFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError storageViewRemoveInitiatorFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError storageViewRemoveVolumeFailed(final String exportMaskName, final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError storageViewRemoveStoragePortFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError migrateVirtualVolume(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError commitMigrationFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_CANNOT_ROLLBACK_COMMITTED_MIGRATION)
public ServiceError cantRollbackCommittedMigration();
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError importVolumeFailedException(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createVirtualVolumeFromImportStepFailed(final String opName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError expandVolumeNativelyFailed(final String vplexVol,
final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError expandVirtualVolumeFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError expandVolumeUsingMigrationFailed(final String vplexVol,
final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createConsistencyGroupFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deleteConsistencyGroupFailed(final String cgUri,
final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deleteCGFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError updateConsistencyGroupFailed(final String cgUri,
final String opName, final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError removeVolumesFromCGFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deleteStorageViewFailed(final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError fullCopyVolumesFailed(final String vplexUri,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError migrationJobFailed(final String reason);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError restoreVolumeFailed(final String snapshotId, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError cacheInvalidateJobFailed(final String reason);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createMirrorsFailed(Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError attachContinuousCopyFailed(final String sourceVolumeURI, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deactivateMirrorFailed(Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError detachContinuousCopyFailed(Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError detachMirrorFailed(final String opName, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError deleteMirrorFailed(final String opName, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError promoteMirrorFailed(Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError upgradeLocalToDistributedFailedException(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError upgradeLocalToDistributedFailed(final String opName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError waitOnRebuildFailed(final String volumeName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError waitOnRebuildTimedOut(final String volumeName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError waitOnRebuildInvalid(final String volumeName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError waitOnRebuildException(final String volumeName, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError exportHasExistingVolumeWithRequestedHLU(String blockObjectId, String hlu, final String opName);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError unsupportedConsistencyGroupOpError(final String op, final String cg);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError rollbackDeleteCGFailed(final String op, Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError createBackendExportMaskDeleted(String maskURI, String deviceURI);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError operateMigrationFailed(final String opName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError cantRollbackExceptionDeterminingCommitState(final Throwable cause);
@DeclareServiceCode(ServiceCode.VPLEX_API_ERROR)
public ServiceError relinkSnapshotSessionTargetsFailed(List<URI> snapshotURIs, URI tgtSnapSessionURI, final Throwable cause);
}