Wip fs cmds

On Wed, 11 Jun 2014, Gregory Farnum wrote:
> In src/mon/MonCommands.h:
> 
> >  	"mds", "rw", "cli,rest")
> > +COMMAND("fs new " \
> > +	"name=fs_name,type=CephString " \
> > +	"name=metadata,type=CephString " \
> > +	"name=data,type=CephString ", \
> > +	"make new filesystem using named pools <metadata> and <data>", \
> > +	"fs", "rw", "cli,rest")
> > +COMMAND("fs rm " \
> > +	"name=fs_name,type=CephString " \
> > +	"name=sure,type=CephChoices,strings=--yes-i-really-mean-it,req=false", \
> > +	"disable the named filesystem", \
> > +	"fs", "rw", "cli,rest")
> > +COMMAND("fs ls ", \
> > +	"list filesystems", \
> > +	"fs", "r", "cli,rest")
> 
> I know that @liewegas asked for this, and you've implemented it cleanly, but
> I'd really rather not forcefully expose users to the idea of a filesystem
> name until we've at least got an idea for how the implementation would work.
> Is there a way we can keep our command system flexible enough to support it
> without requiring users to throw that odd "default" name in the middle of
> their command?

The general idea is to have an MDSMap for each fs.  That way we don't have 
to mash in a fs key into every existing field and change all of the logic 
accessors (like is_degraded()) accordingly.

The monitor would need some adjustments to store multiple sets of maps.  
There is probably some annoying bits where we assume epoch == paxos 
version, but nothing too weird, I hope.

Actually, it occurs to me now that it may not make sense to have the 
'enabled' flag inside MDSMap at all.  The fact that we have a single map 
currently makes that the simplest option, but once we have multiple 
MDSMaps in the mon it will be a useless field.  And in general it will 
never be useful outside of the mon, right?  It's only a byte so no real 
cost, but it will be a bit of clutter later.