Merge branch 'devel' of h1dev:/srv/APKPM/
[APKPM.git] / lib / APKPM / VOICE.pm
1 package APKPM::VOICE;
2
3 use base qw(Gearman::Driver::Worker);
4 use Moose;
5 use Time::HiRes;
6 use Data::Dump qw(dump);
7
8 with 'APKPM::Config';
9 with 'APKPM::Gearman::Client';
10 with 'APKPM::Gearman';
11
12 use lib '/opt/managment_tools/lib';
13 use H1::VOICE;
14
15 sub prefix { 'VOICE_' }
16
17 sub info : Job : Encode(e_json) : MinProcesses(0) {
18         my ( $self, $job, $workload ) = @_;
19         warn "# workload = ", dump $workload;
20
21         return { error => "invalid workload", expected => '385xxxxxx', workload => $workload } if $workload !~ m/^385/;
22
23         my $broj = $workload;
24
25         my $voice=H1::VOICE->new($self->config('srukey'),$self->config('saukey'),$self->config('sshid'));
26
27         my $sau = $self->config('sau');
28
29         $voice->connectSRU( $sau->[0] );
30         my %sru = $voice->searchSRU($broj);
31         warn "# SRU ",dump( %sru );
32
33         return { broj => $workload, error => "no serverid" } unless defined $sru{serverid};
34
35         $voice->connectSAU( $sau->[ $sru{serverid} ] );
36         my %sau = $voice->searchSAU($sru{alias});
37
38         $self->do_background_json( 'Store_insert', {
39                 _table => 'voice',
40                 timestamp => $self->datetime_now,
41                 broj => $broj,
42                 state => $sau{state},
43                 serverid => $sru{serverid},
44         });
45
46         return { broj => $workload, sru => \%sru, sau => \%sau };
47 }
48
49 1;