/* * Copyright (c) 2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.exceptions; import java.net.URI; import com.emc.storageos.svcs.errorhandling.annotations.DeclareServiceCode; import com.emc.storageos.svcs.errorhandling.annotations.MessageBundle; import com.emc.storageos.svcs.errorhandling.resources.ServiceCode; import com.emc.storageos.volumecontroller.AsyncTask; /** * This interface holds all the methods used to create an error condition in the synchronous aspect of the controller that will be * associated with an * HTTP status of 500 * <p/> * Remember to add the English message associated to the method in FatalClientControllerExceptions.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 FatalClientControllerExceptions { @DeclareServiceCode(ServiceCode.CONTROLLER_CLIENT_UNABLE_TO_SCHEDULE_JOB) public FatalClientControllerException unableToScheduleDiscoverJobs(final AsyncTask[] tasks, final Throwable cause); @DeclareServiceCode(ServiceCode.CONTROLLER_CLIENT_UNABLE_TO_LOCATE_DEVICE_CONTROLLER) public FatalClientControllerException unableToLookupStorageDeviceIsNull(); @DeclareServiceCode(ServiceCode.CONTROLLER_CLIENT_UNABLE_TO_LOCATE_DEVICE_CONTROLLER) public FatalClientControllerException unableToLocateDeviceController(final String controllerType); @DeclareServiceCode(ServiceCode.CONTROLLER_CLIENT_UNABLE_TO_SCHEDULE_JOB) public FatalClientControllerException unableToScanSMISProviders(final AsyncTask[] tasks, final String type, final Throwable cause); @DeclareServiceCode(ServiceCode.CONTROLLER_CLIENT_UNABLE_TO_MONITOR_JOB) public FatalClientControllerException unableToMonitorSMISProvider(final AsyncTask task, final String deviceType, final Throwable cause); @DeclareServiceCode(ServiceCode.COORDINATOR_UNABLE_TO_QUEUE_JOB) public FatalClientControllerException unableToQueueJob(URI uri, final Throwable cause); @DeclareServiceCode(ServiceCode.COORDINATOR_UNABLE_TO_QUEUE_JOB) public FatalClientControllerException unableToQueueJob(URI uri); }