Python wrapper around Akamai ccuapi
Hat tip to https://github.com/beathan/django-akamai for inspiring the code.
Credentials can be provided in 1 of 3 ways:
- AKAMAI_USERNAME and AKAMAI_PASSWORD environment variables.
- A
.akamaiconfig file in the user's home directory. (Sample config included as .akamai.sample) - Passing
usernameandpasswordkwargs to ccuapi.purge.PurgeRequest on initialization.
One or more comma-separated email addresses may be set to receive notifications when a content purge is complete. These are provided in 1 of 3 ways:
- AKAMAI_NOTIFY_EMAIL environment variable.
- In the
.akamaiconfig file. - Passing
emailkwarg to ccuapi.purge.PurgeRequest on initialization.
from ccuapi.purge import PurgeRequest
purger = PurgeRequest()
purger.add('http://domain.com') # this can be a string, list of strings, Django QuerySet or Django object with the `get_absolute_url` method defined
results = purger.purge() # returns a list of responses from Akamai, 1 per 100 URLs sent
ccu_purge http://domain.com
Run ccu_purge -h for additional options.
If you're using this library on a server that uses an http/https proxy, you'll likely hit Connection Timeout issues
because suds ignores the environment proxy variables, as described here.
One simple solution:
#Hat tip: http://stackoverflow.com/questions/12414600/suds-ignoring-proxy-setting
from suds.transport.http import HttpTransport as SudsHttpTransport
class EnvProxyHonoringTransport(SudsHttpTransport):
def u2handlers(self):
return []
purger = PurgeRequest(...)
purger.client.set_options(transport = EnvProxyHonoringTransport())