5 use Data::Dump qw(dump);
7 use lib '/srv/cloudstore/lib';
10 my $api = CloudStore::API->new('s1');
13 my $worker = Gearman::Worker->new;
14 $worker->job_servers('127.0.0.1:4730');
16 open(my $log, '>>', '/rsync1/s1/log/send_file.log');
19 $worker->register_function( send_file => sub {
24 warn "# send_file [$work]\n";
26 my ( $from, $to ) = split(/#/,$work,2);
28 my $f_uid = $1 if $from =~ s{~(\w+)/}{};
29 my $t_uid = $1 if $to =~ s{~(\w+)/}{};
31 warn "send_file $f_uid $from -> $t_uid $to\n";
33 $api->send_file( $f_uid => $from, $t_uid => $to );
36 $worker->register_function( rename_file => sub {
41 warn "# rename_file [$work]\n";
43 my ( $from, $to ) = split(/#/,$work,2);
44 my $login = $1 if $from =~ s{~(\w+)/}{};
45 $api->rename_file( $login, $from, $to );
48 $worker->register_function( delete => sub {
52 warn "# delete [$work]\n";
54 my $login = $1 if $work =~ s{~(\w+)}{};
55 $api->delete( $login, $work );
59 $worker->register_function( user_usage => sub {
63 warn "# usage [$work]\n";
64 my $usage = $api->usage( $work );
65 return $usage->{_usage};
68 warn "$0 pid $$ waitng for jobs\n";
71 chroot $ENV{SLICE} || die "can't chroot $ENV{SLICE}: $!";
73 warn "WARNING: not running under chroot SLICE=/hostname/sx\n";
76 $worker->work while 1;