Use keystone uuid with cloud id
ref: https://storyboard.openstack.org/#!/story/135 Use Endpoint ID as a unique identifier for clouds in refstack test uploads. Change-Id: I363531ccfbffc5ba76a7d95de6648ff2dd75a95d
This commit is contained in:
parent
d2d47f80a4
commit
206e6a0e10
145
specs/proposed/refstack-org-api-cloud-uuid.rst
Normal file
145
specs/proposed/refstack-org-api-cloud-uuid.rst
Normal file
@ -0,0 +1,145 @@
|
||||
==========================================
|
||||
Test Submission API should use Target Identity Endpoint UUID
|
||||
==========================================
|
||||
|
||||
story: "Use keystone uuid with cloud id"
|
||||
ref: https://storyboard.openstack.org/#!/story/135
|
||||
|
||||
|
||||
In order to ensure that multiple test runs are attributed to the same cloud,
|
||||
test runner needs to use a consistent, discoverable and unique identifier
|
||||
for each cloud test. This allows multiple users to correlate results from
|
||||
the same cloud.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Refstack is designed to have minimal user security and configuration overhead;
|
||||
consequently, there are no mechanisms in the short term to ensure that a user's
|
||||
test results are authorized (see note). To create valid results, refstack needs a way to
|
||||
know when multiple runs are against the same targets so that comparisons are valid.
|
||||
|
||||
> Note: In the future, Refstack will include user authentication. At that point
|
||||
it will be possible to associate uploaded data to users and vendors in an
|
||||
authoritative way.
|
||||
|
||||
To solve this problem, refstack needs a unique handle for each cloud tested
|
||||
that is unique and also discoverable to the test runner.
|
||||
|
||||
Some requirements:
|
||||
|
||||
* No round trips to refstack before a test is submitted (do not pre-create cloud)
|
||||
* Minimal trust of users (do not require user credentials for uploads)
|
||||
* Users should not be expected to remember cloud IDs
|
||||
* Multiple users of same cloud should be tracked together
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
When test runner submits results, it should submit with the Identity Endpoint
|
||||
UUID (aka Keystone end point under serviceCatalog/service["identity"]/endpoint[?id]).
|
||||
|
||||
The refstack API should accept EITHER the user's created refstack cloud ID or the
|
||||
discovered Endpoint UUID. If the refstack cloud ID is passed and no cloud
|
||||
exists then refstack should create a new refstack cloud.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Refstack could use a different endpoint for the ID
|
||||
|
||||
Refstack could stop using its own cloud ID and only use endpoint IDs
|
||||
|
||||
Possible addition: we may want to also track the cloud endpoint URL. This
|
||||
could be a possible added field for the JSON upload. While this will
|
||||
help identify clouds, it could also reveal more information than the
|
||||
user wants disclosed. We should only implement this with user permission.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
We have to add the endpoint ID as a field into the Cloud model.
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
The Test Upload API needs to be modified to accept either the Test ID or the
|
||||
endpoint UUID. If the endpoint UUID is not in the URL then it should be included
|
||||
in the JSON payload.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
Improvement: this helps reduce the need of passing refstack authentication to ensure
|
||||
that cloud results are linked to individual clouds or users.
|
||||
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None.
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
Users will not have to pre-create clouds before using
|
||||
refstack.
|
||||
|
||||
Users will have to be able to assign clouds to endpoint UUIDs.
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
Should improve performance because round trips on result
|
||||
uploads are avoided.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
Should simplify developer work.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
TBD
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* determine forumula for endpoint UUID (if any needed)
|
||||
* get and add cloud epid to results upload
|
||||
* add cloud epid to model
|
||||
* update api to response correctly for epid lookup
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
API v1 spec.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
We need to validate the endpoint IDs correctly resolve to clouds.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
We should explain how clouds are identified in the documentation so that
|
||||
users will understand the impact of re-installing and how to keep results
|
||||
together even if the cloud changes.
|
||||
|
||||
We will also have to explain how to associate results to a user managed
|
||||
cloud.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
https://storyboard.openstack.org/#!/story/135
|
Loading…
Reference in New Issue
Block a user