//
// LogMessage.cs
//
// Author:
//       Carsten Sonne Larsen <cs@innolan.dk>
//
// Copyright (c) 2016 Carsten Sonne Larsen
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

namespace Ntp.Analyzer.Localize
{
    public static class LogMessage
    {
        public const string HostNotFound = "Host with ID {0} does not exists in database.";
        public const string PeerIpNotFound = "Peer with IP {0} does not exists in database.";
        public const string PeerIpAmbiguous = "Ambiguous peer IP {0}. Multiple occurrences found in database.";
        public const string OpenNtpConfigError = "Traffic data collection is not supported for OpenNTP.";

        public const string DatabaseOpenError = "Failed to connect to database: {0}";
        public const string DatabaseCreateError = "Failed to create database.";
        public const string DatabaseCacheError = "Mapper does not implement caching.";
        public const string DatabaseCreateTableError = "Could not create database table.";
        public const string DatabaseCreateTable = "Creating new table '{0}'.";
        public const string DatabaseTableError = "Error while {0} table {1}: {2}";
        public const string DatabaseRead = "reading from";
        public const string DatabaseInsert = "inserting into";
        public const string DatabaseUpdate = "updating";
        public const string DatabaseDelete = "deleting from";
        public const string DatabaseNoUpdate = "Updating rows in {0} table is not supported.";

        public const string HostImportError = "Could not import host data {0}";
        public const string PeerImportError = "Could not import peer data {0}";

        public const string ClusterStart = "Starting cluster module.";
        public const string ClusterNodeAlive = "Cluster node {0} is alive.";
        public const string ClusterNodeActive = "Cluster node {0} is active.";
        public const string ClusterNodeDead = "Cluster node {0} is dead.";
        public const string ClusterNodeError = "Error while contacting cluster node {0}.";
        public const string ClusterError = "Error in scheduler module. Aborting.";

        public const string SchedulerStart = "Starting scheduler with {0} jobs.";
        public const string SchedulerBehind = "Behind schedule. Trying to catch up.";
        public const string SchedulerWaiting = "Waiting for {0} threads to finish.";
        public const string SchedulerAbort = "Aborting thread {0}.";
        public const string SchedulerFinished = "All threads finished.";
        public const string SchedulerError = "Unexpected error in thread {0}.";

        public const string SchedulerJobAdded =
            "{0} job{1} added to scheduler with {2}{3} minutes run interval.";

        public const string SchedulerFixedInterval = "fixed ";
        public const string SchedulerJobExecuting = "{0} is executing.";

        public const string ScheduledJobText = "{0} scheduled to run {1}";

        public const string JobRunning = "running";
        public const string JobPostponed = "postponed";
        public const string JobQueued = "queued";
        public const string JobStopped = "stopped";

        public const string JobError = "Error while executing {0}.";
        public const string JobException = "Error in {0}: {1}";
        public const string JobFailed = "{0} failed.";
        public const string JobDone = "{0} is done.";
        public const string JobText = "{0} job{1}";

        public const string DestinationNewDirectory = "Created new directory {0}";
        public const string DestinationFileError = "Could not write file {0}";
        public const string DestinationPathError = "Could not create path for file {0}";
        public const string DestinationOwnerError = "Could not change ownership of file {0}";
        public const string DestinationPermissonError = "Could not change permission on file {0}";

        public const string ImportHostError = "Error while reading host statistics.";
        public const string ImportPeerError = "Error while reading peer statistics.";
        public const string ImportIoError = "Error while reading I/O statistics.";

        public const string ImportPeerNotFound =
            "Could not import host stats from {0}. Peer with IP {1} was not found in database.";

        public const string ImportMultiplePeersNot =
            "Could not import host stats from {0}. Found more than one peer with IP {1} in database.";

        public const string ImportNtpValueError = "Received an unknown value from NTP Daemon: {0}";
        public const string ImportOpenNtpUnsynced = "OpenNTP clock is unsynced.";
        public const string ImportSyncing = "{0} is syncing to {1}.";
    }
}