Skip to content

Commit

Permalink
Feat/73 multiorgaos (#75)
Browse files Browse the repository at this point in the history
Suporte a Multiorgaos na instalação 

* Instalacao Muliorgaos habilitada no envlocal.env, basta preencher os parametros que sobe ja com muiltiorgao

* Corrigindo bug 74, quando multiorgaos instalador gerava erro ao rodar novamente

* Ajuste na versão e mensagem na rotina de testes de infra
  • Loading branch information
marlinhares authored Feb 23, 2024
1 parent c47b751 commit 7cc603d
Show file tree
Hide file tree
Showing 9 changed files with 134 additions and 114 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -173,63 +173,24 @@ echo "UPDATE NA BASE DE DADOS - ORGAO E SISTEMA**********"
echo "***************************************************"
echo "***************************************************"

# Atualização do endereço de host da aplicação
echo "Atualizando Banco de Dados com as Configuracoes Iniciais..."
if [ "$APP_DB_TIPO" == "MySql" ]; then
echo "Atualizando MySql..."
MYSQL_CMD="mysql --host $APP_DB_HOST --user $APP_DB_ROOT_USERNAME --password=$APP_DB_ROOT_PASSWORD"
$MYSQL_CMD -e "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" sip
$MYSQL_CMD -e "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" sei
$MYSQL_CMD -e "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP';" sip
$MYSQL_CMD -e "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip
fi

if [ "$APP_DB_TIPO" == "Oracle" ]; then
echo "Atualizando Oracle..."
echo "alter user sip identified by sip_user;" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "alter user sei identified by sei_user;" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" | sqlplus64 sei/sei_user@$APP_DB_HOST
echo "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
fi

if [ "$APP_DB_TIPO" == "SqlServer" ]; then
echo "Atualizando SqlServer..."
echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD


echo "use sei" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_SEI_USERNAME -P $APP_DB_SEI_PASSWORD

echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD

echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD
fi

if [ "$APP_DB_TIPO" == "PostgreSql" ]; then
echo "Atualizando Postgres..."

PSQL_CMD="psql -h $APP_DB_HOST -U $APP_DB_ROOT_USERNAME "
PGPASSWORD=$APP_DB_ROOT_PASSWORD $PSQL_CMD -d sip -c "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';"
PGPASSWORD=$APP_DB_ROOT_PASSWORD $PSQL_CMD -d sei -c "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';"
PGPASSWORD=$APP_DB_ROOT_PASSWORD $PSQL_CMD -d sip -c "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP';"
PGPASSWORD=$APP_DB_ROOT_PASSWORD $PSQL_CMD -d sip -c "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI';"
if [ ! -f /sei/controlador-instalacoes/instalado.ok ]; then
# Atualização do endereço de host da aplicação
echo "Atualizando Banco de Dados com as informacoes de orgao e sistema..."

php -r "
require_once '/opt/sip/web/Sip.php';
\$conexao = BancoSip::getInstance();
\$conexao->abrirConexao();
\$conexao->executarSql(\"update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'\");
\$conexao->executarSql(\"update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP'\");
\$conexao->executarSql(\"update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI'\");"

php -r "
require_once '/opt/sei/web/SEI.php';
\$conexao = BancoSEI::getInstance();
\$conexao->abrirConexao();
\$conexao->executarSql(\"update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'\");"
fi

echo "***************************************************"
Expand Down Expand Up @@ -282,6 +243,21 @@ update-ca-trust extract
update-ca-trust enable

if [ ! -f /sei/controlador-instalacoes/instalado.ok ]; then

# multiorgaos
echo "Vamos verificar se passou multiorgaos para instalar"

if [ "$APP_ORGAOS_ADICIONAIS_SIGLA" == "" ] || [ "$APP_ORGAOS_ADICIONAIS_NOME" == "" ]; then
echo "Arrays multiorgaos vazios ou preenchidos incorretamente, pulando instalacao multiorgaos"
else

/usr/sbin/httpd -DFOREGROUND &

echo "Vamos executar agora o script para cadastrar multiorgaos"
php /sei/files/scripts-e-automatizadores/misc/cadastrarMultiorgao.php
echo "Script multiorgaos executado verifique se houve observacoes acima"

fi

echo "Vamos fazer o apache se apropriar dos dados externos... Aguarde"
chown -R apache:apache /sei/arquivos_externos_sei/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ if [ -z "$APP_PROTOCOLO" ] || \
exit 1
fi


echo "***************************************************"
echo "***************************************************"
echo "**INICIANDO CONFIGURACOES BASICAS DO APACHE E SEI**"
Expand Down Expand Up @@ -138,61 +137,6 @@ done

set -e

echo "***************************************************"
echo "***************************************************"
echo "UPDATE NA BASE DE DADOS - ORGAO E SISTEMA**********"
echo "***************************************************"
echo "***************************************************"

# Atualizacao do endereco de host da aplicacao
echo "Atualizando Banco de Dados com as Configuracoes Iniciais..."
if [ "$APP_DB_TIPO" == "MySql" ]; then
echo "Atualizando MySql..."
MYSQL_CMD="mysql --host $APP_DB_HOST --user $APP_DB_ROOT_USERNAME --password=$APP_DB_ROOT_PASSWORD"
$MYSQL_CMD -e "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" sip
$MYSQL_CMD -e "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" sei
$MYSQL_CMD -e "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP';" sip
$MYSQL_CMD -e "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI';" sip
fi

if [ "$APP_DB_TIPO" == "Oracle" ]; then
echo "Atualizando Oracle..."
echo "alter user sip identified by sip_user;" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "alter user sei identified by sei_user;" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO';" | sqlplus64 sei/sei_user@$APP_DB_HOST
echo "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
echo "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI';" | sqlplus64 $APP_DB_ROOT_USERNAME/$APP_DB_ROOT_PASSWORD@$APP_DB_HOST
fi

if [ "$APP_DB_TIPO" == "SqlServer" ]; then
echo "Atualizando SqlServer..."
echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD


echo "use sei" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update orgao set sigla='$APP_ORGAO', descricao='$APP_ORGAO_DESCRICAO'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_SEI_USERNAME -P $APP_DB_SEI_PASSWORD

echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update sistema set pagina_inicial='$APP_HOST_URL/sip' where sigla='SIP'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD

echo "use sip" > /tmp/update.tmp
echo "go" >> /tmp/update.tmp
echo "update sistema set pagina_inicial='$APP_HOST_URL/sei/inicializar.php', web_service='$APP_HOST_URL/sei/controlador_ws.php?servico=sip' where sigla='SEI'" >> /tmp/update.tmp
echo "go" >> /tmp/update.tmp
cat /tmp/update.tmp | tsql -S $APP_DB_HOST -U $APP_DB_ROOT_USERNAME -P $APP_DB_ROOT_PASSWORD
fi

echo "***************************************************"
echo "***************************************************"
echo "**GERACAO DE CERTIFICADO PARA O APACHE*************"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php

/*
cadastra multiorgaos
*/

require_once '/opt/sip/web/Sip.php';

SessaoSip::getInstance(false);
InfraDebug::getInstance()->setBolLigado(true);
InfraDebug::getInstance()->setBolDebugInfra(false);
InfraDebug::getInstance()->setBolEcho(true);

$conexao = BancoSip::getInstance();

$siglas = getenv('APP_ORGAOS_ADICIONAIS_SIGLA');
$nomes = getenv('APP_ORGAOS_ADICIONAIS_NOME');


if( $siglas == "" || $nomes == "" ){

echo "Siglas ou Nomes dos Orgaos nao informados completamente, pulando etapa de configuracao multiorgaos";
echo "";
exit(0);

}

$arrSiglas = explode("/", $siglas);
$arrNomes = explode("/", $nomes);

if( count($arrSiglas) != count($arrNomes) ){

echo "Siglas ou Nomes dos Orgaos nao informados corretamente. Erro na correlacao de sigla/nome.";
echo "";
echo "Pulando etapa de configuracao de multiorgaos";
echo "";
exit(0);

}

for ($i=0; $i < count($arrSiglas) ; $i++) {

$sigla = $arrSiglas[$i];
$nome = $arrNomes[$i];
$ordem = $i + 1;

echo $sigla;
echo $nome;

$objOrgaoDTO = new OrgaoDTO();
$objOrgaoDTO->setNumIdOrgao(null);
$objOrgaoDTO->setStrSigla($sigla);
$objOrgaoDTO->setStrDescricao($nome);
$objOrgaoDTO->setNumOrdem($ordem);

$objOrgaoDTO->setStrSinAutenticar('N');
$objOrgaoDTO->setStrSinAtivo('S');

$arrObjRelOrgaoAutenticacaoDTO = array();
$objOrgaoDTO->setArrObjRelOrgaoAutenticacaoDTO($arrObjRelOrgaoAutenticacaoDTO);

$objOrgaoRN = new OrgaoRN();
$objOrgaoDTO = $objOrgaoRN->cadastrar($objOrgaoDTO);

echo "Criacao do orgao $sigla feita com sucesso\n";

}



?>
2 changes: 1 addition & 1 deletion containers/envcontainers.env.modelo
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
DOCKER_REGISTRY=processoeletronico
DOCKER_CONTAINER_VERSAO_PRODUTO=1.17
DOCKER_CONTAINER_VERSAO_PRODUTO=2.1.0

IMAGEM_BASE_CENTOS=${DOCKER_REGISTRY}/base-centos7
IMAGEM_BASE_CENTOS_VERSAO=latest
Expand Down
9 changes: 9 additions & 0 deletions infra/envlocal-example-mysql.env
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,15 @@ export APP_ORGAO=ME
# Descricao do Orgao
export APP_ORGAO_DESCRICAO=Orgao Processo Eletronico - MySql

# caso deseje orgaos adicionais (multiorgao) entao habilite e passe-os aqui nas 3 vars abaixo.
# Vao somar-se a sigla orgao que foi definido acima
# devem estar separados por ; e tome cuidado para passar a sigla e seus respectivos nomes
# ex:
# export APP_ORGAOS_ADICIONAIS_SIGLA=SIGLA1/SIGLA2
# export APP_ORGAOS_ADICIONAIS_NOME=nome do orgao sigla1/nome do orgao sigla2
export APP_ORGAOS_ADICIONAIS_SIGLA=
export APP_ORGAOS_ADICIONAIS_NOME=

# Nome Complemento do Orgao
export APP_NOMECOMPLEMENTO=SEI - PEN - DTH

Expand Down
9 changes: 9 additions & 0 deletions infra/envlocal.env
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,15 @@ export APP_ORGAO=ME
# Descricao do Orgao
export APP_ORGAO_DESCRICAO=Orgao Processo Eletronico - MySql

# caso deseje orgaos adicionais (multiorgao) entao habilite e passe-os aqui nas 3 vars abaixo.
# Vao somar-se a sigla orgao que foi definido acima
# devem estar separados por ; e tome cuidado para passar a sigla e seus respectivos nomes
# ex:
# export APP_ORGAOS_ADICIONAIS_SIGLA=SIGLA1/SIGLA2
# export APP_ORGAOS_ADICIONAIS_NOME=nome do orgao sigla1/nome do orgao sigla2
export APP_ORGAOS_ADICIONAIS_SIGLA=
export APP_ORGAOS_ADICIONAIS_NOME=

# Nome Complemento do Orgao
export APP_NOMECOMPLEMENTO=SEI - PEN - DTH

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ services:
volumes_from:
- storage-app
- storage-certs
volumes:
- /home/marcelo/projetos/github/spbgovbr/sei-docker/containers/app/app-ci/assets/scripts-e-automatizadores/entrypoint-atualizador.sh:/entrypoint-atualizador.sh
labels:
io.rancher.container.pull_image: always
io.rancher.container.start_once: 'true'
Expand All @@ -137,6 +139,8 @@ services:
- APP_HOST=${APP_HOST}
- APP_ORGAO=${APP_ORGAO}
- APP_ORGAO_DESCRICAO=${APP_ORGAO_DESCRICAO}
- APP_ORGAOS_ADICIONAIS_SIGLA=${APP_ORGAOS_ADICIONAIS_SIGLA}
- APP_ORGAOS_ADICIONAIS_NOME=${APP_ORGAOS_ADICIONAIS_NOME}
- APP_NOMECOMPLEMENTO=${APP_NOMECOMPLEMENTO}
- APP_MEMCACHED_HOST=${APP_MEMCACHED_HOST}
- APP_DB_TIPO=${APP_DB_TIPO}
Expand Down Expand Up @@ -267,6 +271,8 @@ services:
- APP_HOST=${APP_HOST}
- APP_ORGAO=${APP_ORGAO}
- APP_ORGAO_DESCRICAO=${APP_ORGAO_DESCRICAO}
- APP_ORGAOS_ADICIONAIS_SIGLA=${APP_ORGAOS_ADICIONAIS_SIGLA}
- APP_ORGAOS_ADICIONAIS_NOME=${APP_ORGAOS_ADICIONAIS_NOME}
- APP_NOMECOMPLEMENTO=${APP_NOMECOMPLEMENTO}
- APP_MEMCACHED_HOST=${APP_MEMCACHED_HOST}
- APP_DB_TIPO=${APP_DB_TIPO}
Expand Down Expand Up @@ -400,6 +406,8 @@ services:
- APP_HOST=${APP_HOST}
- APP_ORGAO=${APP_ORGAO}
- APP_ORGAO_DESCRICAO=${APP_ORGAO_DESCRICAO}
- APP_ORGAOS_ADICIONAIS_SIGLA=${APP_ORGAOS_ADICIONAIS_SIGLA}
- APP_ORGAOS_ADICIONAIS_NOME=${APP_ORGAOS_ADICIONAIS_NOME}
- APP_NOMECOMPLEMENTO=${APP_NOMECOMPLEMENTO}
- APP_MEMCACHED_HOST=${APP_MEMCACHED_HOST}
- APP_DB_TIPO=${APP_DB_TIPO}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ data:
APP_HOST: "${APP_HOST}"
APP_ORGAO: "${APP_ORGAO}"
APP_ORGAO_DESCRICAO: "${APP_ORGAO_DESCRICAO}"
APP_ORGAOS_ADICIONAIS_SIGLA: "${APP_ORGAOS_ADICIONAIS_SIGLA}"
APP_ORGAOS_ADICIONAIS_NOME: "${APP_ORGAOS_ADICIONAIS_NOME}"
APP_NOMECOMPLEMENTO: "${APP_NOMECOMPLEMENTO}"
APP_MEMCACHED_HOST: "${APP_MEMCACHED_HOST}"
APP_DB_TIPO: "${APP_DB_TIPO}"
Expand Down
3 changes: 2 additions & 1 deletion infra/tests/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,8 @@ test_lineup_completa: test_confirmation
@echo "*****************************************************"
@echo "Vamos iniciar uma execucao da montagem do ambiente reduzida com url customizada, nas 4 bases de dados. "
@echo "Em seguida vamos iniciar uma execucao da montagem do ambiente default com localhost, nas 4 bases de dados. "
@echo "Em seguida vamos iniciar uma execucao da montagem do ambiente completa com url customizada, nas 4 bases de dados. Aguarde ... "
@echo "Em seguida vamos iniciar uma execucao da montagem do ambiente completa com url customizada, nas 4 bases de dados."
@echo "Em seguida vamos iniciar uma execucao da montagem do ambiente em http, nas 4 bases de dados. Aguarde ... "
@echo "*****************************************************"
@echo "*****************************************************"
@sleep 5
Expand Down

0 comments on commit 7cc603d

Please sign in to comment.