[sheepdog] [PATCH v2 2/2] sheep: add test stub in http/swift
Liu Yuan
namei.unix at gmail.com
Fri Nov 29 10:24:56 CET 2013
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 <sanbai at taobao.com>
> ---
> 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
More information about the sheepdog
mailing list