[sheepdog] [PATCH] dog: permit two or more depth of subcommands

Hitoshi Mitake mitake.hitoshi at gmail.com
Mon Nov 11 14:04:00 CET 2013


At Mon, 11 Nov 2013 18:58:20 +0800,
Liu Yuan wrote:
> 
> On Mon, Nov 11, 2013 at 07:48:11PM +0900, Hitoshi Mitake wrote:
> > Current dog command dies when user invokes "dog node log level set"
> > without any arguments because of its subcommand design. This patch
> > removes this limitation.
> > 
> > Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> > ---
> >  dog/cluster.c |    4 ++--
> >  dog/common.c  |    5 +++--
> >  dog/dog.h     |    3 ++-
> >  dog/node.c    |    6 +++---
> >  dog/trace.c   |    2 +-
> >  dog/vdi.c     |    2 +-
> >  6 files changed, 12 insertions(+), 10 deletions(-)
> > 
> > diff --git a/dog/cluster.c b/dog/cluster.c
> > index c2f97ad..c508f15 100644
> > --- a/dog/cluster.c
> > +++ b/dog/cluster.c
> > @@ -441,7 +441,7 @@ static struct subcommand cluster_recover_cmd[] = {
> >  
> >  static int cluster_recover(int argc, char **argv)
> >  {
> > -	return do_generic_subcommand(cluster_recover_cmd, argc, argv);
> > +	return do_generic_subcommand(cluster_recover_cmd, 0, argc, argv);
> >  }
> >  
> >  /* Subcommand list of snapshot */
> > @@ -458,7 +458,7 @@ static struct subcommand cluster_snapshot_cmd[] = {
> >  
> >  static int cluster_snapshot(int argc, char **argv)
> >  {
> > -	return do_generic_subcommand(cluster_snapshot_cmd, argc, argv);
> > +	return do_generic_subcommand(cluster_snapshot_cmd, 0, argc, argv);
> >  }
> >  
> >  static int cluster_reweight(int argc, char **argv)
> > diff --git a/dog/common.c b/dog/common.c
> > index 4480b99..90b43ad 100644
> > --- a/dog/common.c
> > +++ b/dog/common.c
> > @@ -224,7 +224,8 @@ int send_light_req(const struct node_id *nid, struct sd_req *hdr)
> >  	return 0;
> >  }
> >  
> > -int do_generic_subcommand(struct subcommand *sub, int argc, char **argv)
> > +int do_generic_subcommand(struct subcommand *sub, int depth,
> > +			  int argc, char **argv)
> 
> I think we'd better define a larger macro for '5' instead of a 'depth' parameter
> to achieve the same target.

I agree. I'll send v2 soon.

Thanks,
Hitoshi



More information about the sheepdog mailing list