On Thu, Jan 17, 2013 at 7:09 PM, Min Chen <min.c...@citrix.com> wrote:
> Hey all,
>
> I would like to merge my feature branch api_limit with master. This branch 
> deals with JIRA tickets CLOUDSTACK-618. Basically it implemented a plugin to 
> provide basic support for api rate limiting to avoid malicious attack on 
> CloudStack server. Implementation details can be found in this FS document 
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/API+Request+Throttling.
>  For this release, we have chosen to implement Ehcache based rate limit 
> store. With clearly defined limit store interface, we can easily extend this 
> to provide other limit store implementations based on Memcached or Redis 
> which rely on setting up a dedicated proxy server.
>
> Testing done
>
> I have done the following two kinds of testing during development cycle:
>
>  *   Unit test to verify ApiRateLimitService pluggable service interface and 
> Limit Store interface methods. These unit testcases are located in 
> plugins/api/rate-limit/test/org/apache/cloudstack/ratelimit/ApiRateLimitTest.java.
>  *   Integration test to verify rate limit feature and new APIs through a 
> running MS. These integration testcases are located in 
> plugins/api/rate-limit/test/org/apache/cloudstack/ratelimit/integration/RateLimitIntegrationTest.java.
>  These test cases are assuming that we have a "demo" user account created on 
> your locally running MS.
>
> Risk
>
> This has minimal risk due to its plugin implementation. We can easily disable 
> this feature by removing this plugin from components.xml.in. A potential 
> impact may be that if this is enabled, UI needs to handle this situation (api 
> failed due to over limit) gracefully.
>
> Database changes
> none
>
> Documentation tracked in a separate ticket: CLOUDSTACK-866
>
> Thanks
> -min
>
>


No objection here.
I especially appreciate calling out the risks, and making sure this
had testing in place up front.

--David

Reply via email to