/** * Generate modules configuration files * @param array $filesList * @param int $pollerId * @param string $path * @param object $event * @return value */ public function generate(&$filesList, $pollerId, $path, $event) { $di = Di::getDefault(); /* Get Database Connexion */ $dbconn = $di->get('db_centreon'); $modules = array(); /* Retrieve broker modules */ $events = Di::getDefault()->get('events'); $moduleEvent = new BrokerModuleEvent($pollerId); $events->emit('centreon-configuration.broker.module', array($moduleEvent)); $brokerModules = $moduleEvent->getModules(); foreach ($brokerModules as $brokerModule) { $modules[]['broker_module'] = $brokerModule; } /* External command module */ $moduleDir = Engine::getParameters($pollerId, 'module_dir'); $modules[]['broker_module'] = rtrim($moduleDir['module_dir'], '/') . '/externalcmd.so'; /* Write modules configuration files */ foreach ($modules as $module) { $filename = preg_match('/\\/?(\\w+)\\.so/', $module['broker_module'], $matches); if (!empty($matches[1])) { WriteConfigFile::writeParamsFile($module, $path . $pollerId . "/conf.d/" . $matches[1] . '.cfg', $filesList, $user = "******"); } } }
/** * @param \CentreonConfiguration\Events\BrokerModule $event * @throws \Centreon\Internal\Exception */ public static function execute(BrokerModuleEvent $event) { /* Retrieve etc and module path */ $paths = BrokerRepository::getPathsFromPollerId($event->getPollerId()); /* Set modules */ if (isset($paths['directory_cbmod']) && isset($paths['directory_config'])) { $moduleDir = rtrim($paths['directory_cbmod'], '/'); $etcDir = rtrim($paths['directory_config'], '/'); $event->addModule("{$moduleDir}/cbmod.so {$etcDir}/poller-module.xml"); } }