Relatório 10/12/2009

Na terceira e última etapa do projeto, finalizamos a versão 0.1 do DonkeySurvey, ferramenta para coleta e persistência de dados sobre conexões numa rede EDonkey. Atualmente o DonkeySurvey implementa as funcionalidades básicas para o uso num ambiente em produção, com uma instância do mldonkey-server conectado à rede ed2k e uma base de dados MySQL.

No que diz respeito à documentação, a justificativa do projeto e seu desenvolvimento estão registrados nesta wiki. Produzimos os arquivos AUTHORS, README e COPYING, para serem distribuídos juntamente com o software, licenciado sob a GNU GPLv3. Produzimos também um pacote de demonstração de implementação do GUIProtocol em python disponibilizado na  wiki do MLDonkey.

A partir desta data, o projeto será mantido em um  repositório público onde receberá contribuições de novos desenvolvedores, como se espera de projetos de Software Livre.

Desenvolvimento

Visto que esta foi uma etapa de finalização de um processo, bastante tempo foi dedicado a testes, correção de erros e refatoração do código. Desde o começo do projeto até o estágio atual foram produzidas 2985 linhas de código.

Concluímos a implementação do GuiProtocol e a integração das diferentes camadas do software (interface, negócio e dados). Além disso, melhorias no programa como um todo foram implementadas, algumas delas listadas abaixo:

Arquivo de configuração

O DonkeySurvey conta agora com um simples e documentado arquivo de configuração, que pode ser global (/etc/donkeysurvey/donkeysurvey.conf) ou do usuário (~/.donkeysurveyrc). Neste arquivo o usuário pode ajustar configurações de log, conexão com o banco de dados e com o mldonkey-server.

O tratamento deste arquivo é feito através do módulo ConfigParser do Python.

Registro de logs

A partir desta versão, todo o sistema utiliza um padrão para mensagens enviadas para a saída padrão (stdout), saída de erros (stderr), ou arquivos de log. Quando a opcão -o é passada na linha de comando ou o arquivo de configuração possui o parâmetro output_filename, a saída também será redirecionada para um arquivo.

A implementação desta funcionalidade se baseou no módulo logging do python.

Daemonize

O sistema agora se comporta como um daemon real. Se a opção -b for passada ou a opção background igual a 1 no arquivo de configuração, o sistema é executado em background, não redirecionando nada para o stdout ou stderr. Neste caso a opção -o (output_filename) pode ser utilizada para análise dos logs.

Caso de uso

Como prova de conceito do DonkeySurvey, uma interface foi implementada e já está em fase de testes num ambiente em produção. Abaixo estão algumas imagens capturadas do sistema.