#!/usr/bin/perl

use DataOneLdap;
use strict;

use Getopt::Long();

sub usage {
   my $message = $_[0];
   if (defined $message && length $message) {
      $message .= "\n"
         unless $message =~ /\n$/;
   }

   my $command = $0;
   $command =~ s#^.*/##;

   print STDERR (
      $message,
      "usage: $command [--help] [--id nodeId]\n" 
   );

   die("\n")
}

my $nodeid;
my $all;
my $help;
my $password;
my $mesg;

Getopt::Long::GetOptions(
   'id=s' => \$nodeid,
   'help!' => \$help,
   'all' => \$all
) or usage("Invalid commmand line options.");
 
usage("The identifier of the node or all must be specified.") if (defined $help);

usage("") unless ((defined $all) || (defined $nodeid));

my $d1Ldap = new DataOneLdap();

my $ldap = $d1Ldap->connect();
if (defined $all) 
	{
	$mesg = $ldap->search( filter=>"&(objectClass=d1Node) (d1NodeType=mn)", 
                        base=>"dc=dataone,dc=org");
	} else {
	$mesg = $ldap->search(  filter=>"(cn=$nodeid)", 
                        base=>"dc=dataone,dc=org");

	}
my @entries = $mesg->entries;
foreach my $entry (@entries) 
	{
	my $dn = $entry->dn();
	print "DN = $dn\n";
	$ldap->modify($dn, replace => {'d1NodeLastHarvested', '1900-01-01T00:00:00.000+00:00'});
	}

$d1Ldap->disconnect();