3.4 KiB
Display more user information in stack lists
https://blueprints.launchpad.net/heat/+spec/stack-display-fields
Stacks are launched by users but scoped to tenants, so users in the same tenant currently have no way to know who stacks belong to. The same is especially true to unscoped stack lists. Since humans are much better with names than they are with numbers, it would be great if this list also contained other information to allow for better identification of stack owners.
Problem description
There is currently no way to know what user created a stack, since only the tenant ID is displayed with a stack and multiple users can be in the same tenant.
Also, when listing unscoped stacks (with the flag
global_tenant=True
), all stacks are returned, regardless of
the tenant who owns them. This list contains information about the
stacks, including some info about the stack owner (e.g. the Tenant ID is
included, but usernames are not).
This is helpful for cloud providers to be able to more easily support their customers. However, humans are better at dealing with names than with numbers, so returning just the Tenant ID is not ideal.
In order to make it possible for supporters to easily identify their clients, it would be great to also include the username of the stack owners in the stack information.
Proposed change
The proposed implementation would add the extra information when formatting a stack.
Currently, the username is already saved to the database but not
parsed back into the stack when loaded from the DB. This would parse it
back from the DB into the stack at all times, but only exposed to the
API response when formatting stacks to a global_tenant
call:
{
"stacks": [
{
"creation_time": "...",
"description": "...",
"id": "...",
"links": [...],
"project": "TENANT_ID",
"stack_owner": "USERNAME", // Additional info
"stack_owner_id": "USER_ID", // ----------------
"stack_name": "...",
"stack_status": "...",
"stack_status_reason": "...",
"updated_time": "..."
}
]
}
The necessary changes will primarily reside in:
- heat.api.openstack.v1.views.stacks_view.py
- heat.engine.api.py
- heat.engine.parser.py
- heat.engine.service.py
- heat.rpc.api.py
Alternatives
None, since this is just field additions.
Implementation
Assignee(s)
Primary assignees:
- rblee88
- andersonvom
Milestones
- Target Milestone for completion:
-
Juno-2
Work Items
- Read username into the Stack back from the DB
- Display username when displaying stacks
Dependencies
None