On Fri, Nov 29, 2013 at 05:10:32PM +0800, Robin Dong wrote:
> Add uri "/test_lock" and "/test_unlock" for swift so users can
> test zk_mutex from web browser.
> 
> Signed-off-by: Robin Dong <[email protected]>
> ---
>  sheep/http/swift.c |   16 ++++++++++++++++
>  1 files changed, 16 insertions(+), 0 deletions(-)
> 
> diff --git a/sheep/http/swift.c b/sheep/http/swift.c
> index 7b3354a..941a7b1 100644
> --- a/sheep/http/swift.c
> +++ b/sheep/http/swift.c
> @@ -9,9 +9,13 @@
>   * along with this program. If not, see <http://www.gnu.org/licenses/>.
>   */
>  
> +#include "sheep_priv.h"
>  #include "http.h"
>  #include "kv.h"
>  
> +#define TEST_MUTEX_ID 2013
> +static struct dist_mutex test_mutex;
> +
>  static void make_bucket_path(char *bucket, size_t size, const char *account,
>                            const char *container)
>  {
> @@ -166,6 +170,10 @@ static void swift_delete_object(struct http_request 
> *req, const char *account,
>  
>  static int swift_init(const char *option)
>  {
> +     if (sys->cdrv->init_mutex(&test_mutex, TEST_MUTEX_ID)) {
> +             sd_err("Failed to init mutex %u", TEST_MUTEX_ID);
> +             return -1;
> +     }
>       return 0;
>  }
>  
> @@ -192,6 +200,14 @@ static void swift_handle_request(struct http_request 
> *req,
>  
>       sd_info("%s", str_http_req(req));
>  
> +     if (!strcmp("/test_lock", req->uri)) {
> +             sys->cdrv->lock_mutex(&test_mutex);
> +             sd_debug("--- lock ---");
> +     } else if (!strcmp("/test_unlock", req->uri)) {
> +             sys->cdrv->unlock_mutex(&test_mutex);
> +             sd_debug("--- unlock ---");
> +     }
> +
>       if (account == NULL) {
>               sd_info("invalid uri: %s", req->uri);
>               http_response_header(req, NOT_FOUND);

This would be better kept as a local in-house patch. IIUC, the real user would
be http/kv.c and no service planned for it via http interface.

Thanks
Yuan
-- 
sheepdog mailing list
[email protected]
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to