Make the batch nsupdate size configurable.
authorSteinar H. Gunderson <sesse@samfundet.no>
Sun, 23 Jun 2013 14:21:59 +0000 (16:21 +0200)
committerSteinar H. Gunderson <sesse@samfundet.no>
Sun, 23 Jun 2013 14:21:59 +0000 (16:21 +0200)
itkacl-2.1/config.pm
itkacl-2.1/sync-itkacl.pl

index c5e9742e7c526fabcd4a76482380ac0d4db89710..3362bdabac6a017125328b8d0cfdc56b62bf0ed9 100644 (file)
@@ -22,6 +22,8 @@ our $db_name = 'itkacl';
 our $db_user = 'itkacl';
 our $db_pass = undef;
 
 our $db_user = 'itkacl';
 our $db_pass = undef;
 
+our $max_updates_per_transaction = 1000;
+
 our $minimum_uid = 500;        
 
 # Users that are included even though they are below $minimum_uid.
 our $minimum_uid = 500;        
 
 # Users that are included even though they are below $minimum_uid.
index ccc4c56ef4e8c886c9a5569cb8b6846baf0b896c..868ee0f5b051ae9fb2c20dee6ea293138647bc1e 100755 (executable)
@@ -90,20 +90,20 @@ sub update_zone {
 
        for my $entry (keys %entries) {
                next if (exists($current_entries{$entry}));
 
        for my $entry (keys %entries) {
                next if (exists($current_entries{$entry}));
-               last if (++$num_lines == 1000);
+               last if (++$num_lines == $itkaclsyncconfig::max_updates_per_transaction);
                print NSUPDATE "update add $entry 10 A 127.0.0.1\n";
        }
        for my $entry (keys %current_entries) {
                next if (exists($entries{$entry}));
                print NSUPDATE "update add $entry 10 A 127.0.0.1\n";
        }
        for my $entry (keys %current_entries) {
                next if (exists($entries{$entry}));
-               last if (++$num_lines == 1000);
+               last if (++$num_lines == $itkaclsyncconfig::max_updates_per_transaction);
                print NSUPDATE "update delete $entry\n";
        }
        print NSUPDATE "send\n";
        close NSUPDATE;
 
        print "Made $num_lines updates.\n";
                print NSUPDATE "update delete $entry\n";
        }
        print NSUPDATE "send\n";
        close NSUPDATE;
 
        print "Made $num_lines updates.\n";
-       if ($num_lines >= 1000) {
-               print "Note: Hit limit of 1000 updates, will continue in a separate transaction.\n";
+       if ($num_lines >= $itkaclsyncconfig::max_updates_per_transaction) {
+               print "Note: Hit limit of $itkaclsyncconfig::max_updates_per_transaction updates, will continue in a separate transaction.\n";
                return 0;
        }
        return 1;
                return 0;
        }
        return 1;