change noop to info, and some fixes
This commit is contained in:
		| @@ -49,13 +49,13 @@ sub BUILD { | ||||
|  | ||||
| =head1 METHODS | ||||
|  | ||||
| =head2 summary | ||||
| =head2 display_name | ||||
|  | ||||
| An attempt to make a meaningful written statement about the job. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| sub summary { | ||||
| sub display_name { | ||||
|   my $job = shift; | ||||
|   return join ' ', | ||||
|     $job->action, | ||||
| @@ -87,8 +87,8 @@ sub finalise_status { | ||||
|     next if $status->phase  | ||||
|       and $status->phase !~ m/^(?:check|early|main)$/; | ||||
|  | ||||
|     next if $status->phase eq 'check' | ||||
|       and $status->level eq Status->done()->level; | ||||
|     # done() from check phase should not be the action's done() | ||||
|     next if $status->phase eq 'check' and $status->is_ok; | ||||
|  | ||||
|     if ($status->level >= $max_level) { | ||||
|       $job->status( $status->status ); | ||||
| @@ -110,8 +110,8 @@ sub check_passed { | ||||
|   return true if 0 == scalar @{ $job->_statuslist }; | ||||
|  | ||||
|   foreach my $status (@{ $job->_statuslist }) { | ||||
|     next unless $status->phase and $status->phase eq 'check'; | ||||
|     return true if $status->is_ok; | ||||
|     return true if | ||||
|       (($status->phase eq 'check') and $status->is_ok); | ||||
|   } | ||||
|   return false; | ||||
| } | ||||
| @@ -128,7 +128,7 @@ sub namespace_passed { | ||||
|  | ||||
|   if ($job->_last_namespace) { | ||||
|     foreach my $status (@{ $job->_statuslist }) { | ||||
|       next unless ($status->phase and $status->phase eq $workerconf->{phase}) | ||||
|       next unless ($status->phase eq $workerconf->{phase}) | ||||
|               and ($workerconf->{namespace} eq $job->_last_namespace) | ||||
|               and ($workerconf->{priority} < $job->_last_priority); | ||||
|       return true if $status->is_ok; | ||||
| @@ -169,8 +169,7 @@ sub add_status { | ||||
|   $status->phase( $job->_current_phase || '' ); | ||||
|   push @{ $job->_statuslist }, $status; | ||||
|   debug $status->log if $status->log | ||||
|     and (($status->phase eq 'check') | ||||
|       or ($status->level ne Status->done()->level)); | ||||
|     and (($status->phase eq 'check') or $status->not_ok); | ||||
| } | ||||
|  | ||||
| =head1 ADDITIONAL COLUMNS | ||||
|   | ||||
| @@ -29,7 +29,7 @@ sub worker_body { | ||||
|       try { | ||||
|           $job->started(scalar localtime); | ||||
|           prctl sprintf 'nd2: #%s poll: #%s: %s', | ||||
|             $wid, $job->id, $job->summary; | ||||
|             $wid, $job->id, $job->display_name; | ||||
|           info sprintf "pol (%s): starting %s job(%s) at %s", | ||||
|             $wid, $job->action, $job->id, $job->started; | ||||
|           $self->run($job); | ||||
|   | ||||
| @@ -105,13 +105,13 @@ __PACKAGE__->belongs_to( target => 'App::Netdisco::DB::Result::Device', | ||||
|  | ||||
| =head1 METHODS | ||||
|  | ||||
| =head2 summary | ||||
| =head2 display_name | ||||
|  | ||||
| An attempt to make a meaningful statement about the job. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| sub summary { | ||||
| sub display_name { | ||||
|     my $job = shift; | ||||
|     return join ' ', | ||||
|       $job->action, | ||||
|   | ||||
| @@ -51,7 +51,7 @@ register 'register_worker' => sub { | ||||
|       my $no   = (exists $workerconf->{no}   ? $workerconf->{no}   : undef); | ||||
|       my $only = (exists $workerconf->{only} ? $workerconf->{only} : undef); | ||||
|  | ||||
|       return $job->add_status( Status->noop('worker not applicable to this device') ) | ||||
|       return $job->add_status( Status->info('worker not applicable to this device') ) | ||||
|         if ($no and check_acl_no($job->device, $no)) | ||||
|            or ($only and not check_acl_only($job->device, $only)); | ||||
|  | ||||
| @@ -68,7 +68,7 @@ register 'register_worker' => sub { | ||||
|       } | ||||
|  | ||||
|       # per-device action but no device creds available | ||||
|       return $job->add_status( Status->noop('worker driver or action not applicable') ) | ||||
|       return $job->add_status( Status->info('worker driver or action not applicable') ) | ||||
|         if 0 == scalar @newuserconf; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -24,7 +24,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|   my $now = 'to_timestamp('. (join '.', gettimeofday) .')'; | ||||
|   store_subnet($_, $now) for @subnets; | ||||
|  | ||||
|   return Status->noop(sprintf ' [%s] arpnip - processed %s Subnet entries', | ||||
|   return Status->info(sprintf ' [%s] arpnip - processed %s Subnet entries', | ||||
|     $device->ip, scalar @subnets); | ||||
| }); | ||||
|  | ||||
|   | ||||
| @@ -76,7 +76,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|     schema('netdisco')->resultset('Admin') | ||||
|       ->find({job => $job->id})->update({device => $new_ip}); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] device - changed IP to %s (%s)', | ||||
|     return Status->info(sprintf ' [%s] device - changed IP to %s (%s)', | ||||
|       $old_ip, $device->ip, ($device->dns || '')); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -41,7 +41,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|         }); | ||||
|       }); | ||||
|  | ||||
|       return Status->noop( | ||||
|       return Status->info( | ||||
|         sprintf ' [%s] modules - 0 chassis components (added one pseudo for chassis)', | ||||
|         $device->ip); | ||||
|   } | ||||
| @@ -87,7 +87,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|       $device->ip, $gone; | ||||
|     $device->modules->populate(\@modules); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] modules - added %d new chassis modules', | ||||
|     return Status->info(sprintf ' [%s] modules - added %d new chassis modules', | ||||
|       $device->ip, scalar @modules); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -67,6 +67,9 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|         ($remote_id ? (device_key => $remote_id) : ()), | ||||
|       }); | ||||
|   } | ||||
|  | ||||
|   return Status->info(sprintf ' [%s] neigh - processed %s neighbors', | ||||
|        $device->ip, scalar @to_discover); | ||||
| }); | ||||
|  | ||||
| =head2 store_neighbors( $device ) | ||||
|   | ||||
| @@ -19,7 +19,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|   my $p_status = $snmp->peth_power_status; | ||||
|  | ||||
|   if (!defined $p_watts) { | ||||
|       return Status->noop(sprintf ' [%s] power - 0 power modules', $device->ip); | ||||
|       return Status->info(sprintf ' [%s] power - 0 power modules', $device->ip); | ||||
|   } | ||||
|  | ||||
|   # build device module power info suitable for DBIC | ||||
| @@ -73,7 +73,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|       $device->ip, $gone; | ||||
|     $device->powered_ports->populate(\@portpower); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] power - added %d new PoE capable ports', | ||||
|     return Status->info(sprintf ' [%s] power - added %d new PoE capable ports', | ||||
|       $device->ip, scalar @portpower); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -237,7 +237,7 @@ register_worker({ phase => 'early', driver => 'snmp' }, sub { | ||||
|     $device->update_or_insert(undef, {for => 'update'}); | ||||
|     $device->ports->populate([values %interfaces]); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] interfaces - added %d new interfaces', | ||||
|     return Status->info(sprintf ' [%s] interfaces - added %d new interfaces', | ||||
|       $device->ip, scalar values %interfaces); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -87,7 +87,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|       $device->ip, $gone; | ||||
|     $device->port_vlans->populate(\@portvlans); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] vlans - added %d new port VLANs', | ||||
|     return Status->info(sprintf ' [%s] vlans - added %d new port VLANs', | ||||
|       $device->ip, scalar @portvlans); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -77,7 +77,7 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|       $device->ip, $gone; | ||||
|     $device->wireless_ports->populate(\@channels); | ||||
|  | ||||
|     return Status->noop(sprintf ' [%s] wireless - added %d new wireless channels', | ||||
|     return Status->info(sprintf ' [%s] wireless - added %d new wireless channels', | ||||
|       $device->ip, scalar @channels); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
| @@ -33,6 +33,8 @@ register_worker({ phase => 'main' }, sub { | ||||
|       userip => $job->userip, | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   return Status->info("Queued macsuck and arpnip for $device."); | ||||
| }); | ||||
|  | ||||
| true; | ||||
|   | ||||
| @@ -20,14 +20,8 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|   my $cd11_txrate = $snmp->cd11_txrate; | ||||
|   return unless $cd11_txrate and scalar keys %$cd11_txrate; | ||||
|  | ||||
|   if (setting('store_wireless_clients')) { | ||||
|     debug sprintf ' [%s] macsuck - gathering wireless client info', | ||||
|       $device->ip; | ||||
|   } | ||||
|   else { | ||||
|     return Status->noop(sprintf ' [%s] macsuck - dot11 info available but skipped due to config', | ||||
|       $device->ip); | ||||
|   } | ||||
|   return Status->info(sprintf ' [%s] macsuck - dot11 info available but skipped due to config', | ||||
|     $device->ip) unless setting('store_wireless_clients'); | ||||
|  | ||||
|   my $cd11_rateset = $snmp->cd11_rateset(); | ||||
|   my $cd11_uptime  = $snmp->cd11_uptime(); | ||||
| @@ -77,6 +71,9 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|         }); | ||||
|     }); | ||||
|   } | ||||
|  | ||||
|   return Status->info(sprintf ' [%s] macsuck - processed %s wireless nodes', | ||||
|     $device->ip, scalar keys %{ $cd11_txrate }); | ||||
| }); | ||||
|  | ||||
| true; | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package App::Netdisco::Worker::Plugin::Vlan::Native; | ||||
| package App::Netdisco::Worker::Plugin::Vlan::Core; | ||||
|  | ||||
| use Dancer ':syntax'; | ||||
| use App::Netdisco::Worker::Plugin; | ||||
| @@ -18,7 +18,7 @@ register_worker({ phase => 'early', driver => 'snmp' }, sub { | ||||
|   vars->{'iid'} = get_iid($snmp, vars->{'port'}) | ||||
|     or return Status->error("Failed to get port ID for [$pn] from $device"); | ||||
|  | ||||
|   return Status->noop("Vlan set can continue."); | ||||
|   return Status->info("Vlan set can continue."); | ||||
| }); | ||||
|  | ||||
| register_worker({ phase => 'main', driver => 'snmp' }, sub { | ||||
|   | ||||
| @@ -3,7 +3,7 @@ package App::Netdisco::Worker::Status; | ||||
| use strict; | ||||
| use warnings; | ||||
|  | ||||
| use Dancer qw/:moose :syntax !error/; | ||||
| use Dancer qw/:moose :syntax !error !info/; | ||||
|  | ||||
| use Moo; | ||||
| use namespace::clean; | ||||
| @@ -26,24 +26,29 @@ The status can be: | ||||
|  | ||||
| =item * C<done> | ||||
|  | ||||
| At C<check> phase, indicates the action may continue. At other phases, | ||||
| indicates the worker has completed without error or has no work to do. | ||||
| success and this could be the outcome of the action | ||||
|  | ||||
| =item * C<error> | ||||
| =item * C<info> | ||||
|  | ||||
| Indicates that there is an error condition. Also used to quit a worker without | ||||
| side effects that C<done> and C<defer> have. | ||||
| success and notable but not the main goal of the action | ||||
|  | ||||
| =item * C<defer> | ||||
|  | ||||
| Quits a worker. If the final recorded outcome for a device is C<defer> several | ||||
| times in a row, then it may be skipped from further jobs. | ||||
| failed to connect, should increment defer counters | ||||
|  | ||||
| =item * C<error> | ||||
|  | ||||
| had a problem and was unsuccessful | ||||
|  | ||||
| =item * C<()> | ||||
|  | ||||
| skipped the worker for some reason but not fatal | ||||
|  | ||||
| =back | ||||
|  | ||||
| =head1 METHODS | ||||
|  | ||||
| =head2 done, error, defer | ||||
| =head2 done, info, defer, error | ||||
|  | ||||
| Shorthand for new() with setting param, accepts log as arg. | ||||
|  | ||||
| @@ -58,21 +63,10 @@ sub _make_new { | ||||
|   return $new; | ||||
| } | ||||
|  | ||||
| sub error { shift->_make_new('error', @_) } | ||||
| sub done  { shift->_make_new('done', @_)  } | ||||
| sub info  { shift->_make_new('info', @_)  } | ||||
| sub defer { shift->_make_new('defer', @_) } | ||||
|  | ||||
| =head2 noop | ||||
|  | ||||
| Simply logs a message at debug level if passed, and returns true. Used for | ||||
| consistency with other Status class methods but really does nothing. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| sub noop { | ||||
|   debug $_[1] if $_[1]; | ||||
|   return true; | ||||
| } | ||||
| sub error { shift->_make_new('error', @_) } | ||||
|  | ||||
| =head2 is_ok | ||||
|  | ||||
| @@ -84,7 +78,7 @@ sub is_ok { return $_[0]->status eq 'done' } | ||||
|  | ||||
| =head2 not_ok | ||||
|  | ||||
| Returns true if status is C<error> or C<defer>. | ||||
| Returns true if status is C<error>, C<defer>, or C<info>. | ||||
|  | ||||
| =cut | ||||
|  | ||||
| @@ -98,8 +92,9 @@ A numeric constant for the status, to allow comparison. | ||||
|  | ||||
| sub level { | ||||
|   my $self = shift; | ||||
|   return (($self->status eq 'done') ? 3 | ||||
|                                     : ($self->status eq 'defer') ? 2 : 1); | ||||
|   return (($self->status eq 'done')  ? 4 | ||||
|         : ($self->status eq 'info')  ? 3 | ||||
|         : ($self->status eq 'defer') ? 2 : 1); | ||||
| } | ||||
|  | ||||
| 1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user