← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1458697] [NEW] Horizon/Dashboard source reorganisation

 

Public bug reported:

The intent with Horizon has always been that the "horizon" component be
a library/framework of components for dashboards to be built out of, and
the "openstack_dashboard" component be an implementation of that.

For the purposes of succintness, "framework" in the below will refer to
the folder horizon/horizon and "dashboard" will refer to
"horizon/openstack_dashboard". Perhaps one day those could be renamed
also...

Some reorganisation work has been done in bug
https://bugs.launchpad.net/horizon/+bug/1454880 but it has focused on
cleaning up the angularjs usage in our codebase.

During that work, several points were identified as blurring the line
between framework and dashboard in the codebase, and this bug captures
those. NOTE that this bug refers to the codebase *once that refactoring
has been done* and leaf patch https://review.openstack.org/#/c/184597/
has been merged. Patches relating to this bug will all depend on that
patch until it is merged.

Changes needing to be made:

1) the framework should not define the top-level angular app, and thus horizon/static/dashboard-app should go away, with parts moving to the dashboard and framework as appropriate.
2) the framework should also not define the top-level HTML (base.html) - this should be in the dashboard.

Actual steps to perform:

1) horizon/static/dashboard-app/utils should be moved to a new location in the framework. There's a large amount of tech debt in this folder which should be addressed in subsequent bugs and these files removed.
2) horizon/static/dashboard-app/login is a generic login/auth helper component should be moved to the framework.
3) horizon/static/dashboard-app/controllers has several controllers only used in the dashboard so should be moved there. The single controller "dummy.js" should remain in the framework.
4) horizon/static/dashboard-app/dashboard-app.module.js is the top-level angular app and should move to the dashboard.
5) horizon/templates/base.html should move to dashboard and its dependencies horizon/templates/horizon/_conf.html and horizon/templates/horizon/_scripts.html should move with it. There remains a need for a horizon/templates/horizon/_scripts.html in the framework for testing purposes, so a new file for that purpose will be placed in the testing area of the framework.

On the utils tech debt: the contents of that folder are only used in one
place; the functions defined there should be moved to the modules
they're used in. Those target modules are legacy code which will be
replaced over time by angularjs implementations, so I believe it is
reasonable to do this.

** Affects: horizon
     Importance: Undecided
     Assignee: Richard Jones (r1chardj0n3s)
         Status: In Progress

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

Title:
  Horizon/Dashboard source reorganisation

Status in OpenStack Dashboard (Horizon):
  In Progress

Bug description:
  The intent with Horizon has always been that the "horizon" component
  be a library/framework of components for dashboards to be built out
  of, and the "openstack_dashboard" component be an implementation of
  that.

  For the purposes of succintness, "framework" in the below will refer
  to the folder horizon/horizon and "dashboard" will refer to
  "horizon/openstack_dashboard". Perhaps one day those could be renamed
  also...

  Some reorganisation work has been done in bug
  https://bugs.launchpad.net/horizon/+bug/1454880 but it has focused on
  cleaning up the angularjs usage in our codebase.

  During that work, several points were identified as blurring the line
  between framework and dashboard in the codebase, and this bug captures
  those. NOTE that this bug refers to the codebase *once that
  refactoring has been done* and leaf patch
  https://review.openstack.org/#/c/184597/ has been merged. Patches
  relating to this bug will all depend on that patch until it is merged.

  Changes needing to be made:

  1) the framework should not define the top-level angular app, and thus horizon/static/dashboard-app should go away, with parts moving to the dashboard and framework as appropriate.
  2) the framework should also not define the top-level HTML (base.html) - this should be in the dashboard.

  Actual steps to perform:

  1) horizon/static/dashboard-app/utils should be moved to a new location in the framework. There's a large amount of tech debt in this folder which should be addressed in subsequent bugs and these files removed.
  2) horizon/static/dashboard-app/login is a generic login/auth helper component should be moved to the framework.
  3) horizon/static/dashboard-app/controllers has several controllers only used in the dashboard so should be moved there. The single controller "dummy.js" should remain in the framework.
  4) horizon/static/dashboard-app/dashboard-app.module.js is the top-level angular app and should move to the dashboard.
  5) horizon/templates/base.html should move to dashboard and its dependencies horizon/templates/horizon/_conf.html and horizon/templates/horizon/_scripts.html should move with it. There remains a need for a horizon/templates/horizon/_scripts.html in the framework for testing purposes, so a new file for that purpose will be placed in the testing area of the framework.

  On the utils tech debt: the contents of that folder are only used in
  one place; the functions defined there should be moved to the modules
  they're used in. Those target modules are legacy code which will be
  replaced over time by angularjs implementations, so I believe it is
  reasonable to do this.

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


Follow ups

References