new quota functions accept login not uid
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 15 Apr 2012 20:03:14 +0000 (22:03 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sun, 15 Apr 2012 20:03:14 +0000 (22:03 +0200)
gearman/narada_s1_quota
gearman/zfs.pl

index 114d02c..ba8fe1f 100755 (executable)
@@ -1,5 +1,8 @@
 #!/bin/sh -e
 
+# sudo /mnt/narada/rootfs/srv/cloudstore/gearman/narada_s1_quota start get
+# sudo /mnt/narada/rootfs/srv/cloudstore/gearman/narada_s1_quota start set
+
 name=`basename $0`
 op=$2
 test -z "$op" && op="get"
@@ -9,14 +12,15 @@ log_file="${tmp_file}.log"
 echo "# $name $op" >> $log_file
 
 if [ "$1" = "get" ] ; then
-       while read uid ; do
+       while read login ; do
+               uid=`echo $login | sed 's/^u//'`
                echo -n "get $uid = " >> $log_file
                quota --raw-grace --no-wrap -u $uid | tail -1 \
-                       | awk '{ print $2 " " $3 }' | tee -a $log_file \
-                       | grep '^[0-9][0-9]*'
+                       | awk '{ print $2 " " $3 }' | sed -e 's/*//' | tee -a $log_file
        done
 elif [ "$1" = "set" ] ; then
-       while read uid quota ; do
+       while read login quota ; do
+               uid=`echo $login | sed 's/^u//'`
                echo "set $uid $quota" >> $log_file
                setquota -u $uid $quota 0 0 0 /mnt/narada/
                #quota --raw-grace --no-wrap -u $uid | tail -1
@@ -25,7 +29,7 @@ elif [ "$1" = "start" ] ; then
        test -e $pid_file && kill `cat $pid_file` || true;
        LD_PRELOAD=/mnt/narada/rootfs/usr/lib/libgearman.so.4 /mnt/narada/rootfs/usr/bin/gearman \
        -h 10.60.0.244 -p 4730 -i $pid_file \
-       -n -f ${name}_${op} -w `pwd`/$0 $op &
+       -n -f ${name}_${op} -w $0 $op &
 elif [ "$1" = "stop" ] ; then
        kill `cat $pid_file` && rm $pid_file
 elif [ "$1" = "status" ] ; then
index 7ed765a..5de977b 100755 (executable)
@@ -36,13 +36,13 @@ my $name = $ENV{ZSLICE};
 $name =~ s/\W+/_/g;
 
 $worker->register_function( $name . '_quota_get' => sub {
-       my $used = zfs( "zfs get -H -p -o value userused\@u%s $ENV{ZSLICE}" => $_[0] );
-       my $quota = zfs( "zfs get -H -p -o value userquota\@u%s $ENV{ZSLICE}" => $_[0] );
+       my $used = zfs( "zfs get -H -p -o value userused\@%s $ENV{ZSLICE}" => $_[0] );
+       my $quota = zfs( "zfs get -H -p -o value userquota\@%s $ENV{ZSLICE}" => $_[0] );
        return "$used $quota";
 } );
 
 $worker->register_function( $name . '_quota_set' => sub { zfs( 
-"zfs set userquota\@u%s=%s $ENV{ZSLICE}" => $_[0]
+"zfs set userquota\@%s=%s $ENV{ZSLICE}" => $_[0]
 ) } );
 
 warn "$0 $name pid $$ waitng for jobs ZFS slice $ENV{ZSLICE}\n";