[sheepdog] [PATCH v1 1/3] sheep: don't allow it to plug new disk for pure gateway

Hitoshi Mitake mitake.hitoshi at gmail.com
Fri Jun 20 06:54:48 CEST 2014


At Wed, 18 Jun 2014 16:48:56 +0800,
Robin Dong wrote:
> 
> From: Robin Dong <sanbai at taobao.com>
> 
> A sheep daemon which is lauched as pure gateway can't (and also don't need)
> to add data path.
> 
> Signed-off-by: Robin Dong <sanbai at taobao.com>
> ---
>  sheep/md.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/sheep/md.c b/sheep/md.c
> index 29f263f..db9fb76 100644
> --- a/sheep/md.c
> +++ b/sheep/md.c
> @@ -802,6 +802,11 @@ static int do_plug_unplug(char *disks, bool plug)
>  	path = strtok(disks, ",");
>  	do {
>  		if (plug) {
> +			/* Not allowed to plug disk for pure gateway */
> +			if (md.nr_disks == 0 || sys->this_node.nr_vnodes == 0) {
> +				ret = SD_RES_NETWORK_ERROR;

If we actually try to plug disk on gateway node, dog prints an error
message like below:

$ dog node md plug /disk
Failed to execute request, look for sheep.log for more information

But sheep.log doesn't contain any error messages, because it simply
returns the above SD_RES_NETWORK_ERROR. I think you should add more
user friendly error message.

In addition, the error code isn't suitable for this case. Adding a new
error code like SD_RES_INVALID_OPERATION for describe invalid
admin operation and return it would be better.

Thanks,
Hitoshi

> +				goto out;
> +			}
>  			if (!md_add_disk(path, true))
>  				sd_err("failed to add %s", path);
>  		} else {
> -- 
> 1.7.12.4
> 
> -- 
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog



More information about the sheepdog mailing list