$xml = $self->dispatch( $job->dispatch );
$job->finish;
} else {
- my @dispatch = CWMP::Vendor->all_parameters( $self->store, $uid, $queue );
+ my @dispatch;
+# @dispatch = CWMP::Vendor->all_parameters( $self->store, $uid, $queue );
+warn "XXX", dump @dispatch;
@dispatch = CWMP::Vendor->vendor_config( $self->store, $uid, $queue ) unless @dispatch;
+warn "XXX", dump @dispatch;
$xml = $self->dispatch( @dispatch ) if @dispatch;
if ( ! $xml ) {
warn ">>> no more work for $uid sending empty response\n";
=cut
-my $debug = 0;
+my $debug = 1;
sub all_parameters {
my ( $self, $store, $uid, $queue ) = @_;
return;
}
-our $set_tried;
+our $tried;
sub vendor_config {
my ( $self, $store, $uid, $queue ) = @_;
my @refresh;
my $vendor = YAML::LoadFile 'vendor.yaml';
- $vendor = $vendor->{Parameter} || die "no Parameter in vendor.yaml";
+ $vendor = $vendor->{Parameter} || die "no Parameter in vendor.yaml";
+ $stored = $stored->{Parameter} || warn "no Parameter in stored ", dump($stored);
+
+ warn "# vendor.yaml ",dump $vendor;
foreach my $n ( keys %$vendor ) {
- if ( defined $stored->{$n} && $vendor->{$n} ne $stored->{$n} ) {
- next if $set_tried->{$uid}->{$n}++;
+ if ( ! exists $stored->{$n} ) {
+ warn "# $uid missing $n\n";
push @refresh, $n;
- $queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } );
+ } elsif ( $vendor->{$n} ne $stored->{$n} ) {
+ $queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } )
+ unless $tried->{$uid}->{$n}->{set}++;
+ warn "# set $uid $n $stored->{$n} -> $vendor->{$n}\n";
+ } else {
+ warn "# ok $uid $n\n";
}
}
return ( 'GetParameterValues', [ @refresh ] );
}
+ warn "# tried ",dump $tried;
+
return;
}