Re: Adding New OU

Chris Ridd <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.ldap
Message-ID <[email protected]>
On 7 Dec 2009, at 11:06, Lupin Deterd wrote:

> On 12/7/09, Chris Ridd <[email protected]> wrote:
>> 
>> On 7 Dec 2009, at 09:38, Lupin Deterd wrote:
>> 
>>> Hi,
>>> 
>>> What is the correct syntax of adding an OU using Net::LDAP, I tried
>>> the following:
>>> !/usr/bin/perl -w
>>> 
>>> use 5.10.1; use strict;
>>> 
>>> use Net::LDAP; use Data::Dumper;
>>> 
>>> my $ldap = Net::LDAP->new("192.168.183.2") or die "$@"; my $mesg =
>>> $ldap->bind( "cn=admin,dc=lab,dc=net", password => 'xxx' );
>>> 
>>> $mesg = $ldap->add( "ou=Users,dc=lab,dc=net", attrs => [
>>> 
>>>   'ou'          => 'dc=Users',
>>>   'objectClass' => [ 'top', 'organizationalUnit' ]
>>> ]
>>> 
>>> );
>>> 
>>> say $mesg->error; say $mesg->code;
>>> 
>>> And got the following error:
>>> 
>>> value of naming attribute 'ou' is not present in entry 64
>>> 
>>> However using the ldapmodify command line, and using this following ldif,
>>> works:
>>> 
>>> dn: ou=Users,dc=lab,dc=net changetype: add objectclass: top
>>> objectclass: organizationalUnit ou: Users
>> 
>> In that case, your add call should say:
>> 
>>    'ou' => 'Users',
>> 
>> instead of:
>> 
>>    'ou' => 'dc=Users',
>> 
>> Cheers,
>> 
>> Chris
>> 
> Thanks Chris, it works.

No problem. You should also check that your bind is succeeding. It returns a $mesg object (like add does) and you should use its ->code() method in the same sort of way to see if it worked.

Cheers,

Chris
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.