~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Atualizações de Produção ====== Esse caso de uso exibe uma lista de [[desenvolvimento:especificacoes:iproject:casos_de_uso:tarefas:nova_tarefa|tarefas]] com [[desenvolvimento:especificacoes:iproject:casos_de_uso:tarefas:registrar_alteracao|logs]] de solicitações de atualizações de código em produção e solicitações de atualizações de banco de dados. Em geral é utilizado pelos coordenadores ou administradores dos sistemas que executam as solicitações de update em produção, para a preparação do mesmo. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: iProject -> Integração -> Atualizações de Produção ===Passo 1=== O caso de uso inicia solicitando a informação de qual **[[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:build:cadastrar|build]]** será utilizada ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN6]]). Essa build será associada à atualização no momento da realização da atualização. A lista é exibida no modelo -. ===Passo 2=== Uma lista com os logs de solicitação de atualizações de código e banco de dados em produção pendentes é apresentada. São exibidas aqui somente as tarefas com o mesmo sistema da build selecionada ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN1]]) e em ordem descrescente de data ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN2]]). Os logs de uma mesma tarefa são agrupados para facilitar na realização do update ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN3]]). Para cada agrupamento são exibidos: * **__Prioridade da Tarefa__** * **__Número da tarefa__** * **__Descrição da tarefa__** * Informações sobre o sistema e subsistema no modelo **__-__** e para cada log de solicitação são exibidos: * **__Tipo de Log de Solicitação__**: que pode ser //**Atualização de Arquivo**// ou //**Atualização de Banco de Dados**//. Formato : TEXTO * **__Solicitado por__:**: Quem solicitou a atualização. Formato : FULANO DE TAL DE OLIVEIRA. Tipo : TEXTO * **__em __**: Data que a solicitação foi realizada. Formato : DD/MM/AAAA HH:MM:SS. Tipo: DATA E HORA * **__Banco de Dados__**: Se a tarefa for de atualização de banco, o banco em que foi solicitada a atualização. Formato: ADMINISTRATIVO. Tipo: TEXTO. ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN5]]) * **__ChangeLog__**: Um log que descreve genericamente a modificação realizada. Formato: CORREÇÃO NO CSS PARA VISUALIZAÇÃO NO IE7. Tipo : TEXTO * **__Log__**: Se for de atualização em produção é exibido o //****// por //** e os //**Arquivos da Revisão**//. Caso seja de atualização em banco o //**Script SQL**//. * **__Arquivo em Anexo__**: Caso tenha alguma arquivo em anexo será exibido * **__Passou por testes__**: Informa se a tarefa passou por testes ou não. Tipo : TEXTO * **__Validada por__**: Informa o login quem realizou a validação de coordenação. Formato: VALIDADO POR USER. Tipo : TEXTO. e uma sinalização se a atualização foi realizada ou não. Ainda é possível filtrar a lista de solicitações pelas seguintes informações: * //**Responsável**// * **//Tipo de Tarefa//** * **//Subsistema//** * //**Exibir Logs das Tarefas**// * //**Exibir updates de banco de dados**// Pode-se então //confirmar a atualização em produção// para cada solicitação. Caso a solicitação de update em produção seja do tipo ATUALIZAÇÃO DE BANCO DE DADOS ela pode ter associada um log de solicitação de ATUALIZAÇÃO DE ARQUIVO. A atualização do arquivo só poderá ser efetivada depois que as atualizações de banco correspondente tiverem sido realizadas. Caso contrário, o sistema deve impedir a atualização do arquivo ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN8]]). Após ser confirmada a atualização, é feito um commit das revisões para um novo repositório e a revisão gerada será atualizada no log. Caso todas as solicitações de update tenham sido efetivadas, o status da tarefa muda para EM HOMOLOGAÇÃO ([[desenvolvimento:especificacoes:iproject:casos_de_uso:integracao:atualizacoes_de_producao#principais_regras_de_negócio|RN4]]). ===== Principais Regras de Negócio ===== * **RN01** - Somente as tarefas com o mesmo sistema da build selecionada são listadas. * **RN02** - A lista de builds deve aparecer em ordem decrescente da data de cadastro. * **RN03** - A listagem de logs deve estar agrupada por tarefa. * **RN04** - Ao marcar uma atualização como Feita, a tarefa correspondente muda a situação para EM HOMOLOGAÇÃO. * **RN05** - A informação sobre o banco de dados só deve aparecer se a solicitação de atualização for de Banco de Dados * **RN06** - Deve existir uma build aberta para poder acessar a listagem de update em produção. * **RN07** - Deve haver pelo menos um log de update em produção de código ou banco de dados pendente. * **RN08** - Só poderá ser finalizado uma solicitação de atualização de arquivos, se todas as solicitações de banco relacionadas tiverem sido realizadas, quando as duas solicitações estiverem presentes na tarefa. * **RN09** - Se a tarefa só possui solicitações de banco e a atual é a última, mudar o status para EM PRODUÇÃO. * **RN10** - Se a tarefa possuir atualizações de banco e arquivos, e a de banco for feita mas as de arquivos não, o status continua como SOLICITADO ATUALIZAÇÃO. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.com.jeebrasil.iproject.dominio.Build | sistemas_comum.iproject.build | ====== Plano de Teste ====== Sistema: iProject Módulo: Integração Link(s): iProject -> Integração -> Atualizações de Produção Usuário: dalton Papel que usuário deve ter: COORDENADOR, ADMINISTRADOR. ===== Cenários de Teste ===== * Verificar as regras de negócio. * Realizar o cadastro de uma build através do caso de uso //**iProject -> Integração -> Build -> Cadastrar**// (login:gleydson) e verificar se no caso de uso de updates em produção ao escolhê-la somente as tarefas do mesmo sistema da build cadastrada estão sendo exibidos na listagem. * Realizar o cadastro de logs de ATUALIZAÇÃO DE BASE DE DADOS associando a um log de ATUALIZAÇÃO DE ARQUIVOS utilizando o caso de uso //**[[desenvolvimento:especificacoes:iproject:casos_de_uso:tarefas:registrar_alteracao|Registrar Alteração na Tarefa]]**//, e verificar se o sistema impede que seja realizada a atualização de arquivo sem terem sido realizadas todas as atualizações de banco associadas. ===== Dados para o Teste ===== Não se aplica!