{ "info": { "author": "Kevin L. Mitchell", "author_email": "kevin.mitchell@rackspace.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Paste", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: WSGI :: Middleware" ], "description": "============================================\nNova-specific Rate Limit Class for Turnstile\n============================================\n\nThis package provides the ``nova_limits`` Python module, which\ncontains the ``nova_preprocess()`` preprocessor, the\n``NovaClassLimit`` limit class, and the ``NovaTurnstileMiddleware``\nreplacement middleware class, all for use with Turnstile. These\npieces work together to provide class-based rate limiting integration\nwith nova. To use, you must configure the Turnstile middleware with\nthe following configuration::\n\n [filter:turnstile]\n use = egg:turnstile#turnstile\n turnstile = nova_limits:NovaTurnstileMiddleware\n preprocess = nova_limits:nova_preprocess\n redis.host = \n\nThen, simply use the ``nova_limits:NovaClassLimit`` rate limit class\nin your configuration.\n\nUsing ``NovaClassLimit``\n========================\n\nIn addition to the other attributes provided by\n``turnstile.limits:Limit``, the ``NovaClassLimit`` limit class\nprovides one additional required argument: the ``rate_class``. Each\ntenant is associated with a given rate-limit class through the Redis\ndatabase. (If no such association is present, the rate-limit class\nfor a tenant is ``default``.) Setting ``rate_class`` on\n``NovaClassLimit`` restricts the limiting action to only those tenants\nin the given rate-limit class.\n\nAlso note that, for nova, the URIs used in configuring rate limiting\nmust include the version identifier, i.e.,\n\"/v2/{tenant}/servers/detail\".", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/klmitch/nova_limits", "keywords": null, "license": "Apache License (2.0)", "maintainer": null, "maintainer_email": null, "name": "nova_limits", "package_url": "https://pypi.org/project/nova_limits/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/nova_limits/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/klmitch/nova_limits" }, "release_url": "https://pypi.org/project/nova_limits/0.6.1/", "requires_dist": null, "requires_python": null, "summary": "Nova-specific rate-limit class for turnstile", "version": "0.6.1" }, "last_serial": 795567, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "0b3d58cb324e1524c0ad19e53638678c", "sha256": "00d32af18d49d22ad6da875670a4b7d6ad927de72a8ee730966f59292692e89d" }, "downloads": -1, "filename": "nova_limits-0.1.tar.gz", "has_sig": false, "md5_digest": "0b3d58cb324e1524c0ad19e53638678c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6385, "upload_time": "2012-03-01T00:11:40", "url": "https://files.pythonhosted.org/packages/2e/0e/60a6006ec6e75b578955c38a5b57af0bed178557748842f561255296e272/nova_limits-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "75c29ed30d1b34439c501aa0c0c8463c", "sha256": "3d0c56b141a91a0bdf92cec3f3074a782d5d399cf5c7f7ae5bc12e98cd006ac7" }, "downloads": -1, "filename": "nova_limits-0.2.tar.gz", "has_sig": false, "md5_digest": "75c29ed30d1b34439c501aa0c0c8463c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7375, "upload_time": "2012-03-02T22:15:48", "url": "https://files.pythonhosted.org/packages/95/e9/ae131e1ca10e8e4b52f753e34fd21602da2e42e94da0501d863725149874/nova_limits-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a75109af69c04e086cce71c0a1179b91", "sha256": "c50d80f78e357d86303046c10029f52d39a40a27fc7aa04ad9b9420f5366f0ea" }, "downloads": -1, "filename": "nova_limits-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a75109af69c04e086cce71c0a1179b91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7390, "upload_time": "2012-03-05T18:15:51", "url": "https://files.pythonhosted.org/packages/ce/0a/5e1e46ac9bb5518528b0d41d1094acf40413dd45f66231996a4a827549e8/nova_limits-0.2.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "90a0aaa13b8d1c23940e3b9055d73ded", "sha256": "6ba9f9b5c2a82f547f5b1629041e7f10f4eaa4552c1f5348a5cadf74bdc65760" }, "downloads": -1, "filename": "nova_limits-0.5.tar.gz", "has_sig": false, "md5_digest": "90a0aaa13b8d1c23940e3b9055d73ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10487, "upload_time": "2012-03-08T18:29:34", "url": "https://files.pythonhosted.org/packages/7f/94/d4cf51282ebcfc7c8ce832c8343907f89ec16851c573aba9febd47887aa6/nova_limits-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "01b193c0094dc4417a8097b284ffb19e", "sha256": "4b099cb638a717a1677cb09d24d58e60df73f4cdd76615c76911a19d7b71b830" }, "downloads": -1, "filename": "nova_limits-0.5.1.tar.gz", "has_sig": false, "md5_digest": "01b193c0094dc4417a8097b284ffb19e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10639, "upload_time": "2012-03-13T20:17:33", "url": "https://files.pythonhosted.org/packages/eb/54/a4c50e27f74fa3ecb96e04de18ad9720df43e18d113a80df0f3d4a3ce2fa/nova_limits-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "b3356e4235445344abd70fbadd860cf9", "sha256": "5631346bd2cbf7846065f5564a5a27f8f2b583296d0bc75278a3d2e321c84d94" }, "downloads": -1, "filename": "nova_limits-0.5.2.tar.gz", "has_sig": false, "md5_digest": "b3356e4235445344abd70fbadd860cf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12903, "upload_time": "2012-03-16T20:47:13", "url": "https://files.pythonhosted.org/packages/45/c0/c636ba9416881eba54d39463b6be9ae497918fe268a679ccb9a38ffae7a4/nova_limits-0.5.2.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "8343571002f426fc3ffc7d95d3f00971", "sha256": "52be8aaa04bb840e69fea5d64f0e1a85630265a2f804048d89ed376d53aa25ad" }, "downloads": -1, "filename": "nova_limits-0.6.1.tar.gz", "has_sig": false, "md5_digest": "8343571002f426fc3ffc7d95d3f00971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13457, "upload_time": "2012-10-02T21:24:13", "url": "https://files.pythonhosted.org/packages/20/02/43c4e89a6128734237a7539074f1d712feb108b7beb3e5126b55b24dc0b7/nova_limits-0.6.1.tar.gz" } ], "0.7.0b1": [ { "comment_text": "", "digests": { "md5": "d6f67eec86290a737de87386d9ce3511", "sha256": "d05702fd7c30645a1125b174cc12f92d0da0d4ba3ca8970822cf3327e1269ae0" }, "downloads": -1, "filename": "nova_limits-0.7.0b1.tar.gz", "has_sig": false, "md5_digest": "d6f67eec86290a737de87386d9ce3511", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14112, "upload_time": "2013-04-01T15:19:39", "url": "https://files.pythonhosted.org/packages/14/83/66ee42cb84be77832071327f426505c2c4690dcc76c54c52087db6a1a5c5/nova_limits-0.7.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8343571002f426fc3ffc7d95d3f00971", "sha256": "52be8aaa04bb840e69fea5d64f0e1a85630265a2f804048d89ed376d53aa25ad" }, "downloads": -1, "filename": "nova_limits-0.6.1.tar.gz", "has_sig": false, "md5_digest": "8343571002f426fc3ffc7d95d3f00971", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13457, "upload_time": "2012-10-02T21:24:13", "url": "https://files.pythonhosted.org/packages/20/02/43c4e89a6128734237a7539074f1d712feb108b7beb3e5126b55b24dc0b7/nova_limits-0.6.1.tar.gz" } ] }