"; $coleta = date('d/m/Y', strtotime($server['data_reg'])); $atualizacao = $server['data_atualizacao'] ? date('d/m/Y', strtotime($server['data_atualizacao'])) : 'NÃO ATUALIZADA'; ___VerificaAtualizacao($server['versao_central'], $server['disco_central'], $server['status_central'], $atualizacao, $ckbox); $rows .= ""; $rows .= "{$server['nome_central']}"; $rows .= "{$server['ip_central']}"; $rows .= "{$server['versao_central']}"; $rows .= "" . trim($server['disco_central']) . ""; $rows .= "" . trim($server['sistema_central']) . ""; $rows .= "" . trim($server['sizedb_central']) . ""; $rows .= "{$server['status_central']}"; $rows .= "$atualizacao"; $rows .= "$ckbox"; $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 .= ""; } $rows .= "Centrais: $qtdCentraisCentrais Ativadas: $qtdCentraisAtv"; $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Ã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ão foi possível conectar no servidor desejado!'); return $ctPg; } /* * BUSCA A ULTIMA VERSÃ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ÇÃO PARA ATUALIZAR A BASE DE ACORDO COM ATUALIZAÇÕES PROPOSTAS */ function ___SetAtualizacao($servers, $versaoAtualizar) { global $ctPg; /* * SE A OPERAÇÃO FOR DESMARCADA OS REGISTRO SÃO ALTERADOS NO BANCO CANCELANDO A ATUALIZAÇÃ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ão foi possível listar os servidores, verifique a conexã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ão foi encontrado nenhum registro!"); } } /* * VERIFICA SE A VPN POSSUI TODAS A INFORMAÇÕES */ function ___VerificaAtualizacao($versao, $disco, &$status, &$atualizacao, &$checkbox) { if (!trim($versao) || !trim($disco)) { $status = "-"; $atualizacao = "-"; $checkbox = "-"; } } /* * CRIA COMBO COM AS VERSÕES DAS CENTRAIS */ function ___GetVersao() { global $totalVersao, $ctPg; $arrayVer = ___GetServidores($ctPg); $opt = ""; 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 .= ""; } 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 .= ""; } else { $rows .= ""; } 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 .= ""; } return $rows; } /* * CONEXÃ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); }