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']); } }
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"; } }
$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'])); }
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)); } }
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; }