0998bfb071
Change-Id: Ibf7f0974a7edb5452fb846391fd47bbcccc93667
2.6 KiB
2.6 KiB
Vitrage Multi Tenancy Support
When a tenant uses Vitrage APIs we would like to show him only the data that is relevant to him.
Problem description
Vitrage needs to show in its API an CLI only the data relevant to that tenant (it can't show all the data due to irrelevancy and privacy of each tenant). Thus for each datasource and entity we need to know what relevant data to show for that tenant. We would also like to show all of the data if someone adds the all_tenants property.
Proposed change
Here is a description, for each of the Vitrage APIs, how it should behave for each tenant:
- Get alarms:
-
- Find all the alarms with the requested project_id (if the project is admin then show also alarms that has no project_id property)
- Find all the resources with the requested project_id and return all the alarms that are attached to them.
- Merge the results from the previous steps and return it.
- Get RCA:
-
- Find all the alarms that this alarm has caused, recursively. When reaching an alarm that is not of same project_id (or on resource of same project_id), stop the recursion, including this last alarm in the response.
- Find all the alarms that caused this alarm, recursively. When reaching an alarm that is not of same project_id (or on resource of same project_id), stop the recursion, including this last alarm in the response.
- Merge the results from the previous steps and return it.
- Get Topology:
-
- Find all the connected components for project_id.
- For each component, select 1 entity and find all paths (without cycles) to "openstack.cluster" entity. Add all of the vertices in the path to the component.
- Merge all the components and return it.
Remark: API and CLI needs to behave the same.
Alternatives
None
Data model impact
None
REST API impact
None
Security impact
None
Pipeline impact
None
Other end user impact
None
Performance/Scalability Impacts
None
Other deployer impact
None
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
alexey_weyl <alexey.weyl@alcatel-lucent.com>
Work Items
None
Future lifecycle
None
Dependencies
None
Testing
None
Documentation Impact
None
References
None