Angularize Instances Table

Registered by Aaron Sahlin on 2015-05-08

Summary:
Angularize Instances Table

Motivation:
Continue movement of shifting rendering logic that currently resides on the server to client side using AngularJS.

Description:

While following existing angularjs patterns in implementation (images and identity panels) this panel will also largely re-use the code written for the Searchlight UI. Since that UI is a plugin for Horizon we will move the code from that project into Horizon. An example of code moved over is the os-nova-servers module http://git.openstack.org/cgit/openstack/searchlight-ui/tree/searchlight_ui/static/resources/os-nova-servers

A large number of actions on instances are not implemented in the searchlight ui code, but there is a fallback path through to the legacy interface. Those missing actions will be implemented as part of this BP to remove the need for the legacy path. A brief look at the existing legacy actions that don't appear to have counterparts in the searchlight ui actions list results in this list of missing actions:

ToggleShelve
EditInstance
ConsoleLink
LogLink
ResizeLink
ConfirmResize
RevertResize
RebuildInstance
DecryptInstancePassword
AssociateIP
SimpleAssociateIP
SimpleDisassociateIP
UpdateMetadata
LockInstance
UnlockInstance
AttachVolume
DetachInterface
InstancesFilterAction

A number of steps will be taken to implement the basics of this BP:

1. copy the os-nova-servers module from searchlight ui
2. remove same from searchlight ui, dependent on the patch from #1
3. add an angularjs panel to Horizon for instances using that resource type
4. complete the missing actions as listed above

UX:
The UX will look and work similarly.

Outside Dependencies:
None.

Requirements Update Required:
None.

Doc Impact:
The table look and function will be the same, so I expect no document impacts.

Blueprint information

Status:
Started
Approver:
Rob Cresswell
Priority:
Low
Drafter:
Aaron Sahlin
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
Accepted for future
Implementation:
Good progress
Milestone target:
milestone icon next
Started by
David Lyle on 2015-09-01

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/angularize-instances-table,n,z

Addressed by: https://review.openstack.org/197343 -- abandoned
    Add Angular Project Dashboard

Addressed by: https://review.openstack.org/197344 -- abandoned
    Adding Angular Project Instances Panel

Addressed by: https://review.openstack.org/196271 -- merged
    Dashboard ReOrg - Create 'project' module

Addressed by: https://review.openstack.org/198073 -- merged
    Extending Karma config

Addressed by: https://review.openstack.org/200385 -- merged
    Adding Angular Project Images Table

Addressed by: https://review.openstack.org/201661 -- merged
    Add Angular Basic Page Header Directive

Addressed by: https://review.openstack.org/256083 -- merged
    Add getServers function to nova rest API

Addressed by: https://review.openstack.org/261376 -- abandoned
    WIP: Add angular instances panel

Addressed by: https://review.openstack.org/344949 -- merged
    Add more Nova API features for NG Instances

Addressed by: https://review.openstack.org/316244 -- abandoned -- but we should re-use as much of this code as we can (outside of the resource type duplicate code)
    WIP: Adding actions and views to Instance

[tqtran 2017-02-21] Related BP: https://blueprints.launchpad.net/horizon/+spec/searchlight-instances-integration

Addressed by: https://review.openstack.org/444095
    Copy os-nova-servers from searchlight ui

Addressed by: https://review.openstack.org/453987
    Copy os-nova-servers from searchlight ui: details pages

Addressed by: https://review.openstack.org/453988
    Copy os-nova-servers from searchlight ui: actions

[amotoki - Jan 23, 2018] Angularizing existing panel is no longer high priority work. Let's lower the priority.

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.