77 for (
size_t i = 0;
i < num_elems; ++
i) {
148 string is(
"\": "),iss(
"\": \""), eol(
",\n\""), eos(
"\"");
176 if (report_all || it->second.IsOn()) {
180 it->second.Report(task);
193 found->second.Update(message);
208 found->second.Acknowledge(user);
Mutex created to have minimum possible size (its size is 4 bytes) and to sleep using kernel capabilit...
void Unlock(void)
Unlock the mutex.
void Lock(void)
Lock the mutex.
static void Register(EAlertType alert_type, const string &message)
static EAlertType x_IdToType(const string &alert_id)
static string x_TypeToId(EAlertType type)
static void Report(CSrvSocketTask &task, bool report_all)
static EAlertAckResult Acknowledge(const string &alert_id, const string &user)
@ eDebugOrphanRecordFound
@ eSyncFailed
Synchronization failed.
@ eDebugReadBlobInfoFailed0
@ eAccessDenied
Command was rejected because client lacks administrative privileges.
@ eStorageReinit
Data storage was reinitialized.
@ eDebugCacheFailedMgrAttach
@ eDebugWriteBlobInfoFailed
@ eDebugOrphanRecordFound2
@ eDebugCacheFailedMgrDetach
@ eDiskSpaceCritical
Free disk space is below critical threshold.
@ eDatabaseTooLarge
Database is too large (warning)
@ eDiskSpaceLow
Free disk space is below threshold.
@ eStartAfterCrash
InstanceGuard file was present on startup.
@ eDebugMoveDataToGarbage
@ eDatabaseOverLimit
Database size exceeded its limit (error, stop write)
@ eDiskSpaceNormal
Free disk space is back to normal.
@ ePeerIpChanged
Peer IP address changed.
@ eDebugReleaseCacheData1
@ eDebugDeleteCNCBlobVerManager
@ ePidFileFailed
Reporting Pid failed.
@ eStartupConfigChanged
Configuration file changed.
@ eDebugReleaseCacheData2
@ eDebugReadBlobInfoFailed1
@ eDebugReadBlobInfoFailed2
@ eDebugDeleteSNCBlobVerData
@ eDebugDeleteVersionData
Task controlling a socket.
CSrvSocketTask & WriteText(CTempString message)
Write text into socket.
CSrvSocketTask & WriteNumber(NumType num)
Write number into socket as string, i.e.
Class incorporating convenient methods to work with struct timespec.
int Compare(const CSrvTime &t) const
Compares object's value to another CSrvTime object's value.
static CSrvTime Current(void)
Exact current time with precision up to nanoseconds.
Uint1 Print(char *buf, EFormatType fmt) const
Formats time value in the object and writes it in buf.
@ eFmtHumanSeconds
Format that can be readable by humans with precision up to seconds.
CSrvTime m_LastDetectedTimestamp
void Acknowledge(const string &user)
CSrvTime m_AcknowledgedTimestamp
void Report(CSrvSocketTask &task)
void Update(const string &message)
NCAlertData(const string &name, const string &message)
container_type::const_iterator const_iterator
container_type::iterator iterator
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
static bool StartsWith(const CTempString str, const CTempString start, ECase use_case=eCase)
Check if a string starts with a specified prefix value.
static string s_UnkStatus
static map< CNCAlerts::EAlertType, NCAlertData > s_Alerts
static SStatusMsg s_StatusMessages[]
const string & GetMessageByStatus(EHTTPStatus sts)
static const size_t s_alertToIdMapSize
static map< EHTTPStatus, string > s_MsgForStatus
static const AlertToId s_alertToIdMap[]
static map< string, EHTTPStatus > s_StatusForMsg
EHTTPStatus GetStatusByMessage(const string &msg, EHTTPStatus def)
void InitClientMessages(void)
Initializes maps between status codes and error texts sent to client to explain these codes.
EHTTPStatus
Statuses of commands to be set in diagnostics' request context Additional statuses can be taken from ...
@ eStatus_CmdTimeout
Command timeout is exceeded.
@ eStatus_Disabled
Client was disabled in configuration.
@ eStatus_BlobTooBig
Blob size exceeds the allowed maximum.
@ eStatus_PrematureClose
Connection was closed too early (client didn't send all data or didn't get confirmation about success...
@ eStatus_NotFound
Blob was not found.
@ eStatus_NoDiskSpace
There's not enough disk space to execute the command.
@ eStatus_NeedAdmin
Command requires admin privileges.
@ eStatus_NoImpl
Command is not implemented.
@ eStatus_CondFailed
Precondition stated in command has failed (size of blob was given but data has a different size)
@ eStatus_NotAllowed
Operation not allowed with current settings (e.g.
@ eStatus_BadPassword
Bad password for accessing the blob.
@ eStatus_BadPeer
Peer returned something wrong.
@ eStatus_JustStarted
Command cannot be executed because NetCache didn't cache the database contents yet.
@ eStatus_ShuttingDown
operation canceled because server needs to shutdown.
CNCAlerts::EAlertType type