|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* REQUISI<EFBFBD><EFBFBD>O DE PESQUISA
|
|
|
|
|
*/
|
|
|
|
|
$dataAtualiza = isset($_POST['dataAtualiza']) ? $_POST['dataAtualiza'] : '';
|
|
|
|
|
$versao = isset($_POST['versao']) ? $_POST['versao'] : '';
|
|
|
|
|
$vpn = isset($_POST['ip_vpn']) ? $_POST['ip_vpn'] : '';
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* REQUISI<EFBFBD><EFBFBD>O DE ATUALIZA<EFBFBD><EFBFBD>O DO SISTEMA
|
|
|
|
|
*/
|
|
|
|
|
$vpnAtualizar = isset($_POST['atualizar']) ? $_POST['atualizar'] : '';
|
|
|
|
|
$versaoAtualizar = isset($_POST['versaoAtualizacao']) ? $_POST['versaoAtualizacao'] : '';
|
|
|
|
|
|
|
|
|
|
$rows = "";
|
|
|
|
|
$mensagem1 = "";
|
|
|
|
|
$totalVersao = array();
|
|
|
|
|
$qtdCentrais = 0;
|
|
|
|
|
$qtdCentraisAtv = 0;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
|
|
$ctPg = ___GetPGConnect();
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btSalva'])) {
|
|
|
|
|
___SetAtualizacao($vpnAtualizar, $versaoAtualizar);
|
|
|
|
|
} else if (isset($_POST['btAtualizarAgora'])) {
|
|
|
|
|
___SetAtualizacao($vpnAtualizar, $versaoAtualizar);
|
|
|
|
|
shell_exec('/var/lib/asterisk/scripts/atualizacao/central_atualizacao.php &');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$res = ___GetServidores($ctPg, $versao, $vpn, $dataAtualiza);
|
|
|
|
|
|
|
|
|
|
foreach ($res as $server) {
|
|
|
|
|
$qtdCentrais ++;
|
|
|
|
|
!empty(trim($server['disco_central'])) ? $qtdCentraisAtv++ : '';
|
|
|
|
|
|
|
|
|
|
$checked = $server['atualizar_central'] == 1 ? 'checked' : '';
|
|
|
|
|
$ckbox = "<input type=\"checkbox\" name=\"atualizar[]\" value=\"{$server['id_central']}\" $checked>";
|
|
|
|
|
|
|
|
|
|
$coleta = date('d/m/Y', strtotime($server['data_reg']));
|
|
|
|
|
$atualizacao = $server['data_atualizacao'] ? date('d/m/Y', strtotime($server['data_atualizacao'])) : 'N<EFBFBD>O ATUALIZADA';
|
|
|
|
|
___VerificaAtualizacao($server['versao_central'], $server['disco_central'], $server['status_central'], $atualizacao, $ckbox);
|
|
|
|
|
|
|
|
|
|
$rows .= "<tr>";
|
|
|
|
|
$rows .= "<td>{$server['nome_central']}</td>";
|
|
|
|
|
$rows .= "<td align=\"center\"><a target=\"_blank\" href=\"http://{$server['ip_central']}\">{$server['ip_central']}</a></td>";
|
|
|
|
|
$rows .= "<td>{$server['versao_central']}</td>";
|
|
|
|
|
$rows .= "<td>" . trim($server['disco_central']) . "</td>";
|
|
|
|
|
$rows .= "<td>" . trim($server['sistema_central']) . "</td>";
|
|
|
|
|
$rows .= "<td>" . trim($server['sizedb_central']) . "</td>";
|
|
|
|
|
$rows .= "<td align=\"center\">{$server['status_central']}</td>";
|
|
|
|
|
$rows .= "<td align=\"center\">$atualizacao</td>";
|
|
|
|
|
$rows .= "<td align=\"center\">$ckbox</td>";
|
|
|
|
|
$rows .= ___iconGrid($server['sizedb_central'], $server['versao_central'], $server['versao_central'], $server['id_central'], $server['ip_central'], $server['nome_central'],$server['status_central'],$atualizacao);
|
|
|
|
|
$rows .= "</tr>";
|
|
|
|
|
}
|
|
|
|
|
$rows .= "<tr><th align='left'>Centrais: $qtdCentrais</th><th align='left'>Centrais Ativadas: $qtdCentraisAtv</th><th colspan='9'></th></tr>";
|
|
|
|
|
|
|
|
|
|
$option = ___GetVersao();
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
$mensagem1 = $ex->getMessage();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$smarty->assign('dataAtu', $dataAtualiza);
|
|
|
|
|
$smarty->assign('coleta', $coleta);
|
|
|
|
|
$smarty->assign('opt', $option);
|
|
|
|
|
$smarty->assign('mensagem', $mensagem1);
|
|
|
|
|
$smarty->assign('rows', $rows);
|
|
|
|
|
$smarty->assign('select', ___GetSelectVersoes());
|
|
|
|
|
$smarty->assign('lastVersao', ___GetLastVersion());
|
|
|
|
|
GetTemplate($smarty, 'admin/centrais/centrais.tpl');
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CONEX<EFBFBD>O COM A BASE DAS CENTRAIS CADASTRADA
|
|
|
|
|
*/
|
|
|
|
|
function ___GetPGConnect() {
|
|
|
|
|
$ctPg = pg_connect(sprintf("host=%s port=%s dbname=%s user=%s password=%s",IP_CENTRAL_ATUALIZACAO,'5432','atualizacoes','contacte','ctepgSQL'));
|
|
|
|
|
___ErrorPG($ctPg, 1, 'N<EFBFBD>o foi poss<EFBFBD>vel conectar no servidor desejado!');
|
|
|
|
|
return $ctPg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* BUSCA A ULTIMA VERS<EFBFBD>O DO SISTEMA
|
|
|
|
|
*/
|
|
|
|
|
function ___GetLastVersion() {
|
|
|
|
|
global $ctPg;
|
|
|
|
|
$query = "SELECT versao_atualizacao FROM aplicativo_atualizacao ORDER BY 1 DESC";
|
|
|
|
|
$result = pg_query($ctPg, $query);
|
|
|
|
|
$res = pg_fetch_assoc($result);
|
|
|
|
|
return $res['versao_atualizacao'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* FUN<EFBFBD><EFBFBD>O PARA ATUALIZAR A BASE DE ACORDO COM ATUALIZA<EFBFBD><EFBFBD>ES PROPOSTAS
|
|
|
|
|
*/
|
|
|
|
|
function ___SetAtualizacao($servers, $versaoAtualizar) {
|
|
|
|
|
global $ctPg;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* SE A OPERA<EFBFBD><EFBFBD>O FOR DESMARCADA OS REGISTRO S<EFBFBD>O ALTERADOS NO BANCO CANCELANDO A ATUALIZA<EFBFBD><EFBFBD>O.
|
|
|
|
|
*/
|
|
|
|
|
$ser = pg_fetch_all(pg_query($ctPg, "SELECT id_central FROM central_atualizacao WHERE atualizar_central = 1"));
|
|
|
|
|
if ($ser) {
|
|
|
|
|
foreach ($ser as $val) {
|
|
|
|
|
if (!in_array($val['id_central'], $servers)) {
|
|
|
|
|
pg_query($ctPg, "UPDATE central_atualizacao SET atualizar_central = 0, atualizar_versao_central = '' WHERE id_central = {$val['id_central']};");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ($servers as $id) {
|
|
|
|
|
pg_query($ctPg, "UPDATE central_atualizacao SET atualizar_central = 1, atualizar_versao_central = '$versaoAtualizar' WHERE id_central = $id;");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* SISTEMA DE PESQUISA DOS SERVIDORES CADASTRADOS NA BASE
|
|
|
|
|
*/
|
|
|
|
|
function ___GetServidores($conexao, $versao = '', $vpn = '', $dataAtualizacao = '') {
|
|
|
|
|
$query = "SELECT * FROM central_atualizacao WHERE nome_central IS NOT NULL ";
|
|
|
|
|
|
|
|
|
|
if ($versao) {
|
|
|
|
|
$query .= " AND versao_central = '$versao'";
|
|
|
|
|
} else if ($vpn) {
|
|
|
|
|
$query .= " AND ip_central = '$vpn' OR nome_central ILIKE '%$vpn%' "
|
|
|
|
|
. "OR nome_central ILIKE '%$vpn%' "
|
|
|
|
|
. "OR sistema_central ILIKE '%$vpn%'";
|
|
|
|
|
} else if ($dataAtualizacao) {
|
|
|
|
|
$query .= sprintf(" AND data_atualizacao = '%s'", FormatDtMssql($dataAtualizacao));
|
|
|
|
|
}
|
|
|
|
|
$query .= " ORDER BY 1";
|
|
|
|
|
|
|
|
|
|
$result = pg_query($conexao, $query);
|
|
|
|
|
$return = pg_fetch_all($result);
|
|
|
|
|
___ErrorPG($conexao, $return, 'N<EFBFBD>o foi poss<EFBFBD>vel listar os servidores, verifique a conex<EFBFBD>o!');
|
|
|
|
|
return $return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* COLETA ERROS COM CONSULTAS NO POSTGRESQL
|
|
|
|
|
*/
|
|
|
|
|
function ___ErrorPG($conexao, $return, $msg) {
|
|
|
|
|
|
|
|
|
|
if (pg_last_error($conexao)) {
|
|
|
|
|
throw new Exception($msg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!$return) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi encontrado nenhum registro!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* VERIFICA SE A VPN POSSUI TODAS A INFORMA<EFBFBD><EFBFBD>ES
|
|
|
|
|
*/
|
|
|
|
|
function ___VerificaAtualizacao($versao, $disco, &$status, &$atualizacao, &$checkbox) {
|
|
|
|
|
if (!trim($versao) || !trim($disco)) {
|
|
|
|
|
$status = "-";
|
|
|
|
|
$atualizacao = "-";
|
|
|
|
|
$checkbox = "-";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CRIA COMBO COM AS VERS<EFBFBD>ES DAS CENTRAIS
|
|
|
|
|
*/
|
|
|
|
|
function ___GetVersao() {
|
|
|
|
|
global $totalVersao, $ctPg;
|
|
|
|
|
|
|
|
|
|
$arrayVer = ___GetServidores($ctPg);
|
|
|
|
|
$opt = "<option value=\"\">Todas</option>";
|
|
|
|
|
|
|
|
|
|
foreach ($arrayVer as $versao) {
|
|
|
|
|
if (!in_array($versao['versao_central'], $totalVersao) && $versao['versao_central']) {
|
|
|
|
|
$totalVersao[] = $versao['versao_central'];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sort($totalVersao);
|
|
|
|
|
|
|
|
|
|
foreach ($totalVersao as $value) {
|
|
|
|
|
$opt .= "<option value=\"$value\">$value</option>";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $opt;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CRIA A ICONE PARA MODIFICAR A VPN
|
|
|
|
|
*/
|
|
|
|
|
function ___iconGrid($sizedb, $disco, $versao, $id, $ip, $central, $status, $atualizacao) {
|
|
|
|
|
$rows = '';
|
|
|
|
|
$myIP = $_SERVER["HTTP_HOST"];
|
|
|
|
|
$uri = $_SERVER["REQUEST_URI"];
|
|
|
|
|
if ($sizedb && $versao || $disco) {
|
|
|
|
|
$rows .= "<td align=\"center\"><a href='#' onclick=\"NovaJanela('index.php?idProg=319&pbxRequest=1&id=$id&ip=$ip¢ral=$central&sts=$status&atualiza=$atualizacao', 'CadCentrais', '400', '230', 'resizable=YES,scrollbars=YES');\"><img width='16px' title='Editar' src='imgSite/edit-solid.png'/></a></td>";
|
|
|
|
|
} else {
|
|
|
|
|
$rows .= "<td align=\"center\" colspan='2'><img width='16px' title='Servidor n<EFBFBD>o conectado' src='imgSite/exclamation-circle.png'/></td>";
|
|
|
|
|
}
|
|
|
|
|
return $rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CRIA O COMBO PARA MOSTRAR OS SERVIDORES
|
|
|
|
|
*/
|
|
|
|
|
function ___GetSelectVersoes() {
|
|
|
|
|
global $ctPg;
|
|
|
|
|
$rows = '';
|
|
|
|
|
|
|
|
|
|
$result = pg_query($ctPg, "SELECT versao_atualizacao FROM aplicativo_atualizacao ORDER BY versao_atualizacao DESC");
|
|
|
|
|
$res = pg_fetch_all($result);
|
|
|
|
|
|
|
|
|
|
foreach ($res as $ver) {
|
|
|
|
|
$rows .= "<option value='{$ver['versao_atualizacao']}'>{$ver['versao_atualizacao']}</option>";
|
|
|
|
|
}
|
|
|
|
|
return $rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CONEX<EFBFBD>O COM O SERVIDOR QUE RODA O SCRIPT central_atualizacao
|
|
|
|
|
*/
|
|
|
|
|
function ___ConnectSSH($comando) {
|
|
|
|
|
$connection = ssh2_connect("127.0.0.1", 2223);
|
|
|
|
|
ssh2_auth_password($connection, 'root', 'SimpleS_root');
|
|
|
|
|
ssh2_exec($comando);
|
|
|
|
|
}
|
|
|
|
|
|