Jump to: navigation, search

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

(Readiness)
(Readiness)
Line 4: Line 4:
 
== Readiness ==
 
== Readiness ==
 
==== What limits exist within your CDN? ====
 
==== What limits exist within your CDN? ====
** Max number of services per account?
+
* 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 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.
+
** Poppy basically encourages a Reseller Model.  Poppy currently does not have support for a Master/Sub Account model.
** Purge restrictions/limits
+
* Purge restrictions/limits
*** Poppy does not limit how many purges a customer can perform.   
+
** Poppy does not limit how many purges a customer can perform.   
** CNAME restrictions
+
* CNAME restrictions
*** A poppy operator may choose to CNAME from operatorcdn.com -> providercdn.net, and have their customers CNAME to operatorcdn.com.
+
** A poppy operator may choose to CNAME from operatorcdn.com -> providercdn.net, and have their customers CNAME to operatorcdn.com.
** SSL conditions
+
* SSL conditions
*** Are there certain authorities that an SSL cert must be issued from for your CDN to accept it?
+
** Are there certain authorities that an SSL cert must be issued from for your CDN to accept it?
  
 
==== Logging ====
 
==== Logging ====
** Where are detailed logs sent to (e.g. S3 Buckets, Swift Container, etc)
+
* Where are detailed logs sent to (e.g. S3 Buckets, Swift Container, etc)
  
 
== Building Your Provider Driver ==
 
== Building Your Provider Driver ==

Revision as of 20:42, 17 October 2014

Contributing

Readiness

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

  • Where are detailed logs sent to (e.g. S3 Buckets, Swift Container, etc)

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