I am trying to write some code that plays nicely with several different directory servers.
I am using Net::LDAP.
I am modifying several different directories at the same time,
what is the preferred method of doing something like that?
#############################################################
## This sub will pass in an entry to be adjusted and a value
## to adjust with. It will only work on a single directory
## and a single task.
#############################################################
sub add_dir_one{
my ($dn, $entry_to_modify) = @_;
my $ldap = Net::LDAP->new($directory)
or die "Couldn't connect: $@\n";
my $mesg = $ldap->bind("cn=directory manager, ou=a really long dn",
+password => "password" )
or die "Could not bind $@\n";;
$ldap -> modify ($dn, add => {attribute_to_be_adjusted => $entry_to_
+beadded})
or die "Ya screwed up again!";}
}
#############################################################
## This sub will pass in an entry to be adjusted and a value
## to adjust with. It will only work on a second directory
## and a single task.
#############################################################
sub add_dir_2{
my ($dn2, $entry_to_modify) = @_;
my $ldap = Net::LDAP->new($directory2)
or die "Couldn't connect: $@\n";
my $mesg = $ldap->bind("cn=directory manager2, ou=a really long dn",
+ password => "password2" )
or die "Could not bind $@\n";;
$ldap -> modify ($dn2, add => {attribute_to_be_adjusted => $entry_to
+_beadded})
or die "Ya screwed up again!";}
}
or
#############################################################
## This sub will pass in an directory name, binding usre/password,
## action to be taken, entry to be adjusted and a value
## to adjust with. It will only work on a single directory
## and a single task.
#############################################################
sub modify_generic_directory{
my ($dir, $dir_manager, $pass, $action_to_be_taken, $entry_to_be_adj
+usted, $attribute_to_be_adjusted, $value_to_adjust_with) = @_;
my $ldap = Net::LDAP->new($dir)
or die "Couldn't connect: $@\n";
my $mesg = $ldap->bind($dir_manager, password => $pass)
or die "Could not bind $@\n";
$ldap -> modify ($entry_to_be_adjusted, $action_to_be_taken => {$att
+ribute_to_be_adjusted => $entry_to_be_adjusted})
or die "Ya screwed up again!";}
}
and then calling each like this:
&add_dir_one($entry_to_modify, $variable_that_is_adjusting);<br>
&modify_dir_two($entry_to_modify, $variable_that_is_adjusting);<br>
or
&modify_generic_directory($dir, $dir_manager, $pass, $action_to_be_tak
+en, $entry_to_be_adjusted, $attribute_to_be_adjusted, $value_to_adjus
+t_with);<br>
&modify_generic_directory($dir2, $dir_manager2, $pass2, $action_to_be_
+taken2, $entry_to_be_adjusted, $attribute_to_be_adjusted, $value_to_a
+djust_with);
I know there is not a single corect answer, I am just looking for guidelines.
"The social dynamics of the net are a direct consequence of the fact that nobody has yet developed a Remote Strangulation Protocol." -- Larry
Wall