Jump to: navigation, search

Difference between revisions of "Poppy/Provider - Getting Started"

(Building Your Provider Driver)
(Building Your Provider Driver)
Line 10: Line 10:
 
# Get familiar with the [https://github.com/stackforge/poppy/blob/master/poppy/model/service.py Service Object].  This object is what is passed to the provider driver when creating/updating a configuration.  The provider driver will need to parse through these properties and make the appropriate API calls to your API to create the configuration on your end.
 
# Get familiar with the [https://github.com/stackforge/poppy/blob/master/poppy/model/service.py Service Object].  This object is what is passed to the provider driver when creating/updating a configuration.  The provider driver will need to parse through these properties and make the appropriate API calls to your API to create the configuration on your end.
 
# Get familiar with the [https://github.com/stackforge/poppy/blob/master/poppy/provider/base/responder.py Responder functions].  These functions are called to create the response back into the Poppy system from your provider extension.
 
# Get familiar with the [https://github.com/stackforge/poppy/blob/master/poppy/provider/base/responder.py Responder functions].  These functions are called to create the response back into the Poppy system from your provider extension.
# Start building your provider driver. Make frequent and small commits and patches.  Don't forget to add unit tests and functional tests for your driver.
+
# Start building your provider driver.  
 +
## Make frequent and small commits and patches.   
 +
## Add unit tests and functional tests for your driver.
 +
## For each [https://github.com/stackforge/poppy/tree/master/poppy/provider/base provider function], map the appropriate calls to your API.  For a matrix of terms, please [http://poppy.readthedocs.org/en/latest/provider_details.html read here].
 +
### creating a new service (domains, origins, ttl's, restrictions)
 +
### updating a service (domains, origins, ttl's, restrictions)
 +
### deleting a service
 +
### purging content for the whole site or a specific path
 
# Add an entry point in [https://github.com/stackforge/poppy/blob/master/setup.cfg setup.cfg] so that Poppy recognizes your wonderful new driver and operators can start to use it.
 
# Add an entry point in [https://github.com/stackforge/poppy/blob/master/setup.cfg setup.cfg] so that Poppy recognizes your wonderful new driver and operators can start to use it.
  

Revision as of 20:33, 17 October 2014

Contributing

Building Your Provider Driver

  1. Understand how the Poppy API is architected
  2. Understand the Mock CDN Provider for an basic example of what a provider implementation looks like.
  3. Understand the Provider Driver interface (abstract base classes) that must be conformed to, so that you know what features need to be implemented to interact with your own API's.
  4. Investigate some of the other provider implementations to get an idea of how to implement yours.
  5. Get familiar with the Service Object. This object is what is passed to the provider driver when creating/updating a configuration. The provider driver will need to parse through these properties and make the appropriate API calls to your API to create the configuration on your end.
  6. Get familiar with the Responder functions. These functions are called to create the response back into the Poppy system from your provider extension.
  7. Start building your provider driver.
    1. Make frequent and small commits and patches.
    2. Add unit tests and functional tests for your driver.
    3. For each provider function, map the appropriate calls to your API. For a matrix of terms, please read here.
      1. creating a new service (domains, origins, ttl's, restrictions)
      2. updating a service (domains, origins, ttl's, restrictions)
      3. deleting a service
      4. purging content for the whole site or a specific path
  8. Add an entry point in setup.cfg so that Poppy recognizes your wonderful new driver and operators can start to use it.

Participating in the API Design Process

  • Join the #openstack-poppy channel where the team hangs out and participate in design discussions
  • Join and participate in the weekly Poppy meeting every Thursday : Meetings/Poppy
  • Contribute Blueprints for potential features that you think need to be incorporated into the Poppy API