enforce user quota on rsync xfer hooks
[cloudstore.git] / rsync-xfer-trigger.pl
1 #!/usr/bin/perl -T
2 use warnings;
3 use strict;
4
5 use Data::Dump qw(dump);
6
7 use lib '/srv/cloudstore/lib';
8 use CloudStore::Couchbase;
9
10 my $store = CloudStore::Couchbase->new;
11
12 my $login = $ENV{RSYNC_MODULE_NAME} || die "no RSYNC_MODULE_NAME";
13
14 my $usage = $store->usage({ login => $login });
15 my $user  = $store->user_get($login);
16
17 if ( $usage > $user->{quota} ) {
18         warn "ERROR: $login $usage > quota $user->{quota}";
19         exit 1;
20 } else {
21         warn "OK: $login $usage < quota $user->{quota}";
22         exit 0;
23 }