Newton - Série de Notas de Versão

10.0.2

Correção de Bugs

  • [bug 1618235] O usuário agora pode deletar todos os caracteres digitados na entrada de pesquisa sem que a faceta selecionada desapareça quando o último caractere é excluído.

  • [bug 1635505] O Horizon agora permite utilizar corretamente a tecla de seta dentro da entrada de pesquisa, sem disparar uma nova busca de texto que atualiza o conteúdo da tabela abaixo.

Outras Notas

  • O menu segue a posição de entrada de pesquisa à medida que o usuário adiciona mais facetas

10.0.1

Notas de Atualização

  • Os arquivos ativados para desenvolvedor foram movidos de openstack_dashboard/enabled para openstack_dashboard/contrib/developer/enabled. Para ativá-los, copie dentro de openstack_dashboard/local/enabled e defina DEBUG = True.

Correção de Bugs

  • Não mais existem quaisquer mensagens de WARNING relativas à painéis de desenvolvedor nos logs.

10.0.0

Prelúdio

Ações do Angular agora devem retornar uma promise que resolve com um objeto estruturado de modo a indicar o que a ação fez (ou não fez).

O JavaScript agora pode acessar o Token do Keystone.

Muitos do pacotes XStatic do Horizon foram atualizados durante este ciclo.

Um página de Detalhes para um recurso (ex: Imagens) pode agora utilizar registro Angular em nível de aplicação para registrar visualizações, de forma que os desenvolvedores podem criar ou extender facilmente visualizações de detalhes. Nessa implementação, essas visualizações são apresentadas como abas dentro da página de detalhes.

Em um esforço em padronizar nossas convenções de nomes para classes HTML, estaremos atualizando vários nomes de classes para utilizar traços, em vez de underscore ou camelcasing para corresponder à convenção do Bootstrap.

O Horizon não mais requer o Nova (ou o Galnce) para funcionar; ele irá rodar quando o Keystone estiver presente (por exemplo, implantações swift-only).

O painel Imagens agora pode ser configurado para utilizar ou o modo legacy ou código Angular.

Para ajudar na manutenção contínua do Horizon como um framework customizável, os estilos ‘padrão’ altamente customizáveis estão sendo retirados em favor dos estilos padrão do Bootstrap. O tema ‘padrão’ somente abrirá mudanças de variáveis ​​scss daqui pra frente.

Os componentes Angular agora existem para fornecer painéis e tabelas de fácil configuração, baseado em informações de registro sobre recursos (Ex: Instâncias).

Os tamanhos modais agora herdam as variáveis ​​do tema Bootstrap.

Nós agora determinamos automaticamente a localização estática da pasta para pacotes xstatic que estejam sendo utilizados pelo Horizon.

Novos Recursos

  • Um serviço de ação-resultado fornece métodos convenientes para construção de um resultado, e para a análise de um objeto resolvido.

  • [blueprint admin-neutron-l3-agent] Adiciona suporte para o gerenciamento de hosts de agentes neutron L3. A tela de administração para informações de sistema agora fornece links/visualizações para ver quais roteadores residem em quais hosts. Adicionalmente, a visão de roteadores do administrador agora também fornece uma lista de onde o roteador está hospedado e o link para ver quais outros roteadores estão compartilhando o mesmo host.

  • Horizon e seus plugins podem acessar o Token do Keystone através de JavaScript de modo que possam fazer chamadas CORS diretamente a outros serviços OpenStack. Isto pode ativar uma UI muito mais responsiva.

  • Adicionado um novo dicionário ANGULAR FEATURES às configurações. Isso permite trocas simples de novos recursos AngularJS.

  • Adicionada a guia Dicas do Agendador ao novo fluxo de trabalho Lançar instância, para permitir a adição de dicas de agendador a uma instância no lançamento. Além de adicionar pares de valores-chave personalizados, o usuário pode também escolher a partir das propriedades no catálogo de definições de metadados do Glance que tem o tipo de recurso OS::Nova::Server e o alvo de propriedades scheduler_hints.

  • Adicionadas configurações de suporte ao serviço de fluxo de trabalho Angular, de forma que cada passo em um fluxo de trabalho possa especificar uma configuração booleana que ele deve passar afim de que o passo seja mostrado.

  • [blueprint admin-views-filter-first] Este blueprint fornece uma forma configurável para permitir que operadores requeiram que os usuários administradores forneçam um critério de pesquisa primeiro, antes de carregar dados na visão de administração.

  • [blueprint angular-table-directive] Este blueprint fornece uma forma para os desenvolvedores declararem programaticamente uma tabela Angular versus escrita de markup HTML. Isso reduz o código de referência HTML. Para uma tabela básica, você precisa passar nos dados e na configuração de colunas dentro da diretiva hz-dynamic-table.

  • [blueprint angular-template-overrides] Este blueprint fornece uma maneira para os desenvolvedores usarem um tema para sobrepor fragmentos HTML uados pelo código Angular no Horizon. Por exemplo, para sobrepor o painel de ajuda do lançamento de instância quando o tema ‘material’ é utilizado, crie openstack_dashboard/themes/material/static/templates/framework /widgets/help-panel/help-panel.html. Todos os modelos do lado do cliente agora são compilados em um único arquivo JavaScript que é reduzido e é dado como um arquivo adicional no arquivo manifest.json.

  • [blueprint cinder-consistency-groups] Este recurso adiciona 2 novas abas ao painel Volumes do Projeto. A primeira aba irá mostrar Grupos de Consistência, e a segunda aba irá mostrar Snapshots de Grupos de Consistência. Grupos de Consistência (CG) contém volumes existentes, e permite ao usuário realizar ações nos volumes em um único passo. Ações incluem: criar/atualizar/deletar CGs, fazer snapshot de todos os volumes em um CG, clonar todos os volumes em um CG, e criar um novo CG e volumes a partir de um snapshot de CG. Políticas associadas com Grupos de Consistência existem no arquivo de políticas do Cinder, e por padrão, todas as ações estão desabilitadas.

  • [blueprint configurable-boot-sources] Permite aos administradores restringir quais fontes estão disponíveis para se dar boot no modo Lançar Instância, através da adição de 4 novas configurações ao LAUNCH_INSTANCE_DEFAULTS (disable_image, disable_instance_snapshot, disable_volume, disable_volume_snapshot).

  • O recurso de criar a partir de um arquivo local foi adicionado aos fluxos de trabalho Criar Imagem tanto do Angular quanto do Django. Ele funciona mesmo em modo ‘legacy’ que faz um proxy do carregamento da imagem para o Django, ou no novo modo ‘direct’, que por sua vez implementa [blueprint horizon-glance-large-image-upload]. Para utilizar o modo ‘direct’ as configurações de HORIZON_IMAGES_UPLOAD_MODE devem ser alteradas para o valor ‘direct’ juntamente com a alteração do parâmetro glance-api.conf cors.allowed_origin que deeve apontar para a URL de onde o Horizon é servido.

  • Adicionada a capacidade de renderizar ações em linhas Angular com detalhes adicionais que explicam o propósito da ação. Elas são renderizadas como placas e destinam-se a descrever as próximas etapas que um usuário pode querer tomar para um determinado recurso.

  • A página de detalhes de porta tem uma nova aba para gerenciamento de Pares de Endereços Permitidos. Esta aba e seus recursos estarão disponíveis somente quando esta extensão estiver ativa no Neutron. A aba Pares de Endereços Permitidos permitirá a criação, exclusão, e listagem de pares de endereços para a porta atual.

  • Suporta um parâmetro para especificar subrede ou endereço IP fixo durante a criação de porta.

  • Uma diretiva (hz-details) fornece a capacidade de mostrar inteligentemente um conjunto de visualizações (tipicamente para um contexto de Detalhes).

  • Uma exibição genérica de Detalhes analisa a localização para determinar o tipo de recurso, e exibe visualizações de detalhes relevantes para aquele tipo.

  • O conceito de Descritor permite uma passagem conveniente de informações que podem identificar globalmente um objeto, para uso em visualizações genéricas e ações.

  • O Horizon agora tem uma rota (não-navegacional) no Django, de modo que as páginas de detalhes genéricas estão profundamente vinculadas.

  • Um modelo Django compartilhado está disponível agora para ser utilizado por qualquer página Angular.

  • Adicionado suporte completo ao Glance v2 de modo que o Horizon não mais dependa de ter um endpoint Glance v1 no catálogo Keystone. Também fornece compatibilidade de código entre Glance v1 e v2.

  • Adiciona novo valor de configuração chamado IMAGES_ALLOW_LOCATION, que permite o usuário definir localizações ao criar ou atualizar imagens. Dependendo da versão do Glance, a capacidade de definir localizações é controlada por políticas e/ou por valores de configuração.

  • Nova e Glance não são mais requeridos para se executar o Horizon. Uma vez que o Keystone esteja presente, o Horizon funcionará corretamente.

  • A configuração ANGULAR_FEATURES agora permite uma chave images_panel. Se definida para True, então o painel de Imagens Angular será usado, enquanto que a versão Python será usada se definida para False.

  • Testes de integração para recursos de Imagem também podem ser alternados em openstack_dashboard/test/integration_tests/horizon.conf utilizando a característica de ‘panel_type’ , definida para ‘legacy’ ou ‘angular’ para corresponder ao tipo de painel ativado.

  • Horizon support for network IP availability feature. Enable Horizon admin network dashboard to be able to display IP availability. Enables 2 columns in the admin network subnets table to display the allocated IPs in a given subnet and unallocated free IPs for each subnet in the network.

  • Tipo de rede do Neutron para o protocolo de tunelamento Geneve agora é suportado.

  • Os tipos de rede do provedor do Neutron para Midonet agora são suportados. Para ativá-los, especifique esses tipos de rede no arquivo de configuração supported_provider_types.

  • O provedor de configuração de rede do Neutron ficou agora mais flexível de modo que os operadores podem configurar vários parâmetros de provedor de redes, incluindo tipo de rede, faixas de segmentação de redes e assim por diante, baseado nos back-ends de rede do Neutron que eles utilizam.

  • Adicionada nova configuração INTEGRATION_TESTS_SUPPORT, cujo valor padrão é False. Este valor é utilizado ao se executar o comando manage.py compress, de forma que, por padrão todos os ativos estáticos e classes html usados ​​por testes de integração são removidos da versão de produção do Horizon. A porta de tarefas dos testes de integração define essa variável como True e recomprime os recursos estáticos.

  • A diretiva hz-resource-panel recebe um nome de recurso Heat (ex: ‘OS::Nova::Server’) e utiliza o registro Angular para fornecer ações, colunas, e visualizações sumarizadas.

  • A diretiva hz-resource-panel recebe um nome de recurso Heat (ex: ‘OS::Nova::Server’) e mostra um cabeçalho apropriado, além de permitir que o conteúdo seja incluído para construir a página do painel.

  • Adicionada uma nova configuração OVERVIEW_DAYS_RANGE. Ela define a faixa padrão de datas no painel de medição Visão geral - sendo ou hoje menos N dias (se o valor é um inteiro N), ou a partir do começo do mês corrente até hoje (se definido para Nenhum). Essa configuração é utilizada para limitrar a quantidade de dados buscados por padrão ao renderizar o painel de Visão Geral. O valor padrão é 1, que difere do comportamento passado, uma vez que causava sérios atrasos em grandes implantações.

  • Tamanhos modais agora herdam seus valores das variáveis de temas. Dois tamanhos adicionais estão disponíveis agora para uso no Horizon, além dos 3 tamanhos padrão dos Modais Bootstrap, modal-xs e modal-xl.

  • Adicionada a configuração TOKEN_DELETE_DISABLED, de modo que os implementadores possam personalizar a revogação de um token de usuário no log out.

Problemas Conhecidos

  • Se você definir ‘images_panel’ para False para a opção ANGULAR_FEATURES (que não é o padrão) e configurar o Horizon para utilizar Glance v2, o Ramdisk ID e o Kernel ID não são mostrados corretamente na tela “Editar Imagem”.

Notas de Atualização

  • Embora não seja necessário, é melhor fazer com que suas ações retornem promises com a estrutura esperada.

  • As configurações TEMPLATE_* foram substituídas por um dicionário TEMPLATE. Isso provavelmente causará problemas ao portar configurações para esta versão do Horizon. A configuração TEMPLATE_DEBUG foi removida e está ligada à configuração DEBUG agora. Uma explicação detalhada deste dicionário pode ser encontrada em https://docs.djangoproject.com/en/1.10/ref/settings/#templates

  • As funções is_authenticated() e is_anonymous() na classe User do Django OpenStack Auth são propriedades quando estão rodando sob o Django 1.10, e não pegam mais o parâmetro margin.

  • Horizon suporta atualmente Angular 1.3.x e Angular 1.4.x, mas removerá o suporte ao 1.3 no futuro. Veja Migração de 1.3 para 1.4

  • A navegação secundária dentro da página de detalhes agora se aplica por todo o Horizon. Um pequena alteração na lógica significa que os items custom_breadcrumb no contexto não precisam mais especificar o nome do painel e o link. Veja [blueprint navigation-improvements]

  • A configuração final Django TEMPLATE_LOADERS será agora gerada a partir das configurações TEMPLATE_LOADERS, CACHED_TEMPLATE_LOADERS e ADD_TEMPLATE_LOADERS. Veja a documentação sobre configurações para mais informações.

  • Não é mais necessário incluir o sufixo de versão na configuração OPENSTACK_KEYSTONE_URL. Graças a uma atualização recente da biblioteca django-openstack-auth conforme o release 2.3.0, o Horizon irá acrescentar o sufixo de versão correspondente à URL baseado no valor armazenado dentro da configuração OPENSTACK_API_VERSIONS[‘identity’].

  • (opcional) Utilize o modelo Angular comum como base para quaisquer páginas Angular para minimizar código boilerplate e para assegurar que utilizamos características/enquadramento similares.

  • A variável OPENSTACK_IMAGE_FORMATS deve ser adicionada à configuração REST_API_REQUIRED_SETTINGS em local_settings.py

  • Se o tema ‘default’ é ainda requerido por sobreposições legadas para funcionar, simplesmente copie os estilos no tema ‘default’ dentro de um tema pré existente ou crie um novo tema personalizado.

  • A classe da linha da tabela status_unknown foi substituída pela classe padrão bootstrap warning.

  • Muitos arquivos JavaScript foram movidos para novas localizações na pasta estática horizon/lib. Previamente, as localizações de alguns arquivos eram atreladas ao código, mas agora as localizações são determinadas automaticamente, baseadas nome do pacote xstatic.

Notas de obsolecência

  • A configuração HORIZON_IMAGES_ALLOW_UPLOAD está obsoleta e deve ser gradualmente substituída pela configuração HORIZON_IMAGES_UPLOAD_MODE.

  • Regras de roteador é uma extensão do Horizon fornecida pela Big Switch Networks. Como parte do trabalho do horizon-vendor-split , retiramos a extensão do Horizon principal. Ela é disponível agora como um plugin separado em https://github.com/bigswitch/horizon-bsn

  • Todas as instâncias de classes HTML ‘d3_pie_chart_usage’ para ‘pie-chart-usage’ Todas as instâncias de classes HTML ‘d3_pie_chart_distribution’ para ‘pie-chart-distribution’

  • As opções ‘default_ipv4_subnet_pool_label’ e ‘default_ipv6_subnet_pool_label’ tornaram-se obsoletas na versão Mitaka e não são mais válidas na versão Newton. Iniciando a partir do Mitaka você pode criar um pool de subrede padrão por família de endereços através da API do Neutron. Esses pools de subredes serão mostrados automaticamente na lista de pool de subrede, utilizando o nome do pool como etiqueta.

  • A funcionalidade Edição em Linha para tabelas do Horizon está agora obsoleta e será removida no Horizon P (12.0). A funcionalidade foi removida das seguintes tabelas: Admin Volume, tabela Types, tabela Admin Metadata Definitions, tabela Identify Projects e tabela Indentify Users.

  • Modos de tela cheia tornaram-se obsoletos em favor do modal-xl. Atualmente, ele é definido para 95% da largura da tela visível.

Problemas de Segurança

  • Tornar os Tokens do Keystone disponíveis ao JavaScript aumenta ligeiramente o risco de um Token ser capturado. Se você não precisa desta funcionalidade, ela pode ser desativada configurando-se a seguinte opção em seu local_settings: ENABLE_CLIENT_TOKEN = False

Correção de Bugs

  • A função admin atrelada ao código foi substituída pela política RBAC selecionável nos painéis. Agora, o acesso de usuários aos painéis é definido por políticas e não funções de usuários. A mudança afeta o dashboard do Admin e seus painéis (Visão geral, Hipervisores, Instâncias e Definições de Metadados).

  • LP-1585682 está corrigido o que concede ao Horizon a capacidade de versionar corretamente os endpoints web (URLs como http://<hostip>/identity em vez de http://<hostip>:5000).

Outras Notas

  • XStatic-Angular atualizado de 1.3.7.0 para 1.4.10.1

  • XStatic-Angular-FileUpload atualizado de 1.4.0.1 para 12.0.4.0

  • XStatic-SCSS atualizado de 3.2.0.0 para 3.3.7.0

  • XStatic-Bootwatch atualizado de 3.3.5.3 para 3.3.6.0

  • XStatic-Font-Awsome atualizado de 4.3.0.0 para 4.5.0.0

  • XStatic-Jasmine atualizado de 2.1.2.0 para 2.4.1.1

  • XStatic-MDI atualizado de 1.1.70.1 para 1.4.57.0

  • XStatic-Rickshaw atualizado de 1.5.0.0 para 1.5.1.0

  • XStatic-Smart Table atualizado de 1.4.5.3 para 1.4.13.1

  • Glance v2 não suporta a funcionalidade copiar-de, assim esse recurso está desativado no Horizon ao se utilizar Glance v2