poppy.provider extensions

poppy.provider.base base classes

class poppy.provider.base.driver.ProviderDriverBase(conf)

Bases: object

Interface definition for storage drivers.

Data plane storage drivers are responsible for implementing the core functionality of the system.

Connection information and driver-specific options are loaded from the config file.

Parameters:conf (oslo_config.ConfigOpts) – Configuration containing options for this driver.
is_alive()

Check whether the storage is ready.

:raises NotImplementedError

provider_name

provider name.

:raises NotImplementedError

service_controller

Returns the driver’s hostname controller.

:raises NotImplementedError

class poppy.provider.base.controller.ProviderControllerBase(driver)

Bases: object

Top-level class for controllers.

Parameters:driver – Instance of the driver instantiating this controller.
class poppy.provider.base.responder.Responder(provider_type)

Bases: object

Responder Class.

created(provider_service_id, links, **extras)

created.

:param provider_service_id :param links :param **extras :returns provider msg{id, links}

deleted(provider_service_id)

deleted.

:param provider_service_id :returns provider msg{provider service id}

failed(msg)

failed.

:param msg :returns provider msg{msg, error details}

get(domain_list, origin_list, cache_list)

get.

:param domain_list :param origin_list :param cache_list :returns provider msg{domain, origins, caching}

purged(provider_service_id, purge_url)

purged.

:param provider_service_id :param purge_url :param hard :returns provider msg{provider service id, purge urls}

ssl_certificate_provisioned(cert_domain, extra_info=None)

ssl_certificate_provisioned.

:param cert_domain :param extra_info :returns provider msg{cert_domain, extra_info}

updated(provider_service_id, links, **extras)

updated.

:param provider_service_id :param links :param **extras :returns provider msg{provider service id}

class poppy.provider.base.services.ServicesControllerBase(driver)

Bases: poppy.provider.base.controller.ProviderControllerBase

Services Controller Base.

create(service_name, service_obj)

create.

:param service_name :param service_obj :raises NotImplementedError

current_customer()

Return the current customer for a provider.

This will needed call each provider’s customer API, useful for certain providers ( e.g fastly) and manage master-sub account.

:param service_name :raises NotImplementedError

delete(project_id, provider_service_id)

delete.

:param project_id :param provider_service_id :raises NotImplementedError

get(service_name)

Get details of the service, as stored by the provider.

:param service_name :raises NotImplementedError

get_metrics_by_domain(project_id, domain_name, region, **extras)

get analytics metrics by domain from provider

:param project_id :param domain_name :param regions :raises NotImplementedError

get_provider_service_id(service_obj)

Get the provider side service id for the service object.

:param service_obj :raises NotImplementedError

purge(provider_service_id, hard=True, purge_url='/*')

purge.

:param provider_service_id :param purge_url :raises NotImplementedError

update(provider_service_id, service_obj)

update.

:raises NotImplementedError

poppy.provider.fastly extension

Fastly CDN Extension for CDN

Exports Fastly CDN controllers.

Field Mappings:
In order to reduce the disk / memory space used, fields name will be, most of the time, the first letter of their long name. Fields mapping will be updated and documented in each controller class.

Fastly CDN Provider implementation.

class poppy.provider.fastly.driver.CDNProvider(conf)

Bases: poppy.provider.base.driver.ProviderDriverBase

Fastly CNDProvider.

client

client to this provider.

:return client

is_alive()

is_alive.

:return boolean

provider_name

provider name.

:return ‘Fastly’

service_controller

Hook for service controller.

:return service controller

class poppy.provider.fastly.services.ServiceController(driver)

Bases: poppy.provider.base.services.ServicesControllerBase

Fastly Service Controller Class.

client
create(service_obj)
current_customer
delete(project_id, provider_service_id)
get(service_name)
get_metrics_by_domain(project_id, domain_name, regions, **extras)

Use Fastly’s API to get the metrics by domain.

get_provider_service_id(service_obj)
purge(service_id, hard=True, purge_url='/*')
update(provider_service_id, service_obj)

poppy.provider.mock extension

CDN Extension for CDN

Exports Sample CDN controllers.

Field Mappings:
In order to reduce the disk / memory space used, fields name will be, most of the time, the first letter of their long name. Fields mapping will be updated and documented in each controller class.

CDN Provider implementation.

class poppy.provider.mock.driver.CDNProvider(conf)

Bases: poppy.provider.base.driver.ProviderDriverBase

Mock CDNProvider.

is_alive()

is_alive.

:return True

provider_name

provider name.

:return ‘Mock’

service_controller

Hook for service controller.

:return service controller

class poppy.provider.mock.services.ServiceController(driver)

Bases: poppy.provider.base.services.ServicesControllerBase

Mock Service Controller.

create(service_obj)
current_customer

return current_customer for Mock. We can return a None.

delete(project_id, provider_service_id)
get(service_name)
get_metrics_by_domain(project_id, domain_name, regions, **extras)
get_provider_service_id(service_obj)
purge(provider_service_id, hard=True, purge_url='/*')
update(service_name, service_obj)