Ferramentas

Auto-update e Database Migration

Para garantir um bom controle sobre as modificações que são realizadas no Pandora (tanto no código da aplicação quanto em seu banco de dados) e assegurar que as instâncias geograficamente distribuídas não tenham problemas de atualização em ambientes de homologação e produção, foi adicionado ao Pandora a funcionalidade de auto-update. Esta funcionalidade delega ao serviço de schedular job do sistema operacional a responsabilidade pela atualização da aplicação. Assim, a cada intervalo de tempo pré-estabelecido, um script é executado trazendo do SVN novas revisões de arquivos e alterações a serem aplicadas ao banco de dados (um processo conhecido como database migration).

Esta funcionalidade é provida pelo Titan Framework, utilizado na construção do software. Informações detalhadas sobre seu funcionamento podem ser consultadas na lista de discussão do framework.

Para ativar esta funcionalidade é preciso, primeiramente, instalar a biblioteca ‘SVN’ do PECL do PHP. Para isto, execute os seguintes comandos:

su -
aptitude update
aptitude install build-essential php-pear php5-dev libsvn-dev
pecl update-channels
pecl install svn
echo "extension=svn.so" > /etc/php5/conf.d/svn.ini
/etc/init.d/apache2 restart

Agora, edite as configurações da aplicação para halitar o uso da funcionalidade:

vim /var/www/pandora/configure/titan.xml

Insira no final do arquivo (dentro da tag ‘titan-configuration‘) as linhas abaixo:

<titan-configuration ...>
    ...
    <update
        environment="production"
        svn-login="update"
        svn-password=""
        svn-users="camilo.carromeu"
        backup="true"
    />
</titan-configuration>

Repare que é necessário inserir uma senha (linha destacada). Entre em contato com a equipe do projeto para que seja enviada esta senha.

Por fim, programe a execução do seu script no schedular job do seu sistema operacional:

echo "*/15 * * * * root /usr/bin/php /var/www/pandora/titan/update/update.php /var/www/pandora/ > /var/log/titan-auto-update.log" >> /etc/crontab
/etc/init.d/cron restart

Integração com o Currículo Lattes

É possível integrar o Pandora para que consuma informações disponíveis no Currículo Lattes. Para isto, é necessário que o IP do servidor de produção da instância esteja cadastrado nos WebServices de consumo de informações (de acesso restrito). Caso tenha interesse, entre em contato solicitando este cadastro.

O Pandora irá sincronizar uma série de dados (link para o Currículo Lattes, área de conhecimento, palavras-chave, experiência profissional, formação acadêmica e idiomas) por meio do CPF dos empregados.

Ambiente de Testes

O ambiente de teste do Pandora está em:

http://test.cnpgc.embrapa.br/pandora/

Os seguintes usuários de teste estão disponíveis:

t.admin‘: acesso de administrador (super-usuário).
t.gestor‘: acesso a todos os módulos de gestão.
t.estagiario‘: acesso como um “Membro da Comunidade Externa”, exatamente como se fosse utilizado o formulário de cadastro público.
t.supervisor‘: acesso como um supervisor de estágio.
t.sgp‘: acesso como um gestor do SGP (gestão apenas do Módulo de Estágios).
t.sof‘: acesso como um gestor do SOF (gestão apenas do Módulo Orçamentário).

Todos com a senha “test” (sem aspas). Estão disponíveis também todos os usuários reais do sistema com esta mesma senha.

Foram apagados ou alterados todos os dados sensíveis (p.e., dados de usuários – apenas nome e e-mail são reais). Os valores depositados em projetos, tranferências e despesas foram gerados aleatoriamente.

Por favor, fiquem a vontade para alterar o que quiserem. Lembrem-se, no entanto, que, por ser um ambiente de teste, a qualquer momento as informações podem ser ‘zeradas’ para atualizar o sistema (o que irá acarretar na perda de todos os dados inseridos).

Gerenciador de Projetos

O gerenciador de projetos do Projeto Pandora está disponível em:

http://project.cnpgc.embrapa.br/

Para acesso, basta fazer o cadastro público no Pandora (como um membro da Comunidade Externa). Em seguida, entre em contato com a equipe do projeto para que seu usuário cadastrado obtenha as permissões necessárias.

É utilizada a ferramenta ChiliProject (um fork do Redmine). Nela cada módulo do Pandora (Usuários, Estágio, Orçamento, etc) é mapeado como um subprojeto. As atividades são lançadas nos subprojetos e podem ser visualizadas, de forma consolidada, no projeto principal.

Repositório SVN

O repositório SVN com todo o código e documentação da Plataforma Pandora está disponível em:

https://svn.cnpgc.embrapa.br/pandora/

Para acesso, basta fazer o cadastro público no Pandora (como um membro da Comunidade Externa). Em seguida, entre em contato com a equipe do projeto para que seu usuário cadastrado obtenha as permissões necessárias.

O SVN está integrado ao gerenciador de projetos. Para referenciar uma tarefa do gerenciador basta, durante o commit de modificações, colocar na mensagem de log a sintaxe “ref #[identificador da tarefa]“. Para fechar uma tarefa, basta utilizar a sintaxe “close #[identificador da tarefa]“. Como o gerenciador do Projeto Pandora envia e-mails completos sobre as tarefas atribuídas, basta consultar estes e-mails para saber o que deve ser feito e o identificador da tarefa. Ou seja, a interação com a interface do gerenciador é bastante minimizada.

Ambiente de Desenvolvimento

O ambiente de desenvolvimento do Pandora é implementado utilizando o Vagrant e a base box do Titan Framework.

A configuração do ambiente está no diretório “box“, na raiz do repositório. Atenção! Antes de instanciar seu ambiente, considere a penúltima linha do arquivo “box/Vagrantfile“:

config.vm.provision "shell", path: "http://titan.cnpgc.embrapa.br/provisioner/embrapa.sh"

Esta linha define um “provisioner” que configura o ambiente com características da rede local da Embrapa Gado de Corte. Mais especificamente, por meio deste script são configurados o SMTP e o NTPDATE. Você pode comentar esta linha e configurar manualmente seu ambiente após a instanciação ou pode modificar o scrip “embrapa.sh” para sua Unidade.

Para compreender como instanciar e “subir” o ambiente, veja o tópico correlato na lista de discussão do Titan Framework.

Lista de Discussão do Titan Framework

A Plataforma Pandora foi desenvolvida utilizando o Titan Framework. Assim, recomenda-se fortemente a inscrição na lista de discussão deste framework.

Integração com o “scriptLattes”

Caso sua instância já esteja sincronizada com o Currículo Lattes (veja acima), por meio do CPF o Pandora captura o identificador do Lattes (número único de 16 dígitos). Utilizando este identificador e uma ferramenta denominada scriptLattes o Pandora gera um relatório consolidado que ficará disponível na URL da instância (p.e., http://pandora.cnpxx.embrapa.br/lattes).

Para executar o scriptLattes em sua instância é necessário instalar alguns pacotes adicionais do Python. Para o Debian faça:

su -
aptitude update
aptitude install python-all python-setuptools python-utidylib python-matplotlib python-levenshtein python-pygraphviz python-numpy tidy python-scipy python-imaging
easy_install pytidylib

Pronto! Agora execute o script:

su -
php /var/www/pandora/lattes/run/run.php &

O ‘&‘ ao final do comando diz ao sistema operacional que o execute em background. Isto é necessário pois, dependendo da quantidade de empregados com Currículo Lattes em sua Unidade, este script pode demorar muitas horas para finalizar a execução.

Recomenda-se que o relatório seja atualizado mensalmente. Para isso, basta programar o schedular job do seu sistema operacional. No Linux, adicione a seguinte linha ao ‘/etc/crontab‘ executando o comando:

su -
echo "0 3 20 * * root /usr/bin/php /var/www/pandora/lattes/run/run.php > /var/log/pandora-lattes.log" >> /etc/crontab
/etc/init.d/cron restart

Isto fará com que o relatório seja re-gerado todo dia 20 de cada mês às 3 da manhã.