Unified Resource DB

Registered by Nate Potter

Create one DB table for all pod manager managed resources, and in that table contain basic info like they resource type as well as a pointer for where to find them in their respective pod managers.

This has a couple of advantages that I can see.

1. It keeps the database in Valence simple and manageable – everything is a resource and each resource will tell you what type it is and where it can be found in the pod managers that Valence knows about.
2. It keeps us from having to continually update and refresh the information in our database – like if we were saving the state of a resource in our DB and it went from being healthy to broken in the pod manager, Valence wouldn’t know about it until it polls for that resource again and found out. In other words, our database would have incorrect info and we’d need to make a call out to redfish to correct it anyways, why not just make it a pointer and make the call to begin with to avoid this situation.

The structure I see for such a table would be like this (I’m open to deciding on a more descriptive name than ‘Resource’ if we want):

Class Resource(ModelBaseWithTimeStamp):

               Path = “/resource”

               Fields = {
                              uuid: <A uuid generated by valence to keep track of each individual resource managed across all pod managers>,
                              type: <The type of resource – remote storage, system, PCI device, etc.>
                              link: <Where the resource can be found. E.g. maybe /redfish/v1/Systems/1>
                              pod_manager: <the uuid of the pod manager the managed this resource – if you use this pod manager and go to the link provided you’ll get akll the info you need about this resource>
               }

Maybe we could also add some additional metadata about what can be done to this resource, or maybe that can be handled just by what type it is (e.g. if it’s a composed node, you can do things on it like decompose it or assemble it, that kind of thing).

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Nate Potter
Direction:
Needs approval
Assignee:
Nate Potter
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:475595,n,z

Addressed by: https://review.openstack.org/475595
    Implement unified resource database

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.