/*
* Copyright (c) 2013 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.exceptions;
import com.emc.storageos.ceph.CephErrors;
import com.emc.storageos.cinder.errorhandling.CinderErrors;
import com.emc.storageos.datadomain.restapi.errorhandling.DataDomainApiErrors;
import com.emc.storageos.hds.HDSErrors;
import com.emc.storageos.isilon.restapi.IsilonErrors;
import com.emc.storageos.netapp.NetAppErrors;
import com.emc.storageos.netappc.NetAppCErrors;
import com.emc.storageos.networkcontroller.exceptions.NetworkDeviceControllerErrors;
import com.emc.storageos.recoverpoint.exceptions.RecoverPointErrors;
import com.emc.storageos.scaleio.ScaleIOErrors;
import com.emc.storageos.svcs.errorhandling.annotations.DeclareServiceCode;
import com.emc.storageos.svcs.errorhandling.annotations.MessageBundle;
import com.emc.storageos.svcs.errorhandling.model.ExceptionMessagesProxy;
import com.emc.storageos.svcs.errorhandling.model.ServiceError;
import com.emc.storageos.svcs.errorhandling.resources.ServiceCode;
import com.emc.storageos.vnx.xmlapi.VNXErrors;
import com.emc.storageos.vnxe.VNXeErrors;
import com.emc.storageos.volumecontroller.impl.plugins.discovery.smis.DeviceDataCollectionErrors;
import com.emc.storageos.volumecontroller.impl.smis.SmisErrors;
import com.emc.storageos.vplex.api.VPlexErrors;
import com.emc.storageos.xtremio.restapi.errorhandling.XtremIOErrors;
/**
* This interface holds all the methods and interfaces used to create {@link ServiceError}s related to Device
* Controllers
* <p/>
* Remember to add the English message associated to the method in DeviceControllerMessages.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 DeviceControllerErrors {
/** Holds the methods used to create Isilon related error conditions */
public static final IsilonErrors isilon = ExceptionMessagesProxy.create(IsilonErrors.class);
/** Holds the methods used to create DataDomain related error conditions */
public static final DataDomainApiErrors datadomain = ExceptionMessagesProxy.create(DataDomainApiErrors.class);
/** Holds the methods used to create SMIS related error conditions */
public static final XtremIOErrors xtremio = ExceptionMessagesProxy.create(XtremIOErrors.class);
/** Holds the methods used to create SMIS related error conditions */
public static final SmisErrors smis = ExceptionMessagesProxy.create(SmisErrors.class);
/** Holds the methods used to create NetApp related error conditions */
public static final NetAppErrors netapp = ExceptionMessagesProxy.create(NetAppErrors.class);
/** Holds the methods used to create NetApp Cluster Mode related error conditions */
public static final NetAppCErrors netappc = ExceptionMessagesProxy.create(NetAppCErrors.class);
/** Holds the methods used to create VPLEX related error conditions */
public static final VPlexErrors vplex = ExceptionMessagesProxy.create(VPlexErrors.class);
/** Holds the methods used to create network devices related error conditions */
public static final NetworkDeviceControllerErrors network = ExceptionMessagesProxy.create(NetworkDeviceControllerErrors.class);
/** Holds the methods used to create RecoverPoint related error conditions */
public static final RecoverPointErrors recoverpoint = ExceptionMessagesProxy.create(RecoverPointErrors.class);
/** Holds the methods used to create VNX related error conditions */
public static final VNXErrors vnx = ExceptionMessagesProxy.create(VNXErrors.class);
/** Holds the methods used to create HDS related error conditions */
public static final HDSErrors hds = ExceptionMessagesProxy.create(HDSErrors.class);
/** Holds the methods used to create Cinder related error conditions */
public static final CinderErrors cinder = ExceptionMessagesProxy.create(CinderErrors.class);
public static final ScaleIOErrors scaleio = ExceptionMessagesProxy.create(ScaleIOErrors.class);
/** Holds the methods used to create VNXe related error conditions */
public static final VNXeErrors vnxe = ExceptionMessagesProxy.create(VNXeErrors.class);
/** Holds the methods used to create Ceph related error conditions */
public static final CephErrors ceph = ExceptionMessagesProxy.create(CephErrors.class);
public static final DeviceDataCollectionErrors dataCollectionErrors = ExceptionMessagesProxy.create(DeviceDataCollectionErrors.class);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError jobFailedOp(final String operationName);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError jobFailedOpMsg(final String operationName, final String message);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError jobFailed(final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError jobFailedMsg(final String errorMessage, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_UNABLE_DELETE_INITIATOR_GROUPS)
public ServiceError unableToDeleteIGs(final String maskingViewName);
@DeclareServiceCode(ServiceCode.CONTROLLER_INVALID_URI)
public ServiceError invalidURI(final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError createVolumesFailed(final String volUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ABORTED)
public ServiceError createVolumesAborted(final String volUris, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ABORTED)
public ServiceError deleteVolumesAborted(final String volUris, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError expandVolumeFailed(final String volUri, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError restoreVolumeFromSnapshotFailed(final String volUri, final String snapshotUri, final String operationName,
final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteVolumesFailed(final String volUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteVolumesFailedInactive(final String volUri);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteVolumeStepFailedExc(final String volUris, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError groupCopyToTargetNotApplicable();
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unableToScheduleJob(String jobType);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unableToExecuteJob(String jobType);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError exportGroupOpInitInOtherMaskError(String initiatorPort, String mask);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError exportHasExistingVolumeWithRequestedHLU(String blockObjectId, String hlu);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unableToScheduleJob(String jobType, Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError failedToAcquireScanningLock();
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unforeseen();
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unsupportedOperationOnDevType(String op, String devType);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError changeVirtualPoolFailed(final String volUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_INITIATORS_WITH_DIFFERENT_OSTYPE)
public ServiceError initiatorsWithDifferentOSType();
@DeclareServiceCode(ServiceCode.CONTROLLER_MIXING_CLUSTERED_AND_NON_CLUSTERED_INITIATORS)
public ServiceError mixingClusteredAndNonClusteredInitiators();
@DeclareServiceCode(ServiceCode.CONTROLLER_NON_CLUSTER_EXPORT_WITH_INITIATORS_IN_DIFFERENT_IGS)
public ServiceError nonClusterExportWithInitiatorsInDifferentExistingIGs();
@DeclareServiceCode(ServiceCode.CONTROLLER_EXISTING_IG_HAS_DIFFERENT_PORTS)
public ServiceError existingInitiatorGroupHasDifferentPorts(String name);
@DeclareServiceCode(ServiceCode.CONTROLLER_EXISTING_IG_DOES_NOT_HAVE_SAME_PORTS)
public ServiceError existingInitiatorGroupDoesNotHaveSamePorts(String name);
@DeclareServiceCode(ServiceCode.CONTROLLER_VMAX_STORAGE_GROUP_NOT_FOUND)
public ServiceError vmaxStorageGroupNameNotFound(String name);
@DeclareServiceCode(ServiceCode.CONTROLLER_VMAX_FAST_EXPORT_STORAGE_GROUP_ALREADY_IN_MASKINGVIEW)
public ServiceError vmaxFASTStorageGroupAlreadyPartOfExistingMaskingView(String name);
@DeclareServiceCode(ServiceCode.CONTROLLER_VMAX_EXPORT_GROUP_CREATE_ERROR)
public ServiceError vmaxExportGroupCreateError(String message);
@DeclareServiceCode(ServiceCode.CONTROLLER_VMAX_CONCURRENT_REMOVE_FROM_SG_CAUSES_EMPTY_SG)
public ServiceError concurrentRemoveFromSGCausesEmptySG(Throwable cause);
@DeclareServiceCode(ServiceCode.XTREMIO_IG_NOT_FOUND)
public ServiceError xtremioInitiatorGroupsNotDetected(String name);
@DeclareServiceCode(ServiceCode.CONTROLLER_VMAX_MASK_SUPPORTS_SINGLE_HOST_ERROR)
public ServiceError vmaxMaskSupportsSingleHostError(String igName);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError changeVirtualArrayFailed(final String volUris,
final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError createFileSharesFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteFileSharesFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError expandFileShareFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError volumeReachedMaxExports(final String volume, final int hlu, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError exportFileShareFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError updateFileShareExportRulesFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError updateFileShareCIFSACLsFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError updateFileShareNFSACLFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError createFileSystemSnapshotFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteExportRuleFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteCIFSShareFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError restoreFSFromSnapshotFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteFSSnapshotFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deleteShareACLFailed(final String fsUris, final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError assignFilePolicyFailed(final String uri, final String level, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError updateFilePolicyFailed(final String uri, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unassignFilePolicyFailed(final String uri, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError deviceProtectionPolicyOperationFailed(final String uri, final String operation, final int failedPolicies,
final int successPolicies);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError noNasServerFoundToAddStepsToApplyPolicy(final String system);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError removeVolumeFromMaskFailed(final String volumeURIs);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError unableToUpdateFileSystem(final String operationName, final Throwable cause);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError existingMaskFoundDuringBootVolumeExport(final String maskNames, final String computeResource);
@DeclareServiceCode(ServiceCode.CONTROLLER_JOB_ERROR)
public ServiceError existingMaskFoundDuringBootVolumeExportXio(final String igNames, final String hostname);
}