centreon / centreon-clapi

Centreon CLAPI Module
14 stars 14 forks source link

Utilisation de la nouvelle méthode de création des fichiers de configuration #336

Closed jben94 closed 8 years ago

jben94 commented 8 years ago

Bonjour,

Dans la dernière version de CLAPI, vous ne prenez pas en charge la nouvelle méthode de création des fichiers de configuration de centreon. Ayant un grande plate forme à superviser, l'ancienne méthode met plus 10 minutes à créer les fichiers, alors que la nouvelle environ 1 minute.

Voici les modifs effectuées afin que CLAPI prenne en charge cette méthode.

Fichier : centreon.Config.Poller.class.php

    /**
     *
     * Generate configuration files for a specific poller
     * @param $variables
     * @param $login
     * @param $password
     */
    public function pollerGenerate($variables, $login, $password) {
        define('_CENTREON_PATH_', $this->centreon_path);

        $path = _CENTREON_PATH_ . "www/include/configuration/configGenerate/";
        $nagiosCFGPath = _CENTREON_PATH_ . "filesGeneration/nagiosCFG/";
        $centreonBrokerPath = _CENTREON_PATH_ . "filesGeneration/broker/";
        $DebugPath = "filesGeneration/nagiosCFG/";

        chdir(_CENTREON_PATH_ . "www");
        require_once _CENTREON_PATH_ . "www/include/configuration/configGenerate/DB-Func.php";
        require_once _CENTREON_PATH_ . 'www/class/config-generate/generate.class.php';
        require_once _CENTREON_PATH_ . "www/class/centreonAuth.class.php";
        require_once _CENTREON_PATH_ . "www/class/centreonLog.class.php";
        require_once _CENTREON_PATH_ . "www/class/centreon.class.php";
        require_once _CENTREON_PATH_ . "www/class/centreonContactgroup.class.php";

        global $pearDB, $pearDBO, $oreon, $_SERVER;
        $pearDB = $this->_DB;
        $pearDBO = $this->_DBC;

        $CentreonLog = new CentreonUserLog(-1, $pearDB);
        $centreonAuth = new CentreonAuth($login, $password, 0, $pearDB, $CentreonLog, NULL);
        $oreon = new Centreon((array)$centreonAuth->userInfos);
        $oreon->user->version = 3;

        chdir("./modules/centreon-clapi/core/");
        $config_generate = new Generate();

        $comment = 0;
        $debug = 0;

        $ret = array();
        $ret['host'] = $variables;
        $ret['comment'] = $comment;
        $ret['debug'] = $debug;

        $_SERVER["REMOTE_ADDR"] = "127.0.0.1";

        /**
         * Insert session in session table
         */
        session_id(1);
        $pearDB->query(
            "INSERT INTO `session` (`session_id` , `user_id` , `current_page` , `last_reload`, `ip_address`) 
            VALUES ('1', '".$oreon->user->user_id."', '1', '".time()."', '".$_SERVER["REMOTE_ADDR"]."')"
        );

        # Sync contactgroups to ldap
        $cgObj = new CentreonContactgroup($pearDB);
        $cgObj->syncWithLdap();
        if (!is_numeric($variables)) {
            $variables = $this->getPollerId($variables);
        }

        # Generate configuration
        if ($variables == '0') {
            $config_generate->configPollers();
        } else {
            $config_generate->configPollerFromId($variables);
        }

        /* Free session */
        $pearDB->query("DELETE FROM `session` WHERE `session_id` = '1' AND `user_id` = '".$oreon->user->user_id."'");

        return 0;
    }

Fichier : centreonContactgroup.class.php (De centreon) Ici j'ai modifié le "require_once" car la class "centreonACL.class.php" était déclaré deux fois.

require_once ("centreonACL.class.php");

Fichier : core\centreon Ajout de la ligne ci-dessous afin d'augmenter la limite de la mémoire pour PHP

ini_set("memory_limit", "1G");

querwin commented 8 years ago

Open in Centreon forge

julienmathis commented 8 years ago

Bonjour

Quelle version de CLAPI utilisez vous ? Dans la 2.7.x CLAPI est intégré de base. J'ai l'impression aux vues du code que vous utilisez encore le module externe CLAPI.

Pouvez vous tester avec le CLAPI installé dans /usr/share/centreon/bin/centreon

Merci

jben94 commented 8 years ago

Bonjour,

Il est vrai que j'utilisais le module à cette époque.