Esempio n. 1
0
void YConsoleManager::onExecutableFailed(void* which)
{
    Executable* exe = (Executable*) which;
    if(config.find("module_failure").asString() == "prompt")
        cout<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed!"<<endl;

    if(config.find("module_failure").asString() == "recover")
    {
        cout<<endl<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed! (restarting...)"<<endl;
        exe->start();
    }

    if(config.find("module_failure").asString() == "terminate")
    {
        cout<<endl<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed! (terminating application...)"<<endl;
        bShouldRun = false;
        stop();
        reportErrors();
    }
}
Esempio n. 2
0
void SafeManager::onExecutableFailed(void* which)
{
    WAIT_SEMAPHOR();
    ErrorLogger* logger  = ErrorLogger::Instance();
    Executable* exe = static_cast<Executable*>(which);
    if(exe)
    {
        if(m_pConfig->find("module_failure").asString() == "prompt")
        {
            OSTRINGSTREAM err;
            err<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed! [id:"<<exe->getID()<<"]";
            logger->addError(err);
            if(eventReceiver && exe)
                eventReceiver->onModStop(exe->getID());
        }

        if(m_pConfig->find("module_failure").asString() == "recover")
        {
            OSTRINGSTREAM err;
            err<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed! [id:"<<exe->getID()<<"] (restarting...)";
            logger->addError(err);
            exe->start();
         }

        if(m_pConfig->find("module_failure").asString() == "terminate")
        {
            OSTRINGSTREAM err;
            err<<exe->getCommand()<<" from "<<exe->getHost()<<" is failed! [id:"<<exe->getID()<<"] (terminating...)";
            logger->addError(err);
            Manager::stop();
        }
    }

    if(eventReceiver)
            eventReceiver->onError();
    POST_SEMAPHOR();
}