mogtool patch to list all files matching a given key prefix
Brad Fitzpatrick
brad at danga.com
Fri Nov 3 00:46:56 UTC 2006
Can you re-send as unified diff (diff -u) ?
My brain just can't read contextual diffs.
On Thu, 19 Oct 2006, Arthur Bebak wrote:
>
> This patch adds a new command "listkey" to mogtool. It will
> list all files in MogileFS which match the given prefix.
>
> Example: List all files in MogileFS whose keys start with the characters "abc1".
>
> mogtool listkey abc1
>
> To apply the patch to the current mogtool copy everything
> between the patch begins/patch ends lines below, put it
> in a file called "mogpatch" and run the patch tool like so:
>
> patch mogtool mogpatch
>
> Hopefully Mark or Brad can just check this into subversion.
>
> Would be nice if we could list all keys which match a given
> regexp, but I think that would require a change to MogileFS
> to give us a REGEXP SQL query on the keys.
>
>
> --------------- patch begins ---------------
> 1a2,4
> >
> > eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
> > if 0; # not running under some shell
> 35a39
> > $ mogtool listkey
> 92a97,102
> > =item listkey|lsk key
> >
> > List all files which match the key. Key is just a prefix, and this will list
> > all keys which match the prefix. So if you specify key as "ABC1" then you'll
> > get all keys which start with the characters "ABC1"
> >
> 395a406,411
> > =head2 Listing Files Matching a Key
> >
> > $ mogtool listkey abc1
> >
> > Lists all files in MogileFS whose keys start with the characters "abc1".
> >
> 533c549
> < eval "use MogileFS::Client;";
> ---
> > eval "use MogileFS;";
> 547a564
> > listkey() if $cmd eq 'lsk' || $cmd eq "listkey";
> 568c585
> < my $mogfs = MogileFS::Client->new(
> ---
> > my $mogfs = MogileFS->new(
> 1195a1213,1234
> > sub listkey {
> >
> > my $key_pattern = shift(@ARGV);
> > abortWithUsage() unless $key_pattern;
> >
> > # list all files matchine a key
> > my ($ct, $after, $list);
> > while (($after, $list) = $mogfs->list_keys("$key_pattern", $after)) {
> > last unless $list && @$list;
> >
> > # now extract the key and dump it
> > foreach my $key (@$list) {
> >
> > $ct++;
> >
> > print "$key\n";
> > }
> > }
> > print "#$ct files found\n";
> > exit 0;
> > }
> >
> ---------------------- patch ends --------------------
> --
> Arthur Bebak
> abebak at fabrikinc.com
>
>
More information about the mogilefs
mailing list