sub slice_dir_port {
my ($self,$slice) = @_;
- my ( undef, $dir, $port, undef ) = getgrnam($slice);
+ my ( undef, $dir, $port, undef ) = getgrnam($slice) || die "getgrnam $slice: $!";
warn "# slice_dir_port $slice = $dir $port\n";
return ( $dir, $port );
}
close($fh);
my $slice = $ENV{SLICE} || 's1';
+ $slice =~ s{/.+/(\w+)$}{$1};
my ( $dir, $port ) = $self->slice_dir_port( $slice );
+ $dir ||= $ENV{SLICE};
+ $port ||= 6501;
+
if ( ! $found ) {
$max_uid++;
$dir .= "/$max_uid";
# FIXME update quota only on create?
$self->gearman_do( $self->dir2gearman( $dir, 'quota', 'set' ) => "$found $new_quota" );
- return $found;
+ return 'u' . $found;
}
sub mkbasepath {
if ( $ok ) {
$self->append( $t, 'recv', $size, $f->{uid}, $t_path );
$self->append_meta('md5sum', $t, $md5 => $t_path ) if $md5; # md5sum for received files! FIXME -- cross-slice md5
+ $self->refresh_file_list( $t );
}
return $size;
$self->append_meta('md5sum', $user, 'rename' => $from );
$self->append_meta('md5sum', $user, $md5 => $from );
+ $self->refresh_file_list( $user );
+
return $ok;
}
$self->append( $user, 'delete', -$deleted_size, $user->{uid}, $path );
$self->append_meta('md5sum', $user, 'delete', $path );
+ $self->refresh_file_list( $user );
+
return $full_path;
}
return -s $full_path;
}
+sub refresh_file_list {
+ my ( $self, $user ) = @_;
+ $user = $self->user_info($user) unless ref $user eq 'HASH';
+ my $full_path = "$user->{dir}/.meta/files";
+ if ( -e $full_path ) {
+ warn "## refresh_file_list $full_path";
+ unlink $full_path;
+ }
+}
+
1;