void RenderAf::offline( JobContainer * jobs, uint32_t updateTaskState, MonitorContainer * monitoring, bool toZombie ) { setOffline(); setBusy( false); if( isWOLFalling()) { setWOLFalling( false); setWOLSleeping( true); } if( jobs && updateTaskState) ejectTasks( jobs, monitoring, updateTaskState); // There is need to send pending tasks to offline render. m_re.clearTaskExecs(); appendLog( m_hres.v_generateInfoString()); if( toZombie ) { AFCommon::QueueLog("Render Deleting: " + v_generateInfoString( false)); appendLog("Waiting for deletion."); setZombie(); // AFCommon::saveLog( getLog(), af::Environment::getRendersDir(), m_name); if( monitoring ) monitoring->addEvent( af::Monitor::EVT_renders_del, m_id); } else { AFCommon::QueueLog("Render Offline: " + v_generateInfoString( false)); appendLog("Offline."); m_time_launch = 0; if( monitoring ) monitoring->addEvent( af::Monitor::EVT_renders_change, m_id); store(); } }
void UserAf::deleteNode( MonitorContainer * i_monitoring) { AFCommon::QueueLog("Deleting user: "******"Became a zombie."); setZombie(); if( i_monitoring ) i_monitoring->addEvent( af::Monitor::EVT_users_del, m_id); }
void TalkAf::refresh( time_t currentTime, AfContainer * pointer, MonitorContainer * monitoring) { //printf("TalkAf::refresh: \"%s\"\n", getName().toUtf8().data()); if( getTimeUpdate() < (currentTime - af::Environment::getTalkZombieTime())) { if( monitoring) monitoring->addEvent( af::Msg::TMonitorTalksDel, m_id); setZombie(); } }
void JobAf::deleteNode( RenderContainer * renders, MonitorContainer * monitoring) { if( m_id == AFJOB::SYSJOB_ID ) { AFCommon::QueueLogError("System job can't be zombie"); return; } if( m_deletion == false ) { m_state = AFJOB::STATE_OFFLINE_MASK; lock(); m_deletion = true; if( m_custom_data.size() || m_user->getCustomData().size()) { std::vector<std::string> events; events.push_back("JOB_DELETED"); emitEvents(events); } if( getRunningTasksNumber() && (renders != NULL) && (monitoring != NULL)) { restartAllTasks("Job deletion.", renders, monitoring, AFJOB::STATE_RUNNING_MASK); if( monitoring ) monitoring->addJobEvent( af::Monitor::EVT_jobs_change, getId(), getUid()); return; } } if( getRunningTasksNumber() ) { AF_ERR << "runningtaskscounter = " << getRunningTasksNumber(); return; } if( false == m_command_post.empty()) { SysJob::AddPostCommand( m_command_post, m_blocks_num > 0 ? m_blocks_data[0]->getWDir(): "", m_user_name, m_name); appendLog( std::string("Executing job post command:\n") + m_command_post); } for( int b = 0; b < m_blocks_num; b++) { if( m_blocks_data[b]->hasCmdPost()) { SysJob::AddPostCommand( m_blocks_data[b]->getCmdPost(), m_blocks_data[b]->getWDir(), m_user_name, m_name); appendLog( std::string("Executing block[") + m_blocks_data[b]->getName() + "] post command:\n" + m_blocks_data[b]->getCmdPost()); } } setZombie(); AFCommon::DBAddJob( this); if( monitoring ) monitoring->addJobEvent( af::Monitor::EVT_jobs_del, getId(), getUid()); AFCommon::QueueLog("Deleting a job: " + v_generateInfoString()); unLock(); }
void BranchSrv::deleteBranch(Action & o_action, MonitorContainer * i_monitoring) { if (NULL == m_parent) { o_action.answer_kind = "error"; o_action.answer = "Can`t delete ROOT branch."; return; } if (m_branches_num || m_jobs_num) { o_action.answer_kind = "error"; o_action.answer = "Branch['" + m_name + "'] has child branches/jobs."; return; } appendLog(std::string("Deleted by ") + o_action.author); setZombie(); if (i_monitoring) i_monitoring->addEvent(af::Monitor::EVT_branches_del, m_id); }