| | |
| | | * Portions Copyright 2006-2007 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.core; |
| | | import org.opends.messages.Message; |
| | | |
| | | |
| | | |
| | |
| | | import static org.opends.server.loggers.ErrorLogger.logError; |
| | | import static org.opends.server.loggers.debug.DebugLogger.*; |
| | | import org.opends.server.loggers.debug.DebugTracer; |
| | | import static org.opends.server.messages.ConfigMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.getMessage; |
| | | import static org.opends.messages.ConfigMessages.*; |
| | | |
| | | import static org.opends.server.util.StaticUtils.*; |
| | | import org.opends.server.admin.server.ConfigurationChangeListener; |
| | | import org.opends.server.admin.server.ConfigurationAddListener; |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE; |
| | | String message = getMessage(msgID, getExceptionMessage(e)); |
| | | throw new ConfigException(msgID, message, e); |
| | | Message message = |
| | | ERR_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE.get(getExceptionMessage(e)); |
| | | throw new ConfigException(message, e); |
| | | |
| | | } |
| | | |
| | |
| | | // configuration, even if there are no backends defined below it. |
| | | if (backendRoot == null) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_BASE_DOES_NOT_EXIST; |
| | | String message = getMessage(msgID); |
| | | throw new ConfigException(msgID, message); |
| | | Message message = ERR_CONFIG_BACKEND_BASE_DOES_NOT_EXIST.get(); |
| | | throw new ConfigException(message); |
| | | } |
| | | |
| | | |
| | |
| | | // then log an error and skip it. |
| | | if (DirectoryServer.hasBackend(backendCfg.getBackendId())) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_DUPLICATE_BACKEND_ID; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(backendDN)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_DUPLICATE_BACKEND_ID.get( |
| | | backendID, String.valueOf(backendDN)); |
| | | logError(message); |
| | | continue; |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_ERROR, |
| | | message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE. |
| | | get(String.valueOf(className), String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e)); |
| | | logError(message); |
| | | continue; |
| | | } |
| | | |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.acquireSharedLock(lockFile, failureReason)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | continue; |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, stackTraceToSingleLineString(e)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | continue; |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE; |
| | | String message = getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_ERROR, |
| | | message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_INITIALIZE. |
| | | get(String.valueOf(className), String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e)); |
| | | logError(message); |
| | | |
| | | try |
| | | { |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.releaseLock(lockFile, failureReason)) |
| | | { |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK. |
| | | get(backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e2)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK. |
| | | get(backendID, stackTraceToSingleLineString(e2)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND; |
| | | String message = getMessage(msgID, backendID, |
| | | getExceptionMessage(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_ERROR, |
| | | message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get( |
| | | backendID, getExceptionMessage(e)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | { |
| | | // The backend is explicitly disabled. Log a mild warning and |
| | | // continue. |
| | | int msgID = MSGID_CONFIG_BACKEND_DISABLED; |
| | | String message = getMessage(msgID, String.valueOf(backendDN)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.INFORMATIONAL, message, msgID); |
| | | Message message = |
| | | INFO_CONFIG_BACKEND_DISABLED.get(String.valueOf(backendDN)); |
| | | logError(message); |
| | | } |
| | | } |
| | | } |
| | |
| | | */ |
| | | public boolean isConfigurationChangeAcceptable( |
| | | BackendCfg configEntry, |
| | | List<String> unacceptableReason) |
| | | List<Message> unacceptableReason) |
| | | { |
| | | DN backendDN = configEntry.dn(); |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | unacceptableReason.add(de.getMessage()); |
| | | unacceptableReason.add(de.getMessageObject()); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | unacceptableReason.add(de.getMessage()); |
| | | unacceptableReason.add(de.getMessageObject()); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | Class backendClass = DirectoryServer.loadClass(className); |
| | | if (! Backend.class.isAssignableFrom(backendClass)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CLASS_NOT_BACKEND; |
| | | unacceptableReason.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN))); |
| | | |
| | | unacceptableReason.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get( |
| | | String.valueOf(className), String.valueOf(backendDN))); |
| | | return false; |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE; |
| | | unacceptableReason.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | |
| | | unacceptableReason.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get( |
| | | String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | return false; |
| | | } |
| | | |
| | |
| | | */ |
| | | public ConfigChangeResult applyConfigurationChange(BackendCfg cfg) |
| | | { |
| | | DN backendDN = cfg.dn(); |
| | | Backend backend = registeredBackends.get(backendDN); |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | DN backendDN = cfg.dn(); |
| | | Backend backend = registeredBackends.get(backendDN); |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | |
| | | // See if the entry contains an attribute that indicates whether the |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.releaseLock(lockFile, failureReason)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backend.getBackendID(), |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK. |
| | | get(backend.getBackendID(), String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backend.getBackendID(), |
| | | stackTraceToSingleLineString(e2)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK. |
| | | get(backend.getBackendID(), stackTraceToSingleLineString(e2)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE; |
| | | messages.add(getMessage(msgID, String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | |
| | | messages.add(ERR_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE.get( |
| | | String.valueOf(backendDN), stackTraceToSingleLineString(e))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, messages); |
| | | } |
| | |
| | | // It appears to be a valid backend class. We'll return that the |
| | | // change is successful, but indicate that some administrative |
| | | // action is required. |
| | | int msgID = MSGID_CONFIG_BACKEND_ACTION_REQUIRED_TO_CHANGE_CLASS; |
| | | messages.add(getMessage(msgID, String.valueOf(backendDN), |
| | | backend.getClass().getName(), className)); |
| | | |
| | | messages.add( |
| | | NOTE_CONFIG_BACKEND_ACTION_REQUIRED_TO_CHANGE_CLASS.get( |
| | | String.valueOf(backendDN), |
| | | backend.getClass().getName(), className)); |
| | | adminActionRequired = true; |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | else |
| | | { |
| | | // It is not a valid backend class. This is an error. |
| | | int msgID = MSGID_CONFIG_BACKEND_CLASS_NOT_BACKEND; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN))); |
| | | |
| | | messages.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get( |
| | | String.valueOf(className), String.valueOf(backendDN))); |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | |
| | | messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get( |
| | | String.valueOf(className), String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | catch (Exception e) |
| | | { |
| | | // It is not a valid backend class. This is an error. |
| | | int msgID = MSGID_CONFIG_BACKEND_CLASS_NOT_BACKEND; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN))); |
| | | |
| | | messages.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get( |
| | | String.valueOf(className), String.valueOf(backendDN))); |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.acquireSharedLock(lockFile, failureReason)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, stackTraceToSingleLineString(e)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get( |
| | | String.valueOf(className), String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | |
| | | try |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.releaseLock(lockFile, failureReason)) |
| | | { |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK. |
| | | get(backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e2)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get( |
| | | backendID, stackTraceToSingleLineString(e2)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND; |
| | | String message = getMessage(msgID, backendID, |
| | | getExceptionMessage(e)); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get( |
| | | backendID, getExceptionMessage(e)); |
| | | |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | messages.add(message); |
| | | |
| | | logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR, |
| | | message, msgID); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | |
| | | */ |
| | | public boolean isConfigurationAddAcceptable( |
| | | BackendCfg configEntry, |
| | | List<String> unacceptableReason) |
| | | List<Message> unacceptableReason) |
| | | { |
| | | DN backendDN = configEntry.dn(); |
| | | |
| | |
| | | String backendID = configEntry.getBackendId(); |
| | | if (DirectoryServer.hasBackend(backendID)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_DUPLICATE_BACKEND_ID; |
| | | unacceptableReason.add(getMessage(msgID, |
| | | String.valueOf(backendDN))); |
| | | unacceptableReason.add(WARN_CONFIG_BACKEND_DUPLICATE_BACKEND_ID.get( |
| | | String.valueOf(backendDN), backendID)); |
| | | return false; |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE; |
| | | unacceptableReason.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | unacceptableReason.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get( |
| | | String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | return false; |
| | | } |
| | | |
| | |
| | | // { |
| | | // if (errorMessages.isEmpty()) |
| | | // { |
| | | // int msgID = MSGID_CONFIG_BACKEND_UNACCEPTABLE_CONFIG; |
| | | // int message = ERR_CONFIG_BACKEND_UNACCEPTABLE_CONFIG.get(); |
| | | // unacceptableReason.add(getMessage(msgID, |
| | | // String.valueOf(configEntryDN))); |
| | | // } |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | unacceptableReason.add(de.getMessage()); |
| | | unacceptableReason.add(de.getMessageObject()); |
| | | return false; |
| | | } |
| | | catch (Exception e) |
| | |
| | | DN backendDN = cfg.dn(); |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | |
| | | // Register as a change listener for this backend entry so that we will |
| | |
| | | { |
| | | // The backend is explicitly disabled. We will log a message to |
| | | // indicate that it won't be enabled and return. |
| | | int msgID = MSGID_CONFIG_BACKEND_DISABLED; |
| | | String message = getMessage(msgID, String.valueOf(backendDN)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.INFORMATIONAL, message, msgID); |
| | | Message message = |
| | | INFO_CONFIG_BACKEND_DISABLED.get(String.valueOf(backendDN)); |
| | | logError(message); |
| | | messages.add(message); |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | String backendID = cfg.getBackendId(); |
| | | if (DirectoryServer.hasBackend(backendID)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_DUPLICATE_BACKEND_ID; |
| | | String message = getMessage(msgID, String.valueOf(backendDN)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_DUPLICATE_BACKEND_ID.get( |
| | | String.valueOf(backendDN), backendID); |
| | | logError(message); |
| | | messages.add(message); |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INSTANTIATE; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get( |
| | | String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | | messages); |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.acquireSharedLock(lockFile, failureReason)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK.get( |
| | | backendID, stackTraceToSingleLineString(e)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | resultCode = ResultCode.CONSTRAINT_VIOLATION; |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_INITIALIZE; |
| | | messages.add(getMessage(msgID, String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get( |
| | | String.valueOf(className), |
| | | String.valueOf(backendDN), |
| | | stackTraceToSingleLineString(e))); |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | |
| | | try |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.releaseLock(lockFile, failureReason)) |
| | | { |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get( |
| | | backendID, String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backendID, |
| | | stackTraceToSingleLineString(e2)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get( |
| | | backendID, stackTraceToSingleLineString(e2)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND; |
| | | String message = getMessage(msgID, backendID, |
| | | getExceptionMessage(e)); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get( |
| | | backendID, getExceptionMessage(e)); |
| | | |
| | | resultCode = DirectoryServer.getServerErrorResultCode(); |
| | | messages.add(message); |
| | | |
| | | logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR, |
| | | message, msgID); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, |
| | |
| | | */ |
| | | public boolean isConfigurationDeleteAcceptable( |
| | | BackendCfg configEntry, |
| | | List<String> unacceptableReason) |
| | | List<Message> unacceptableReason) |
| | | { |
| | | DN backendDN = configEntry.dn(); |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES; |
| | | unacceptableReason.add(getMessage(msgID, String.valueOf(backendDN))); |
| | | unacceptableReason.add( |
| | | NOTE_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES.get( |
| | | String.valueOf(backendDN))); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | DN backendDN = configEntry.dn(); |
| | | ResultCode resultCode = ResultCode.SUCCESS; |
| | | boolean adminActionRequired = false; |
| | | ArrayList<String> messages = new ArrayList<String>(); |
| | | ArrayList<Message> messages = new ArrayList<Message>(); |
| | | |
| | | |
| | | // See if this backend config manager has a backend registered with the |
| | |
| | | StringBuilder failureReason = new StringBuilder(); |
| | | if (! LockFileManager.releaseLock(lockFile, failureReason)) |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backend.getBackendID(), |
| | | String.valueOf(failureReason)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get( |
| | | backend.getBackendID(), String.valueOf(failureReason)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | } |
| | |
| | | TRACER.debugCaught(DebugLogLevel.ERROR, e2); |
| | | } |
| | | |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK; |
| | | String message = getMessage(msgID, backend.getBackendID(), |
| | | stackTraceToSingleLineString(e2)); |
| | | logError(ErrorLogCategory.CONFIGURATION, |
| | | ErrorLogSeverity.SEVERE_WARNING, message, msgID); |
| | | Message message = WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK.get( |
| | | backend.getBackendID(), stackTraceToSingleLineString(e2)); |
| | | logError(message); |
| | | // FIXME -- Do we need to send an admin alert? |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | int msgID = MSGID_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES; |
| | | messages.add(getMessage(msgID, String.valueOf(backendDN))); |
| | | |
| | | messages.add(NOTE_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES |
| | | .get(String.valueOf(backendDN))); |
| | | resultCode = ResultCode.UNWILLING_TO_PERFORM; |
| | | return new ConfigChangeResult(resultCode, adminActionRequired, messages); |
| | | } |