Poppy/Provider - Getting Started
- Read the Developer's Guide on how to contribute
What limits exist within your CDN?
- Max number of services per account?
- Poppy will provision all services under one operator account. Depending on the operator, this could result in hundreds of thousands of services provisioned for a single account.
- Poppy basically encourages a Reseller Model. Poppy currently does not have support for a Master/Sub Account model.
- Purge restrictions/limits
- Poppy does not limit how many purges a customer can perform.
- CNAME restrictions
- A poppy operator may choose to CNAME from operatorcdn.com -> providercdn.net, and have their customers CNAME to operatorcdn.com.
- SSL conditions
- Are there certain authorities that an SSL cert must be issued from for your CDN to accept it?
Logging and Billing
- Where are detailed logs sent to (e.g. S3 Buckets, Swift Container, etc)
- Do you have a method to identify services provisioned via Poppy as an OpenStack account for operator billing purposes?
- This could be as simple as one operator account and all services under that account are provisioned via Poppy.
Getting Started with your Provider Driver
- Understand how the Poppy API is architected
- Understand the Mock CDN Provider for an basic example of what a provider implementation looks like.
- 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.
- Investigate some of the other provider implementations to get an idea of how to implement yours.
- 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.
- Get familiar with the 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.
- Add unit tests and functional tests for your driver.
- For each provider function, map the appropriate calls to your API. For a matrix of terms, please read here.
Building a Provider Driver
- Poppy Features you need to implement
- Step by Step Instructions on Building a Provider (with Examples)
- Configuring your Provider Driver to be available for use
- Building a Mimic Driver to mock your Provider API
- Running Conformance Tests against your new provider
- Running API Tests using your new provider
- Running End to End Tests with your new provider
- The provider driver must be compatible with OpenStack. That means it must support py27,py34,pypy,pep8.
- Any third party library used must be available via the Pypi server.
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