sub user_get {
my ($self,$login) = @_;
- $self->json_get( 'users', $login );
+ $login = $login->{login} if ref $login;
+ my $user = $self->json_get( 'users', $login );
+ $user->{usage} = $self->usage( $login );
+ $user->{status} = $self->status( $login );
+ warn "## user ",dump($user);
+ return $user;
+}
+
+sub status {
+ my ($self,$login,$message) = @_;
+ $login = $login->{login} if ref $login;
+ if ( $message ) {
+ $self->{session}->set( "$login:status" => $message );
+ } else {
+ $self->{session}->get( "$login:status" );
+ }
}
sub usage_decr {
}
sub usage {
- my ($self,$data) = @_;
- $self->{session}->get( $data->{login} . ':usage' );
+ my ($self,$login) = @_;
+ $login = $login->{login} if ref $login;
+ $self->{session}->get( $login . ':usage' );
}
sub usage_init {
my $login = $ENV{RSYNC_MODULE_NAME} || die "no RSYNC_MODULE_NAME";
-my $usage = $store->usage({ login => $login });
my $user = $store->user_get($login);
-if ( $usage > $user->{quota} ) {
- warn "ERROR: $login $usage > quota $user->{quota}";
+if ( $user->{usage} > $user->{quota} ) {
+ warn $store->status( $login => "ERROR: $login $user->{usage} > quota $user->{quota}" );
exit 1;
} else {
- warn "OK: $login $usage < quota $user->{quota}";
+ warn $store->status( $login => "OK: $login $user->{usage} < quota $user->{quota}" );
exit 0;
}
ok $r->user_set($user), 'user_set';
is_deeply $r->user_get($user->{login}), $user, 'user_get';
+ok $r->status('test' => 'start test'), 'status set';
+ok my $s = $r->status('test'), 'status get';
+diag $s;
+
ok($r->usage_init({ login => 'test' }), 'usage_init' );
cmp_ok($r->{session}->get('test:usage'), '==',0, 'usage');
#!/bin/sh -xe
user_dir=/srv/cloudstore/users/test/
-rm -Rvf $user_dir/log/* $user_dir/blob/*
+rm -Rvf $user_dir/log/* #$user_dir/blob/*
push() {
file=`shift`