Notas de Versão do Essex Series

Visão Geral da Versão

Durante o ciclo de liberação do Essex, o Horizon sofreu um significativo conjunto de mudanças internas para permitir extensibilidade e customização ao mesmo tempo em que adicionava um número significativo de novos recursos e trazia uma estabilidade muito maior para toda interação com os componentes subjacentes.

Destaques

Extensibilidade

Tornar o Horizon extensível para desenvolvedores de terceiros era um dos objetivos para o ciclo de liebração do Essex. Grandes passos foram dados para permitir a adição de novos componentes “plug-in” e customização das implantações do OpenStack Dashboard.

Para suportar essa extensibilidade, todos os componentes utilizados para construir a interface do Horizon agora são modulares e reutilizáveis. Os próprios dashboards do Horizon usam esses componentes, e todos eles foram construídos com desenvolvedores de terceiros em mente. Alguns dos componentes principais são listados abaixo.

Dashboards e Painéis

A estrutura do Horizon foi dividida em grupos lógicos chamados dashboards e painéis. As classes do Horizon que representam esse conceito tratam de todas as questões estruturais associadas à construção de uma interface de usuário completa (navegação, controle de acesso, estrutura de url, etc).

Tabela de Dados

Uma das atividades mais comuns em um dashboard de interface de usuário é a simples listagem de recursos ou dados e a permissão para os usuários tomarem ações nesses dados. Para esse fim, o Horizon abstraiu os pontos comuns desta tarefa em um conjunto reutilizável de classes que permite aos desenvolvedores programaticamente criar visões e interações para seus dados com um mínimo esforço e zero código de referência.

Abas e Grupos de Abas

Outro elemento de interface de usuário extremamente comum é o uso de “abas” para quebrar grupos discretos de dados em partes gerenciáveis. Uma vez que essas abas abrengem dados muito diferentes, podem ter restrições de acessos completamente diferentes, e podem às vezes serem melhorados sendo carregados dinamicamente em vez de carregamento na página inicial, o Horizon inclui aba e classes de grupo de aba para a construção dessas interfaces elegantemente e sem conhecimento de HTML, CSS ou JavaScript envolvido.

Recursos Nova

Suporte para recursos do Nova foram grandemente melhorados no Essex:

  • Suporte para volumes Nova, incluindo:

    • Criação e gerenciamento de volumes

    • Snapshots de volume

    • Atualização AJAX em tempo real para volumes em estados de transição.

  • Exibição e interações aprimoradas de instância Nova, incluindo:

    • Lançamento de instâncias a partir de volumes.

    • Pausando/Suspendendo instâncias.

    • Exibindo status de energia da instância.

    • Atualização AJAX em tempo real para instâncias em estados de transição.

  • Suporte ao gerenciamento de pools de endereços IP Flutuantes.

  • Novas visões de detalhes de Instância e Volume

Configurações

Um nova área de “Configurações” foi adicionada, oferecendo várias funções úteis:

  • Download de credenciais EC2.

  • Download de arquivo OpenStack RC.

  • Personalização de preferências de idioma do usuário.

Melhorias na Experiência do Usuário

  • Suporte para ações em lote em diversos recursos (Ex: término de múltiplas instâncias de uma só vez).

  • Interações modal em toda a UI.

  • Envio do formulário AJAX para validação local.

  • Ajuda aprimorada contextual para formulários (Dicas de ferramentas e mensagens de validação).

Comunidade

  • Criação e publicação de um conjunto de Diretrizes de Interface Humana (HIG).

  • Quantidades enormes de documentação para desenvolvedores.

Nos bastidores

  • Internacionalização totalmente habilitada, com todas as strings marcadas para tradução.

  • Alterações na biblioteca cliente

    • Migração total para python-novaclient a partir da biblioteca obsoleta openstackx.

    • Migração para python-keystoneclient a partir da porção obsoleta do Keystone da biblioteca python-novaclient.

  • Capacidades de modelagem do lado cliente para facilitar a criação de interações dinâmicas.

  • Revisão do frontend para utilizar o framework Bootstrap CSS/JS.

  • Gerenciamento de erros centralizado para ampliação melhorada da estabilidade/confiabilidade em APIs/clientes.

  • Conjunto de testes completamente renovado com dados de teste abrangentes

  • Compatibilidade direta com Django 1.4 e a opção de sessões baseadas em cookie.

Problemas Conhecidos e Limitações

Quantum

Suporte ao Quantum foi removido do Horizon para a versão Essex. Ele será restituído no Folson juntamente com a primeira versão do Quantum como um projeto principal do OpenStack.

Keystone

Devido aos mecanismos pelos quais o Keystone determina a “administratividade” para um usuário, um usuário administrador com o dashboard “Projeto” poderá encontrar um comportamento inconsistente, tal como todos os recursos sendo listados em vez de apenas aqueles pertencentes ao dado projeto, ou somente ser capaz de retornar ao dashboard “Admin” ao acessar certos projetos.

Excessões durante a customização

Exceções surgidas ao reverter o comportamento incorporado do Horizon via configuração do “customization_module” pode desencadear um erro no tratamento de erros que irá mascarar a exceção original.

Compatibilidade Retroativa

A versão Essex do Horizon é apenas parcialmente retro-compatível com os componentes do OpenStack Diablo. Embora seja tranquilamente possível fazer login e interagir, muitas funções no Nova, Glance e Keystone mudaram muito substancialmente no Essex para manter compatibilidade completa.