[dashboard] Separate storage of dynamic UI form classes from form data

Registered by Timur Sufiev

With the new AppCatalog API come 2 important changes regarding Application packages:

* they have unique id across all tenants with the same AppCatalog
* AppCatalog returns each package description along with its create/update timestamps

Given that, we can afford to get rid of dynamic UI form classes in-session storage (which forces us to use heavy backends as DB or MemCached instead of default SignedCookies storage for sessions) - and keep them only in file-system cache and in memory of web-server processes.

When an Application is being added to an Environment, we update file-system cache (taking package update-time into account), parse definitions from cache and create form classes in memory along with package id. All the requests during configuration of that application instance will use the same file-system cache entry (and recreate form classes from it), while form data will be kept as usual in the request.session. The right data for the form/service regenerated on each request will be taken by the app_id key.

Blueprint information

Status:
Complete
Approver:
ruhe
Priority:
Undefined
Drafter:
Timur Sufiev
Direction:
Needs approval
Assignee:
Timur Sufiev
Definition:
New
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
ruhe
Completed by
ruhe

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/separate-form-class-storage-and-form-data,n,z

Addressed by: https://review.openstack.org/94198
    Separate form classes storage from cleaned data storage

Addressed by: https://review.openstack.org/94199
    Handle dynamic forms in a cleaner and a more performance way

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.