Min,

Would these unit tests be automatically included in our Junit suite for next 
run??

Thanks
/sudha

-----Original Message-----
From: Min Chen [mailto:min.c...@citrix.com] 
Sent: Thursday, January 17, 2013 4:10 PM
To: cloudstack-dev@incubator.apache.org
Subject: [MERGE] Merge branch api_limit

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



Reply via email to