Beispiel #1
0
 static function connect($name, $elem)
 {
     if (!in_array($elem['driver'], self::$driver)) {
         throw new \Exception("GLI-023 : This driver isn't supported : " . $elem['driver']);
     }
     $driver = '\\Glial\\Sgbd\\Sql\\' . ucwords(strtolower($elem['driver'])) . '\\' . ucwords(strtolower($elem['driver']));
     $addr = $elem['hostname'];
     $dbname = $elem['database'];
     if (!empty($elem['port']) && is_numeric($elem['port'])) {
         $port = $elem['port'];
     } else {
         $port = null;
     }
     self::$db[$name] = new $driver($name, $elem);
     if (!self::$db[$name]) {
         return false;
     }
     self::$db[$name]->setLogger(self::$logger);
     if (!empty($elem['crypted']) && $elem['crypted'] === "1") {
         Crypt::$key = CRYPT_KEY;
         $elem['password'] = Crypt::decrypt($elem['password']);
     }
     self::$db[$name]->sql_connect($addr, $elem['user'], $elem['password'], $dbname, $port);
     return self::$db[$name];
 }
 private function importData($server)
 {
     //$path = ROOT."/sql/*.sql";
     $path = ROOT . "/sql/full/pmacontrol.sql";
     Crypt::$key = CRYPT_KEY;
     $server['password'] = Crypt::decrypt($server['password']);
     foreach (glob($path) as $filename) {
         //echo "$filename size ".filesize($filename)."\n";
         $cmd = "mysql -h " . $server["hostname"] . " -u " . $server['user'] . " -P " . $server['port'] . " -p" . $server['password'] . " " . $server['database'] . " < " . $filename . "";
         $this->cmd($cmd, "Loading " . pathinfo($filename)['basename']);
     }
 }
Beispiel #3
0
 public function updateServerList()
 {
     $this->view = false;
     $db = $this->di['db']->sql(DB_DEFAULT);
     $sql = "SELECT * FROM `mysql_server`";
     $servers_mysql = $db->sql_fetch_yield($sql);
     $all_server = array();
     foreach ($servers_mysql as $mysql) {
         $all_server[$mysql['name']] = $mysql;
     }
     Crypt::$key = CRYPT_KEY;
     $all = array();
     foreach ($this->di['db']->getAll() as $server) {
         $all[] = $server;
         $info_server = $this->di['db']->getParam($server);
         $data = array();
         if (!empty($all_server[$server])) {
             $data['mysql_server']['id'] = $all_server[$server]['id'];
             unset($all_server[$server]);
         } else {
             echo "Add : " . $server . " to monitoring\n";
             //to update
             $data['mysql_server']['id_client'] = 1;
             $data['mysql_server']['id_environment'] = 1;
         }
         $data['mysql_server']['name'] = $server;
         $data['mysql_server']['ip'] = $info_server['hostname'];
         $data['mysql_server']['login'] = $info_server['user'];
         $data['mysql_server']['passwd'] = Crypt::encrypt($info_server['password']);
         $data['mysql_server']['port'] = empty($info_server['port']) ? 3306 : $info_server['port'];
         $data['mysql_server']['date_refresh'] = date('Y-m-d H:i:s');
         $data['mysql_server']['is_monitored'] = 1;
         if (!empty($info_server['ssh_login'])) {
             $data['mysql_server']['ssh_login'] = Crypt::encrypt($info_server['ssh_login']);
         }
         if (!empty($info_server['ssh_password'])) {
             $data['mysql_server']['ssh_password'] = Crypt::encrypt($info_server['ssh_password']);
         }
         if (!$db->sql_save($data)) {
             debug($data);
             debug($db->sql_error());
             exit;
         } else {
             //echo $data['mysql_server']['name'] . PHP_EOL;
         }
     }
     foreach ($all_server as $to_delete) {
         $sql = "DELETE FROM `mysql_server` WHERE id=" . $to_delete['id'] . "";
         $db->sql_query($sql);
         echo "[Warning] Removed : " . $to_delete['name'] . " from monitoring\n";
     }
 }
Beispiel #4
0
     $style = 'background-color:#d9534f; color:#FFFFFF';
 }
 echo '<tr>';
 echo '<td style="' . $style . '">' . $i . '</td>';
 echo '<td style="' . $style . '">' . $server['id'] . '</td>';
 echo '<td style="' . $style . '">';
 echo '<span class="glyphicon ' . ($server['is_available'] == 1 ? "glyphicon-ok" : "glyphicon-remove") . '" aria-hidden="true"></span>';
 echo '</td>';
 echo '<td style="' . $style . '">' . '<input type="checkbox" name="monitored[' . $server['id'] . ']" ' . ($server['is_monitored'] == 1 ? 'checked="checked"' : '') . '" />' . '</td>';
 echo '<td style="' . $style . '">' . $server['client'] . '</td>';
 echo '<td style="' . $style . '">' . $server['environment'] . '</td>';
 echo '<td style="' . $style . '"><a href="' . LINK . 'server/listing/id/' . $server['id'] . '">' . str_replace('_', '-', $server['name']) . '</a></td>';
 echo '<td style="' . $style . '">' . $server['ip'] . '</td>';
 echo '<td style="' . $style . '">' . $server['port'] . '</td>';
 echo '<td style="' . $style . '">' . $server['login'] . '</td>';
 Crypt::$key = CRYPT_KEY;
 //$passwd = Crypt::decrypt($server['passwd']);
 //echo '<td style="' . $style . '">' . $passwd . '</td>';
 echo '<td style="' . $style . '">' . '***' . '</td>';
 //echo '<td style="'.$style.'">'.$server['hostname'].'</td>';
 echo '<td style="' . $style . '">' . $server['version'] . '</td>';
 echo '<td style="' . $style . '">' . $server['date_refresh'] . '</td>';
 echo '<td style="max-width:600px;' . $style . '" class="">';
 if (strstr($server['error'], '[0m') || strstr($server['error'], 'Call Stack:')) {
     $converter = new AnsiToHtmlConverter();
     $html = $converter->convert($server['error']);
     echo '<pre style="background-color: black; overflow: auto; height:500px; padding: 10px 15px; font-family: monospace;">' . $html . '</pre>';
     //$server['error'];
 } else {
     echo str_replace("\n", '<br>', trim($server['error']));
 }
Beispiel #5
0
 function uncrypt()
 {
     $this->view = false;
     Crypt::$key = CRYPT_KEY;
     $sql = "SELECT * from mysql_server";
     $db = $this->di['db']->sql(DB_DEFAULT);
     $res = $db->sql_query($sql);
     while ($ob = $db->sql_fetch_object($res)) {
         debug(Crypt::decrypt($ob->passwd));
     }
 }
Beispiel #6
0
 public function setPasswdPmaControl()
 {
     $this->view = false;
     do {
         fwrite(STDOUT, "Choose password for remote user pmacontrol\n");
         $passwdpma = self::promptSilent("Enter new UNIX password:"******"Retype new UNIX password:"******"Sorry, passwords do not match\n\n", "red");
         }
     } while ($passwdpma != $passwdpma2);
     Crypt::$key = CRYPT_KEY;
     $password_crypted = Crypt::encrypt($passwdpma);
     $file = "<?php\r\nif (! defined('PMACONTROL_PASSWD'))\r\n{\r\n    define('PMACONTROL_PASSWD', '" . $password_crypted . "');\r\n}\r\n";
     file_put_contents(CONFIG . "pmacontrol.config.php", $file);
     return $passwdpma;
 }