Abstract Backend APIs into usable objects.

Registered by Jamie Lennox

The pluggable api model is working well but returns full dictionaries of parameters that then require various manipulations and keyword accessing by everything that wants to use it. This requires a fairly indepth knowledge of the structure that is being returned from the API. This information should be abstracted into an object that can be manipulated regardless of how the dictionary or api version is formed.

For example the Token API returns a hash with information at least close to the V3 api. Firstly this will then have to change if we go to a v4 api and it means that everything working with a token has to know the layout of the token dictionary. Abstracting this into an object would mean:
- breaking the tie between backend API and rest API, conversion functions if necessary would live on the object.
- simpler interfaces, particularly for contrib or things that just need to read information from the token.
- a simpler way of providing common methods than putting them into the api.
- an object orientated approach.
- So far we have the C in MVC, this is providing the M and whilst useful now it will also make it easier to interface with pecan or whatever comes if necessary.

Every problem can be solved with another layer of abstraction.

This is not a transition that should need to happen in a big hit, we can do all this incrementally as we will keep the current api interfaces.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Jamie Lennox
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Dolph Mathews

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/object-models,n,z

Addressed by: https://review.openstack.org/35461
    Rework dependency injection.

Addressed by: https://review.openstack.org/35462
    Create a Credential Model.

Marking as obsolete since the above reviews appear to be intentionally abandoned.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.