Skip to main content

Marriott CDN Team Fastpurge POC script

Project description

Akamai-Purge-Cache : Interactive Script

Current Python Script

"""Module to invoke Akamai Fastpurge via simple CLI utility."""
import os
import click
from fastpurge import FastPurgeClient


@click.command()
@click.option(
    "paths",
    "--path",
    "-p",
    multiple=True,
    help="A single URL to Purge (This option is repeatable for additional URLs)",
)
@click.option(
    "--dryrun",
    "-d",
    is_flag=True,
    help="Just print the command and args that will be run and exit",
)
def mgpurge(paths: list[str], dryrun: bool) -> None:
    """
    Module to invoke Akamai Fastpurge via simple CLI utility.
    :param list[str] paths: List of paths to purge from Akamai cache.
    :param bool dryrun: Just print the command and args that will be run and exit
    """
    # Default: Credentials are read from ~/.edgerc
    # client = FastPurgeClient()

    # Environment: Credentials are read from environment variables
    client = FastPurgeClient(
        auth={
            "client_secret": os.environ["AKAMAI_DEFAULT_CLIENT_SECRET"],
            "host": os.environ["AKAMAI_DEFAULT_HOST"],
            "access_token": os.environ["AKAMAI_DEFAULT_ACCESS_TOKEN"],
            "client_token": os.environ["AKAMAI_DEFAULT_CLIENT_TOKEN"],
        }
    )
    if dryrun:
        print("These paths will be purged:")
        for path in paths:
            click.echo(message=path)
        return
        # Start purge of some URLs
    # purge is a Future, if we want to ensure purge completed
    # we can block on the result:
    purge_cmd = client.purge_by_url(urls=paths)
    # purge is a Future, if we want to ensure purge completed
    # we can block on the result:
    result = purge_cmd.result()
    print("Purge completed:", result)


if __name__ == "__main__":
    # pylint: disable=no-value-for-parameter
    mgpurge()

TO-DO

  • Document local installation
  • Document local run
  • Document building
  • Document publishing to PY-Pi
  • Document remote installation and usage

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

akamai_purge_cache-1.3.0.tar.gz (2.4 kB view hashes)

Uploaded Source

Built Distribution

akamai_purge_cache-1.3.0-py3-none-any.whl (4.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page