GithubHelp home page GithubHelp logo

agendamentotarifa's Introduction

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

agendamentotarifa's People

Contributors

kaiosatiro avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.