/** * getInstance() * * Connect to the backend engine and store for later use * * @static * @return SugarSearchEngineInterface */ public static function getInstance($name = '', $config = array(), $useDefaultWhenFTSDown = false) { require_once 'include/SugarSearchEngine/SugarSearchEngineAbstractBase.php'; if ($useDefaultWhenFTSDown && SugarSearchEngineAbstractBase::isSearchEngineDown()) { $name = 'SugarSearchEngine'; } if (!isset(self::$_instance[$name])) { self::$_instance[$name] = self::setupEngine($name, $config); } return self::$_instance[$name]; }
/** * Check FTS server status and update cache file and notification. * * @return boolean */ protected function updateFTSServerStatus() { $GLOBALS['log']->debug('Going to check and update FTS Server status.'); // check FTS server status $result = $this->SSEngine->getServerStatus(); if ($result['valid']) { $GLOBALS['log']->debug('FTS Server is OK.'); // server is ok if (SugarSearchEngineAbstractBase::isSearchEngineDown()) { $GLOBALS['log']->debug('Restoring FTS Server status.'); // mark fts server as up SugarSearchEngineAbstractBase::markSearchEngineStatus(false); // remove notification $cfg = new Configurator(); $cfg->config['fts_disable_notification'] = false; $cfg->handleOverride(); } return true; } else { $GLOBALS['log']->info('FTS Server is down?'); // server is down if (!SugarSearchEngineAbstractBase::isSearchEngineDown()) { $GLOBALS['log']->fatal('Marking FTS Server as down.'); // fts is not marked as down, so mark it as down SugarSearchEngineAbstractBase::markSearchEngineStatus(true); } return false; } }