From: Dobrica Pavlinusic Date: Wed, 25 May 2011 18:38:25 +0000 (+0200) Subject: specify ZTEDSLAM (default) or ZTEMSAN in command line X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=1f0de3e3ab5777a3f284991c8c693a76224f3353;p=APKPM.git specify ZTEDSLAM (default) or ZTEMSAN in command line --- diff --git a/gearman_driver.pl b/gearman_driver.pl index 9d2c147..c2551ff 100755 --- a/gearman_driver.pl +++ b/gearman_driver.pl @@ -23,11 +23,11 @@ my $driver = Gearman::Driver->new( min_processes => 1, }, 'APKPM::Poll::poll_ip_username' => { - max_processes => 100, + max_processes => 50, min_processes => 1, }, 'APKPM::Ping::ping' => { - max_processes => 100, + max_processes => 50, }, 'APKPM::Davolink::info' => { max_processes => 40, diff --git a/persistant_worker.pl b/persistant_worker.pl index ccddc86..1478f4a 100755 --- a/persistant_worker.pl +++ b/persistant_worker.pl @@ -22,6 +22,10 @@ use Redis; use lib 'lib'; use H1::ZTEDSLAM; +use H1::ZTEMSAN; + +my $variant = $ARGV[0] || 'ZTEDSLAM'; +warn "variant: $variant\n"; my $driver = Gearman::Driver->new( server => 'localhost:4730', @@ -34,7 +38,7 @@ my $w1 = 'Cog'; my $worker = $w1->new(); -my $crm = $worker->do( 'CRM_search' => "TIP_UREDJAJA:ZTEDSLAM" ); +my $crm = $worker->do( 'CRM_search' => "TIP_UREDJAJA:$variant" ); my $poll; @@ -48,9 +52,10 @@ warn "# poll = ", dump($poll); foreach my $ip ( keys %$poll ) { - my $method = "ZTEDSLAM_$ip"; + my $method = $variant . '_' . $ip; - my $zte = H1::ZTEDSLAM->new( ip => $ip ); + my $module = 'H1::' . $variant; + my $zte = $module->new( ip => $ip ); $driver->add_job({ max_processes => 1, # FIXME increase? @@ -77,10 +82,10 @@ foreach my $ip ( keys %$poll ) { my $redis = Redis->new; if ( $@ ) { - $redis->sadd("ZTEDSLAM.error" => $@); + $redis->sadd("$variant.error" => $@); return { error => $@ }; } else { - $redis->sadd("ZTEDSLAM.ok" => $crm->{USERNAME}); + $redis->sadd("$variant.ok" => $crm->{USERNAME}); } $self->do_background_json( 'Store_insert', { @@ -106,14 +111,14 @@ $driver->add_job({ max_processes => 1, min_processes => 1, worker => $worker, - name => 'poll_ZTEDSLAM', + name => "poll_$variant", methods => [ { - name => 'poll_ZTEDSLAM', + name => "poll_$variant", body => sub { my ( $self, $job, $workload ) = @_; - my $crm = $self->do( 'CRM_search' => "TIP_UREDJAJA:ZTEDSLAM" ); + my $crm = $self->do( 'CRM_search' => "TIP_UREDJAJA:$variant" ); warn "# crm $crm"; @@ -123,43 +128,43 @@ $driver->add_job({ my $seen; my $redis = Redis->new; - $redis->del( $_ ) foreach $redis->keys("ZTEDSLAM.*"); + $redis->del( $_ ) foreach $redis->keys("$variant.*"); - $redis->set( "ZTEDSLAM.start" => $self->datetime_now ); + $redis->set( "$variant.start" => $self->datetime_now ); foreach my $user ( @$crm ) { my $ip = $user->{IP_UREDAJA}; my $port = $user->{SHELF_SLOT_PORT}; if ( $ip !~ /$RE{net}{IPv4}/ ) { - $redis->sadd("ZTEDSLAM.invalid.IP_UREDAJA" => $ip); + $redis->sadd("$variant.invalid.IP_UREDAJA" => $ip); next; } elsif ( $port !~ m{\d+(/\d+)+} ) { - $redis->sadd("ZTEDSLAM.invalid.PORT" => $port); + $redis->sadd("$variant.invalid.PORT" => $port); next; } elsif ( $seen->{ $ip }->{ $port }++ ) { - $redis->sadd("ZTEDSLAM.invalid.duplicate" => "$ip $port"); + $redis->sadd("$variant.invalid.duplicate" => "$ip $port"); next; } - $redis->sadd("ZTEDSLAM.queued" => "$ip $port"); - $redis->incr("ZTEDSLAM.ip.$ip"); + $redis->sadd("$variant.queued" => "$ip $port"); + $redis->incr("$variant.ip.$ip"); - my $name = 'ZTEDSLAM_' . $ip; + my $name = $variant . '_' . $ip; $taskset->add_task( $name, $self->e_json( $user ), { - on_complete => sub { $redis->sadd("ZTEDSLAM.complete", "$ip $port") }, - on_fail => sub { $redis->sadd("ZTEDSLAM.fail", "$ip $port") }, + on_complete => sub { $redis->sadd("$variant.complete", "$ip $port") }, + on_fail => sub { $redis->sadd("$variant.fail", "$ip $port") }, } ) } warn "# queue logouts"; foreach my $ip ( keys %$seen ) { - $taskset->add_task( "ZTEDSLAM_$ip", $self->e_json( { logout => 1 } ) ); + $taskset->add_task( $variant . '_' . $ip, $self->e_json( { logout => 1 } ) ); } warn "# wait"; $taskset->wait; - $redis->set( "ZTEDSLAM.finish" => $self->datetime_now ); + $redis->set( "$variant.finish" => $self->datetime_now ); warn "# seen ", dump($seen); my $ips = scalar keys %$seen;