← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1617749] Re: Angular template cache breaks when the template contains backslashes

 

Reviewed:  https://review.openstack.org/364554
Committed: https://git.openstack.org/cgit/openstack/horizon/commit/?id=5627065ee60f76ac231a88e1609c18cd5b6e145f
Submitter: Jenkins
Branch:    master

commit 5627065ee60f76ac231a88e1609c18cd5b6e145f
Author: Paulo Matias <matias@xxxxxxxxx>
Date:   Thu Sep 1 15:57:34 2016 -0300

    Escape backslash in the angular_escapes filter
    
    Follow-up for Ic97c6f3b0e3c4c91323dcba82bfe43e252e16b1a.
    Supersedes Icbf97fea50183702aaacbe3b9be0d44a5797df9a.
    
    Change-Id: Idb58cebefab747f204e54ea6350db0852aec60f5
    Co-Authored-By: Matt Borland <matt.borland@xxxxxxx>
    Co-Authored-By: Tadeu Sampaio <tadeu@xxxxxxxxx>
    Closes-Bug: #1617749


** Changed in: horizon
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1617749

Title:
  Angular template cache breaks when the template contains backslashes

Status in OpenStack Dashboard (Horizon):
  Fix Released

Bug description:
  The angular_escapes filter [1] currently does not handle backslashes
  ('\'), therefore templates containing this character are broken (or
  have their behaviour modified) when they are cached.

  We faced this issue when deploying the LBaaSv2 dashboard [2], which
  uses ng-pattern="/^\d+$/" in multiple fields. This is transformed to
  ng-pattern=\"/^\d+$/\" when the pattern is cached (see [3]), which
  results in validator failures that block the usage of the LBaaSv2
  dashboard.

  Although the Horizon code base employs ng-pattern="/^[0-9]+$/" instead
  when a numeric validator is desired, we feel that not escaping the
  backslash is a dangerous behaviour which might cause other issues in
  the future.

  We will send in a few minutes a patch to gerrit proposing a fix for
  this issue.

  --

  Expected behaviour: It should be possible to create a new load
  balancer via the dashboard when deploying Horizon together with the
  LBaaSv2 dashboard.

  Actual behaviour: The validator fails on the "port" fields, which are
  mandatory to create a new load balancer. This blocks the creation of
  new load balancers through the dashboard.

  Steps to reproduce:
  * Deploy the environment
  * Go to Project > Networks > Load Balancers
  * Click on "Create Load Balancer"
  * Try to fill a Port in the "Listener Details" tab

  Environment:
  * OpenStack-Ansible, master branch
  * Multi-node deploy
  * "neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2" included in "neutron_plugin_base"

  
  --
  References

  [1]
  https://github.com/openstack/horizon/blob/107488f2f53f55ce2b727e52b5496db47ffc21ce/horizon/templatetags/angular.py#L57

  [2] https://github.com/openstack/neutron-lbaas-
  dashboard/blob/c68b80b0bb9f89acd46da717b360b429efade43a/neutron_lbaas_dashboard/static/dashboard/project/lbaasv2/workflow/members/members.html#L73

  [3] http://ix.io/1hqG

To manage notifications about this bug go to:
https://bugs.launchpad.net/horizon/+bug/1617749/+subscriptions


References