Programa para automatizar o agendamento de mudança de tarifa no sistema ***
Foi pensado de forma a programar uma nova tarifa, de maneira SEGURA, no banco. O agendamento da tarefa de execução é feita no sistema operacional, apontando o script gerado pelo programa. Em caso de alguma falha durante o processo o programa desfará o processo (ROLLBACK) e retornará á configuração anterior.
*** Indico o programa ser salvo e executado na pasta "Raiz"***\agendamento_tarifa ***
-
Na garagem a ser agendado a tarifa, exporte os dados do tarifador e o carregue no computador que irá realizar as mudanças. Após configurado os futuros valores, executar o programa e escolher a opção <1>.
O programa irá solicitar os dados de acesso ao servidor em três opções de detalhamento. Sendo a primeira opção para dados de acesso padrão em um localhost, a segunda para a digitação de TODOS os parâmetros, e a terceira para digitar apenas a senha em um localhost
Com os parâmetros irá criar uma tabela temporária, irá salvar os valores nela e irá realizar o DUMP a ser carregado no sistema da garagem. -
No sistema do cliente (Windows Manager ou servidor Linux), salve o programa e o aquivo gerado por ele (TARIFA_NOVA), NO MESMO diretório. Execute o programa e escolha a opção (2).
Após fonecer os parâmetros corretos, o programa irá carregar as novas configurações em uma tabela temporária e realizará um primeiro backup de segurança. Após isso irá perguntar, para qual sistema operacional o Script deve ser gerado.
Junto com o script do sistema escolhido, o programa irá gerar um segundo script de acordo com o sistema em que ele está sendo executado.
E por fim irá perguntar se o arquivo PGPASS, com a senha do servidor postgres, deve ser mantido salvo no sistema. -
Para atualizar a tarifa, escolha um dos dois scripts gerados pelo programa.
-
O Script que tem o sistema operacional no final do nome, pode ser salvo em qualquer pasta e executado de forma independente, utilizando o agendandor de tarefas se for Windows ou o comando "at" no Linux. (No Linux tambem o crontab). Tambem não é necessário manter salvo o arquivo pgpass, pois o script utliza a varíavel de ambiente para se logar no banco. (Deve ser considerado a segurança de vizualização do password e o nivel de permissão de execução no Linux)
A vantagem desse método é simplicidade.
-
O Script com nome simples "ScriptAtualizaTarifa", DEVE ser mantido no diretório em que foi gerado, JUNTO com o programa que o gerou. Este script acionará por linha de comando o programa TarifaAgendada, para que o mesmo faça a atualização da tarifa a partir da tabela temporária anteriormente preparada.
***SE for escolhido esse método, a etapa 2 DEVE ser feita no sistema operacional em que o Script será agendado. E o arquivo pgpass DEVE ser mantido no sistema.
As vantagem desse método são:
- Segurança do password. Considerando que o Script não guarda o password e depende do arquivo pgpass para acessar o banco. Tendo esse algum nível de segurança de acesso. (Ao menos no Linux)
- Segurança no procedimento. O programa ao ser acionado para atualizar a tarifa, realiza outro backup antes do procedimento, e faz uma checagem final da alteração, comparando o tamanho em kb da tabelas. SE o backup falhar, a atualização não é feita. SE alguma parte do processo falhar, o backup é restaurado.
- Ao final do procedimento bem sucedido, o aquivo pgpass é deletado.
Todos os Scripts criam uma terceira tabela como tarifa_backup, para a possibilidade de "rollback" manual.
Em Linux, deve se observar as permissões de execução do script. chmod.
O procedimento de atualização só pode ser feito via execução de um script ou linha de comando com os argumentos:
--atualizar --host "host" --user "user" --port "port" --dbname "dbname"
A terceira opção do menu inicial verifica se o ambiente tem as condições necessárias para o agendamento. Ou o teste tambem pode ser feito passando o argumento:
--teste
- subprocess
- argumentparser
- psycopg2
- pathlib