endpoint_url is missing as optional parameter in the rest client __init__
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tempest |
Fix Released
|
Wishlist
|
Andrea Frittoli |
Bug Description
Rest client and all tempest client classes inheriting from it define an endpoint_url variable which is specific to the client type.
There is an assumption behind this that a certain API shall always be accessed from that specific endpoint, or else that all extensions are available at all endpoints. Both assumptions are not correct.
Which endpoint to be used instead may depend on the kind of user being used by the test (e.g. regular, compute admin or admin), therefore Manager classes should be able to control which endpoint type to use.
This can be achieved by setting the endpoint_url as optional parameter in the rest_client and inheriting classes.
A practical example:
- show server with plain credential will use the public endpoint, and only present basic fields
- show server with admin credentials may use the admin endpoint, and take advantage of admin only extensions available on the admin endpoint to see the compute node on which the VM is hosted
Changed in tempest: | |
importance: | Undecided → Medium |
Changed in tempest: | |
importance: | Medium → Wishlist |
I even wouldn't mind if the rest_clients just got endpoint_url and token in the future.