Provide another abstract layer for Senlin driver for differentiation hiding

Registered by Yanyan Hu

Add another abstract layer which hides interface differentiation between multiple drivers of the same type and provides unified interface for profile, e.g. alarm interfaces for scaling policy which can be mapped to both Ceilometer or Monasca driver; loadblancer interfaces for lb policy which can be mapped to both Neutron LBaaS or AWS LBaaS driver.

The basic idea is to map a request of common driver interface to a series of operations of a specific driver backend.

e.g. lb_create using `neutron_v2` driver type will be mapped to the following operations:
    1) creating loadbalancer:
       - neutron_v2.NeutronClient.loadbalancer_create()
    2) creating listener:
       - neutron_v2.NeutronClient.listener_create()
    3) creating pool:
       - neutron_v2.NeutronClient.pool_create()
    4) creating healthmonitor(optional):
       - neutron_v2.NeutronClient.healthmonitor_create()

We need to figure out a model to describe the mapping logic, including the list of functions need to invoke, the parameters list, and the sequence of function call.

OR we can just use Heat to implement this function?
 - Provide a mapping between device type and Heat resource_type;
 - Provide a operation mapping;

Not sure whether we should do this job in this way.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Yanyan Hu
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Yanyan Hu

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.