torrent_download
[cloudstore.git] / gearman / send_file.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4
5 use Data::Dump qw(dump);
6
7 use lib '/srv/cloudstore/lib';
8 use CloudStore::API;
9
10 my $api = CloudStore::API->new('s1');
11
12 use Gearman::Worker;
13 my $worker = Gearman::Worker->new;
14 $worker->job_servers('127.0.0.1:4730');
15
16 open(my $log, '>>', '/rsync1/s1/log/send_file.log');
17 select($log); $|++;
18
19 $worker->register_function( send_file => sub {
20         my ($job) = @_;
21
22         my $work = $job->arg;
23         chomp $work;
24         warn "# send_file [$work]\n";
25
26         my ( $from, $to ) = split(/#/,$work,2);
27         
28         my $f_uid = $1 if $from =~ s{~(\w+)/}{};
29         my $t_uid = $1 if $to   =~ s{~(\w+)/}{};
30
31         warn "send_file $f_uid $from -> $t_uid $to\n";
32
33         $api->send_file( $f_uid => $from, $t_uid => $to );
34 });
35
36 $worker->register_function( rename_file => sub {
37         my ($job) = @_;
38
39         my $work = $job->arg;
40         chomp $work;
41         warn "# rename_file [$work]\n";
42
43         my ( $from, $to ) = split(/#/,$work,2);
44         my $login = $1 if $from =~ s{~(\w+)/}{};
45         $api->rename_file( $login, $from, $to );
46 });
47
48 $worker->register_function( delete => sub {
49         my ($job) = @_;
50         my $work = $job->arg;
51         chomp $work;
52         warn "# delete [$work]\n";
53
54         my $login = $1 if $work =~ s{~(\w+)}{};
55         $api->delete( $login, $work );
56
57 });
58
59 $worker->register_function( user_usage => sub {
60         my ($job) = @_;
61         my $work = $job->arg;
62         chomp $work;
63         warn "# usage [$work]\n";
64         my $usage = $api->usage( $work );
65         return $usage->{_usage};
66 });
67
68 warn "$0 pid $$ waitng for jobs\n";
69
70 if ( $ENV{SLICE} ) {
71         chroot $ENV{SLICE} || die "can't chroot $ENV{SLICE}: $!";
72 } else {
73         warn "WARNING: not running under chroot SLICE=/hostname/sx\n";
74 }
75
76 $worker->work while 1;
77