=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;
+ } elsif ( $vendor->{$n} ne $stored->{$n}
+ && ( ! $tried->{$uid}->{$n}->{set} || $tried->{$uid}->{$n}->{set} ne $vendor->{$n} )
+ ) {
$queue->enqueue( 'SetParameterValues', { $n => $vendor->{$n} } );
+ push @refresh, $n;
+ $tried->{$uid}->{$n}->{set} = $vendor->{$n};
+ warn "# set $uid $n $stored->{$n} -> $vendor->{$n}\n";
+ } elsif ( $tried->{$uid}->{$n}->{set} eq $vendor->{$n} && $vendor->{$n} ne $stored->{$n} ) {
+ warn "ERROR $uid $n $stored->{$n} != $vendor->{$n}\n";
+ } else {
+ warn "# ok $uid $n = $stored->{$n}\n";
}
}
- if ( @refresh ) {
- $queue->enqueue( 'GetParameterValues', [ @refresh ] );
- warn "vendor_hook $uid SetParameterValues ", dump( @refresh );
- return ( 'GetParameterValues', [ @refresh ] );
- }
+ return ( 'GetParameterValues', [ @refresh ] ) if @refresh;
+
+ warn "# tried ",dump $tried;
return;
}