{ "info": { "author": "OpenStack", "author_email": "openstack-dev@lists.openstack.org", "bugtrack_url": null, "classifiers": [ "Environment :: OpenStack", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7" ], "description": "Poppy\n=======\n\nCDN as a Service\n\nWhat is Poppy\n============\n\nUsers have come to expect exceptional speed in their applications, websites, and video experiences. Because of this, using a CDN has become standard for companies, no matter their size.\n\nPoppy will take all the guess work out of the CDN market for our users. Poppy will give them a consistently speedy experience from integrated partners, with an easy to use RESTful API.\n\nVendor lock-in to a particular CDN provider is removed by abstracting away the plethora of vendor API's available. This means that a customer only has to integrate with one CDN API, and reap the benefits of using multiple providers.\n\nYour content can be distributed to multiple providers seamlessly instead of just one.\n\nRunning performance benchmarks against each configured CDN provider allows you to simply repoint your DNS at the new provider; and with that simple change you can ensure your application is running using the fastest provider at the time. It will also allow you to handle CDN failures and minimize disruption to your application from CDN outages.\n\n\nFeatures\n---------\n\n+ Wraps third party CDN provider API's\n - Akamai (Production Ready)\n - Fastly (In Development)\n - Amazon CloudFront (In Development)\n - MaxCDN (In Development)\n - Your CDN Here...\n+ Sends configurations to *n* configured CDN providers\n+ Supports multiple backends (CassandraDB recommended)\n - CassandraDB\n - Your DB provider here\n+ Supports multiple dns providers\n - Rackspace DNS\n - Openstack Designate (Coming Soon)\n+ Openstack Compatable\n - Uses Keystone for authentication\n - Uses Swift for log delivery\n+ Multiple Origins to pull from (Public Servers, Amazon S3 Buckets, ...)\n+ Supports Multiple Domains\n+ Custom Caching and TTL rules\n+ Set Restrictions on who can access cached content\n\n\nWhat Poppy is not\n----------------------\n\nPoppy does not run its own Edge Cache or POP servers. This is purely a management API to abstract away the myriad of CDN providers on the market.\n\n\n\nGetting Started\n-------------------------------------------\n\n**Note:** These instructions are for running a local instance of CDN and\nnot all of these steps are required. It is assumed you have `CassandraDB` and `Zookeeper`\ninstalled and running in a Docker Container.\n\n1. From your home folder create the ``~/.poppy`` folder and clone the repo::\n\n $ cd\n $ mkdir .poppy\n $ git clone https://github.com/openstack/poppy.git\n\n2. Copy the Poppy config files to the directory ``~/.poppy``::\n\n $ cp poppy/etc/poppy.conf ~/.poppy/poppy.conf\n $ cp poppy/etc/logging.conf ~/.poppy/logging.conf\n\n3. Find the ``[drivers:storage:cassandradb]`` section in\n ``~/.poppy/poppy.conf`` and modify the URI to point\n to your local casssandra cluster::\n\n [drivers:storage:cassandra]\n cluster = \n keyspace = poppy\n migrations_path = /home/poppy/poppy/storage/cassandra/migrations\n automatic_schema_migration = True #True is recommended for local dev machine\n\n\n5. For logging, find the ``[DEFAULT]`` section in\n ``~/.poppy/poppy.conf`` and modify as desired::\n\n log_file = server.log\n\n6. Change directories back to your local copy of the repo::\n\n $ cd poppy\n\n\n7. Install general requirements::\n\n $ pip install -r requirements/requirements.txt\n\n Run the following so you can see the results of any changes you\n make to the code without having to reinstall the package each time::\n\n $ pip install -e .\n\n To install additional dependencies, see `Additional Dependencies`_.\n\n\n8. Install and start cassandra and zookeeper driver::\n\n $ pip install docker-compose\n $ docker-compose -f docker/compose/dependencies.yml up -d\n\n9. Start poppy task flow worker::\n\n $ poppy-worker\n\n10. Start the Poppy server::\n\n $ poppy-server\n\n11. Test out that Poppy is working by requesting the home doc (with a sample project ID)::\n\n $ curl -i -X GET -H \"X-Project-ID: 000\" -H \"X-Auth-Token: 000\" -H \"Content-Type: application/json\" http://127.0.0.1:8888/v1.0/\n\nYou should get an **HTTP 200** along with some headers that will look\nsimilar to this::\n\n HTTP/1.0 200 OK\n Date: Thu, 13 Feb 2014 14:34:21 GMT\n Server: WSGIServer/0.1 Python/2.7.3\n Content-Length: 464\n Content-Type: application/json-home\n Cache-Control: max-age=86400\n\n12. To run unit/functional test::\n\n $ tox\n\nTo run a full test suite with api test, you will need to put in correct\nCDN vendor configuration (in ``~/.poppy/poppy.conf``) first, e.g::\n\n [drivers:provider:fastly]\n apikey = \"\"\n\nThen start a poppy server::\n\n $ poppy-server -v\n\n And run test suite with api test::\n\n $ tox -- --exclude=none\n\n\nAdditional Dependencies\n-----------------------\n\nUbuntu 14.04\n------------\n\nFor Python 2.7::\n\n $ sudo apt-get install python-dev\n\nFor Python 3.4::\n\n $ sudo apt-get install python3.4-dev\n\nFor PyPy::\n\n $ sudo apt-get install pypy-dev\n\nInstall these two packages regardless of the Python version::\n\n $ sudo apt-get install libffi6 libffi-dev\n\n $ sudo apt-get install libssl-dev\n\n\nInstalling Cassandra and Zookeeper Locally\n------------------------------------------\n\nWe recommend running Cassandra and Zookeeper in a docker container when developing locally.\n\nFollow the instuctions in the /poppy/docker/compose/README.md file for running Poppy locally.\n\n\nRunning tests\n-----------------------------\n\nFirst install the additional requirements::\n\n $ pip install tox\n\nAnd then run tests::\n\n $ tox\n\n\n.. _`CassandraDB` : http://cassandra.apache.org\n.. _`pyenv` : https://github.com/yyuu/pyenv/\n.. _`virtualenv` : https://pypi.python.org/pypi/virtualenv/\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.openstack.org/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "poppycdn", "package_url": "https://pypi.org/project/poppycdn/", "platform": "", "project_url": "https://pypi.org/project/poppycdn/", "project_urls": { "Homepage": "http://www.openstack.org/" }, "release_url": "https://pypi.org/project/poppycdn/1.0.13/", "requires_dist": [ "oslo.utils (>=2.0.0)", "httplib2 (>=0.8)", "oslo.log (>=1.12.1)", "sphinxcontrib-httpdomain", "netifaces (>=0.10.4)", "WebOb (>=1.2.3,<1.3)", "sphinxcontrib-pecanwsme", "oslo.i18n (>=2.1.0)", "netaddr (>=0.7.6)", "pyrax", "python-keystoneclient (>=0.4.1)", "requests-futures", "boto (>=2.31.1)", "oslosphinx", "oslo.config (>=2.0.0)", "cassandra-driver (>=3.0.0)", "dnspython (>=1.14.0)", "sphinx", "python-whois (>=0.6.2)", "pecan (>=0.8.1)", "maxcdn", "pbr (==0.11.0)", "cdn-fastly (==1.0.4)", "taskflow", "jsonschema (>=1.3.0,!=1.4.0)", "stevedore (>=0.10)", "tld (>=0.7.6)", "kazoo", "zake", "msgpack-python", "jsonpatch", "oslo.serialization (>=1.7.0)", "ordereddict", "certifi (==2015.4.28)", "cdeploy", "six (>=1.4.1)", "pyOpenSSL", "edgegrid-python (==1.0.6)", "SecretStorage (==2.1.4)", "pymongo (>=2.4)", "iso8601 (>=0.1.8)", "Babel (>=1.3)" ], "requires_python": "", "summary": "A modular, vendor-neutral API, that wraps provisioning instructions for all CDN vendors that support it.", "version": "1.0.13" }, "last_serial": 2357786, "releases": { "1.0.11": [ { "comment_text": "", "digests": { "md5": "1774e401171db9a438f18879e8d04555", "sha256": "51fe6e9da4424ebd7a25e54f9b66d06ae17d9aea8982de153a2c54c301b686e5" }, "downloads": -1, "filename": "poppycdn-1.0.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1774e401171db9a438f18879e8d04555", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 308182, "upload_time": "2016-08-19T20:25:05", "url": "https://files.pythonhosted.org/packages/e1/ed/9758a0a04f7b56fd6bd403a47c6e068b0c6b6cfa5cb96605abb4566a34df/poppycdn-1.0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41aaae27912088dc24f72aee1a4ec539", "sha256": "1b3d2be730c121d945cb46b9b485f62a4d09a290f5a0eac405505806a4c6c59c" }, "downloads": -1, "filename": "poppycdn-1.0.11.tar.gz", "has_sig": false, "md5_digest": "41aaae27912088dc24f72aee1a4ec539", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7273688, "upload_time": "2016-08-19T20:25:10", "url": "https://files.pythonhosted.org/packages/f4/4b/12ad4d6996f8ad73b024bd68e54bf75d0b1861b0bd8727acfb391ea2aaaa/poppycdn-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "be9124efefc1ed7ce51c0bcb1736a86b", "sha256": "ef91c55a336ce8093c034775ebe12e6e55177e088232ee42b88d0b694c4627d3" }, "downloads": -1, "filename": "poppycdn-1.0.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "be9124efefc1ed7ce51c0bcb1736a86b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 311074, "upload_time": "2016-09-01T13:21:17", "url": "https://files.pythonhosted.org/packages/02/8d/93a2ce9188064a7fe6a8166773864fe9570b6b147269b20ce6429741dbaf/poppycdn-1.0.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87c51689fef5cda6d3f65d4e6d75d336", "sha256": "0d9efcf98988af7e42175f3da5e3cc772f3a86a051dacc6b3c23cc8c1b458ab7" }, "downloads": -1, "filename": "poppycdn-1.0.12.tar.gz", "has_sig": false, "md5_digest": "87c51689fef5cda6d3f65d4e6d75d336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7281915, "upload_time": "2016-09-01T13:21:24", "url": "https://files.pythonhosted.org/packages/2d/1e/7c2d236ad08799a4d76b1e5376dbc3e73af6ccc8297af9842d9d595cd669/poppycdn-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "0c1bae32d77c313fb2e2987da59ba4b7", "sha256": "8377bbdf2aa4fe6c12f8e06d54f35ad59a3f3992f410e482742b46e7d64623db" }, "downloads": -1, "filename": "poppycdn-1.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c1bae32d77c313fb2e2987da59ba4b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 319155, "upload_time": "2016-09-22T17:12:33", "url": "https://files.pythonhosted.org/packages/f1/a0/06d0867e5c64ca4d425a05a6ebcd9af389aeb2df8db67cd3d311b7743f1e/poppycdn-1.0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b85147bcadcfe90a6f1ba0ceb6ab410", "sha256": "52daffa40cc667c24e31d50e1172bb1591450acb04cd10b0468053232b3bd997" }, "downloads": -1, "filename": "poppycdn-1.0.13.tar.gz", "has_sig": false, "md5_digest": "3b85147bcadcfe90a6f1ba0ceb6ab410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7286998, "upload_time": "2016-09-22T17:12:39", "url": "https://files.pythonhosted.org/packages/8d/78/8a72d2d04c92cbe1c38547051060ff270c482602aab9c8a6c48454cadf3e/poppycdn-1.0.13.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0c1bae32d77c313fb2e2987da59ba4b7", "sha256": "8377bbdf2aa4fe6c12f8e06d54f35ad59a3f3992f410e482742b46e7d64623db" }, "downloads": -1, "filename": "poppycdn-1.0.13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0c1bae32d77c313fb2e2987da59ba4b7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 319155, "upload_time": "2016-09-22T17:12:33", "url": "https://files.pythonhosted.org/packages/f1/a0/06d0867e5c64ca4d425a05a6ebcd9af389aeb2df8db67cd3d311b7743f1e/poppycdn-1.0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b85147bcadcfe90a6f1ba0ceb6ab410", "sha256": "52daffa40cc667c24e31d50e1172bb1591450acb04cd10b0468053232b3bd997" }, "downloads": -1, "filename": "poppycdn-1.0.13.tar.gz", "has_sig": false, "md5_digest": "3b85147bcadcfe90a6f1ba0ceb6ab410", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7286998, "upload_time": "2016-09-22T17:12:39", "url": "https://files.pythonhosted.org/packages/8d/78/8a72d2d04c92cbe1c38547051060ff270c482602aab9c8a6c48454cadf3e/poppycdn-1.0.13.tar.gz" } ] }