Supports extra properties in project and user

Registered by Kenji Ishii on 2016-02-16

Summary
=======
Supports extra properties in project and user panel.

Motivation
========
Keystone has already extended its data and APIs to treat some extra properties
in project and user.
(These properties are stored as "Extra" column in a JSON format in Keystone database.)
And this feature has already been implemented in python-keystoneclient(only v3).[1]

Unfortunately, current Horizon only support fixed set of properties
like name, email, enabled and description in project and user panel.

But when administrators manage users or projects in OpenStack,
they often want to include more information than Horizon supports,
for example, a telephone number, a location, a department name(especially in enterprise).
Note that the information which is needed to manage users and projects is not fixed,
because it depends on organization's policy where OpenStack is used.

So, this challenge provides the function which can manage extra and variable
properties in Horizon.

Description
=========
Thanks to previous work, project table and user table are already customizable[2].

We propose new feature to show Extra data in project and user panel as columns.
If there is no Extra data in a record, empty mark, which is '-', is displayed
as for the record.

In order to make operations easier, we will implement some feature to
create/update/delete Extra data in Horizon.
It may be a simple dialog and for users who have operator right.
Without this feature, we have to use CLI to input/edit Extra data;
that is to go back to CUI era and not so happy.

Extra properties are treated as a String value.
It would be better to support various format for each Extra data type,
but we keep this as a future challenge and try later :)

UX
===
This blueprint affects Project table in Project panel and User table in User panel.
Except for above, operability will not be changed.

Testing
======
If no customization was made, the behavior of Horizon would not change at all.
When column key in project or user table are changed by following [1],
displayed columns in project or user table will be changed according to these settings.
If a specified key matches with the key which is included in "Extra" data,
the value corresponded with the key is displayed.
If there are no value corresponding to the key in "Extra" data, empty mark, which is '-',
is displayed.

Outside Dependencies
==================

N/A

Requirements Update Required
========================
N/A

Doc Impact
=========

N/A

[1]https://blueprints.launchpad.net/python-keystoneclient/+spec/extensible-crud-manager-operations
[2]http://docs.openstack.org/developer/horizon/topics/customizing.html

Blueprint information

Status:
Complete
Approver:
Rob Cresswell
Priority:
Low
Drafter:
Kenji Ishii
Direction:
Approved
Assignee:
Kenji Ishii
Definition:
Approved
Series goal:
Accepted for 10.0.0-newton
Implementation:
Implemented
Milestone target:
milestone icon newton-3
Started by
Rob Cresswell on 2016-06-08
Completed by
Rob Cresswell on 2016-08-22

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/support-extra-prop-for-project-and-user,n,z

Addressed by: https://review.openstack.org/286989
    [WIP]Supports extra properties in project and user

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.