Skip to content

kaiosatiro/AgendamentoTarifa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agendador de Tarifas para o sistema ***

CodeFactor

Índice

Descrição

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.

Uso

*** Indico o programa ser salvo e executado na pasta "Raiz"***\agendamento_tarifa ***

  1. 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>.
    image
    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
    image
    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.

  2. 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).
    image
    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.
    image
    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.
    image

  3. Para atualizar a tarifa, escolha um dos dois scripts gerados pelo programa.

  4. 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.

  5. 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

Tecnologias

  • subprocess
  • argumentparser
  • psycopg2
  • pathlib

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published