← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1512411] [NEW] Horizon quota collection is suboptimal

 

Public bug reported:

Confirmed on:
stable/kilo
stable/juno

Issue:
When user accesses `horizon/project/access_and_security/` page, this triggers a call to api/network->tenant_floating_ip_list, and this happens for each tab with preload = True (default) which has any related quotas in table_actions field of the related table.

Details:
For example for keypairs tab it is
table_actions = (CreateKeyPair, ImportKeyPair, DeleteKeyPairs,
                         KeypairsFilterAction,)
Here `CreateKeyPair` will trigger call to quotas.tenant_quota_usages(request) check which will in turn call tenant_floating_ip_list.

On default stable/kilo and stable/juno the call to floating_ip_list happens 2 times on this page.
If we set preload = False in https://github.com/openstack/horizon/blob/master/horizon/tabs/base.py#L257 then floating_ip_list is called once, but will also happen for Keypairs tab, and 2 times for FloaitngIPs tab (once for quotas and another time to actually get the IPs).

Current quota retrieval mechanism is suboptimal and should be cached to
not duplicate calls for tabs or allow doing calls to get specific quota
(for example, only keypair quota or only floatingip quota).

Current code assumes fast/cheap API response which may sometimes not be
true - for huge clouds for example.

** Affects: horizon
     Importance: Undecided
         Status: New


** Tags: large-scale

-- 
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/1512411

Title:
  Horizon quota collection is suboptimal

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  Confirmed on:
  stable/kilo
  stable/juno

  Issue:
  When user accesses `horizon/project/access_and_security/` page, this triggers a call to api/network->tenant_floating_ip_list, and this happens for each tab with preload = True (default) which has any related quotas in table_actions field of the related table.

  Details:
  For example for keypairs tab it is
  table_actions = (CreateKeyPair, ImportKeyPair, DeleteKeyPairs,
                           KeypairsFilterAction,)
  Here `CreateKeyPair` will trigger call to quotas.tenant_quota_usages(request) check which will in turn call tenant_floating_ip_list.

  On default stable/kilo and stable/juno the call to floating_ip_list happens 2 times on this page.
  If we set preload = False in https://github.com/openstack/horizon/blob/master/horizon/tabs/base.py#L257 then floating_ip_list is called once, but will also happen for Keypairs tab, and 2 times for FloaitngIPs tab (once for quotas and another time to actually get the IPs).

  Current quota retrieval mechanism is suboptimal and should be cached
  to not duplicate calls for tabs or allow doing calls to get specific
  quota (for example, only keypair quota or only floatingip quota).

  Current code assumes fast/cheap API response which may sometimes not
  be true - for huge clouds for example.

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