protected function execute(InputInterface $input, OutputInterface $output) { $name = $input->getArgument('name'); $text = "Olá {$name}"; // Conexão e execução do arquivo $cacicHelper = new OldCacicHelper($this->getContainer()->get('kernel')); $rootDir = $cacicHelper->getRootDir(); $demo = $rootDir . "/src/Cacic/CommonBundle/Resources/data/demo.sql"; $container = $this->getContainer(); // Carrega configurações do banco de dados $dbhost = $container->getParameter('database_host'); $db = $container->getParameter('database_name'); $port = $container->getParameter('database_port'); $user = $container->getParameter('database_user'); $pass = $container->getParameter('database_password'); // A única forma que encontrei foi executar manualmente o psql $exec_string = "psql -f {$demo} -U {$user} -d {$db} "; if (!empty($dbhost)) { $exec_string .= "-h {$dbhost} "; } if (!empty($port)) { $exec_string .= "-p {$port} "; } if (!empty($pass)) { // Tem que passar a senha como variável $exec("PG_PASSWORD={$pass}"); } // Manda executar o psql exec($exec_string); $force = $input->getOption('force'); $output->writeln($text); }
/** * -------------------------------------------------------------------------------------- * Função usada para fazer updates de subredes... * Recebe como parâmetro o objeto da rede *-------------------------------------------------------------------------------------- */ public function updateSubredes($rede, $modulos = null) { $logger = $this->get('logger'); $pIntIdRede = $rede->getIdRede(); $cacic_helper = new Helper\OldCacicHelper($this->container->get('kernel')); $iniFile = $cacic_helper->iniFile(); if (!file_exists($iniFile)) { $this->get('session')->getFlashBag()->add('error', 'O arquivo versions_and_hashes.ini não foi encontrado. Você fez o upload dos agentes 2.8?'); $logger->error("Arquivo versions_and_hashes.ini não foi encontrado no update de subredes"); } $itemArray = parse_ini_file($iniFile); $teste = parse_ini_file($iniFile, true); $intLoopSEL = 1; $intLoopVersionsIni = 0; $sessStrTripaItensEnviados = ''; // Carrega todos os metadados dos módulos fornecidos ou de todos os módulos $modulos = $this->modulosArray($modulos); foreach ($teste["ItemsDefinitions"] as &$arrItemDefinitions) { $intLoopVersionsIni++; $arrItemDefinitions = explode(',', $itemArray['Item_' . $intLoopVersionsIni]); // Nome do módulo sendo carregado $pStrNmItem = Helper\OldCacicHelper::getOnlyFileName(trim($arrItemDefinitions[0])); $logger->debug("Nome do módulo: {$pStrNmItem}"); if ($modulos[$pStrNmItem]) { $logger->debug("Carregando módulo {$pStrNmItem}"); // Carrega dados da rede $em = $this->getDoctrine()->getManager(); //$arrDadosRede = array( 'rede' => $em->getRepository( 'CacicCommonBundle:Rede' )->listar() ); //Debug::dump($arrDadosRede['rede'][0][0]); //$arrDadosRede = $arrDadosRede['rede'][0]; $arrDadosRede = array('teServUpdates' => $rede->getTeServUpdates(), 'tePathServUpdates' => $rede->getTePathServUpdates(), 'nmUsuarioLoginServUpdatesGerente' => $rede->getNmUsuarioLoginServUpdatesGerente(), 'teSenhaLoginServUpdatesGerente' => $rede->getTeSenhaLoginServUpdatesGerente(), 'nuPortaServUpdates' => $rede->getNuPortaServUpdates()); // Caso o servidor de updates ainda não tenha sido trabalhado... if (!Helper\OldCacicHelper::stripos2($sessStrTripaItensEnviados, $arrDadosRede['teServUpdates'] . '_' . $arrDadosRede['tePathServUpdates'] . '_' . $pStrNmItem . '_', false)) { $sessStrTripaItensEnviados .= $arrDadosRede['teServUpdates'] . '_' . $arrDadosRede['tePathServUpdates'] . '_' . $pStrNmItem . '_'; $strResult = $this->checkAndSend($pStrNmItem, $cacic_helper->getRootDir() . $cacic_helper::CACIC_PATH_RELATIVO_DOWNLOADS . $pStrNmItem, $arrDadosRede['teServUpdates'], $arrDadosRede['tePathServUpdates'], $arrDadosRede['nmUsuarioLoginServUpdatesGerente'], $arrDadosRede['teSenhaLoginServUpdatesGerente'], $arrDadosRede['nuPortaServUpdates']); } else { $strResult = 'Ja Enviado ao Servidor!_=_Ok!_=_Resended'; } $arrResult = explode('_=_', $strResult); if ($arrResult[1] == 'Ok!') { // Consertar CRUD no Symfony $redeVersaoModulo = $em->getRepository('CacicCommonBundle:RedeVersaoModulo')->findBy(array('idRede' => $pIntIdRede, 'nmModulo' => $pStrNmItem)); // Se não existir, instancia o objeto if (!$redeVersaoModulo) { $redeVersaoModulo = new RedeVersaoModulo(null, null, null, null, null, $rede); } else { // Carrego o objeto encontrado $redeVersaoModulo = $redeVersaoModulo[0]; } // Adicione o restante dos atributos $redeVersaoModulo->setNmModulo($pStrNmItem); $redeVersaoModulo->setTeVersaoModulo($itemArray[$pStrNmItem . '_VER']); $redeVersaoModulo->setDtAtualizacao(new \DateTime('NOW')); $redeVersaoModulo->setCsTipoSo($pStrNmItem, '.exe', false ? 'MS-Windows' : 'GNU/LINUX'); $redeVersaoModulo->setTeHash($itemArray[$pStrNmItem . '_HASH']); $em->persist($redeVersaoModulo); $em->flush(); } else { $logger->error("Erro no envio do módulo via FTP \n" . $arrResult[1]); } //echo $_GET['pIntIdRede'] . '_=_' . $_GET['pStrNmItem'] . '_=_' . $strResult; #FIXME: Inserir hash do módulo pyCacyc. Atualmente dá erro mas não trava } $intLoopSEL++; } return; }
public function iniFile() { return OldCacicHelper::getRootDir() . OldCacicHelper::CACIC_PATH_RELATIVO_DOWNLOADS . 'versions_and_hashes.ini'; }