From: Vic G. <vg...@co...> - 2001-06-29 16:53:05
|
I just wish that I could stop beating my head against the wall..... I'm trying to add a record to our LDAP server using Net::LDAP. I've successfully modified and deleted records, so I know that our install should be good, and I've gotten the basics down. I'm not much of a perl programmer (more experience with C), so it's possible I'm just missing some obvious way to do this in Perl..... I've got a variable number of attributes that I'm trying to add, so I first tried... $ldap->add ($dn, attrs=>%hashcontainingattribute/valuepairs); That gave me a An invalid parameter was specified error. So, I tried "add"ing everything into an entry object (including a $dn attribute), and use that variant $ldap->add ($entry); This gives me an encoding error. Anything seem obvious to anyone? Thanks! Vic ---- Vic Goldberg Programer Analyst Lead, CIT Cornell University (607) 254-7441 (Voice) (607) 255-6982 (Fax) "Do not argue with Dragons, for you are crunchy and taste good dipped in ketchup. " |
From: Clif H. <cl...@di...> - 2001-06-29 17:16:33
|
> > I just wish that I could stop beating my head against the wall..... > > I'm trying to add a record to our LDAP server using Net::LDAP. I've > successfully modified and deleted records, so I know that our install > should be good, and I've gotten the basics down. I'm not much of a perl > programmer (more experience with C), so it's possible I'm just missing some > obvious way to do this in Perl..... > > I've got a variable number of attributes that I'm trying to add, so I first > tried... > > $ldap->add ($dn, attrs=>%hashcontainingattribute/valuepairs); > > That gave me a An invalid parameter was specified error. > > So, I tried "add"ing everything into an entry object (including a $dn > attribute), and use that variant > > $ldap->add ($entry); > > This gives me an encoding error. > > Anything seem obvious to anyone? Thanks! > > Vic > > ---- > Vic Goldberg > Programer Analyst Lead, CIT > Cornell University > (607) 254-7441 (Voice) (607) 255-6982 (Fax) > "Do not argue with Dragons, > for you are crunchy and taste good dipped in ketchup. " > > > You are using a hash for attribute/value pairs, it needs an array. Example; $mesg = $ldap->add( $DN, attrs => [ name => 'Graham Barr', attr => 'value1', attr => 'value2', multi => [qw(value1 value2)] ] ); Regards, Clif |
From: Vic G. <vg...@co...> - 2001-06-29 17:41:45
|
Thanks, Cliff - but my basic problem is that I'm trying to use a variable list of attributes. I'm peering through the archives, and haven't found one that makes clear to me the best way to add a record with variable attribute list - I understand that it should be an array, but haven't found a way to make it actually work. Vic At 01:16 PM 6/29/01, Clif Harden wrote: > > > > I just wish that I could stop beating my head against the wall..... > > > > I'm trying to add a record to our LDAP server using Net::LDAP. I've > > successfully modified and deleted records, so I know that our install > > should be good, and I've gotten the basics down. I'm not much of a perl > > programmer (more experience with C), so it's possible I'm just missing > some > > obvious way to do this in Perl..... > > > > I've got a variable number of attributes that I'm trying to add, so I > first > > tried... > > > > $ldap->add ($dn, attrs=>%hashcontainingattribute/valuepairs); > > > > That gave me a An invalid parameter was specified error. > > > > So, I tried "add"ing everything into an entry object (including a $dn > > attribute), and use that variant > > > > $ldap->add ($entry); > > > > This gives me an encoding error. > > > > Anything seem obvious to anyone? Thanks! > > > > Vic > > > > ---- > > Vic Goldberg > > Programer Analyst Lead, CIT > > Cornell University > > (607) 254-7441 (Voice) (607) 255-6982 (Fax) > > "Do not argue with Dragons, > > for you are crunchy and taste good dipped in ketchup. " > > > > > > > >You are using a hash for attribute/value pairs, it needs >an array. > >Example; > > $mesg = $ldap->add( $DN, > attrs => [ > name => 'Graham Barr', > attr => 'value1', > attr => 'value2', > multi => [qw(value1 value2)] > ] > ); > > >Regards, > >Clif ---- Vic Goldberg Programer Analyst Lead, CIT Cornell University (607) 254-7441 (Voice) (607) 255-6982 (Fax) "Do not argue with Dragons, for you are crunchy and taste good dipped in ketchup. " |
From: Clif H. <cl...@di...> - 2001-06-29 18:39:14
|
> > Thanks, Cliff - but my basic problem is that I'm trying to use a variable > list of attributes. I'm peering through the archives, and haven't found > one that makes clear to me the best way to > add a record with variable attribute list - I understand that it should be > an array, but haven't found a way to make it actually work. > > Vic > > At 01:16 PM 6/29/01, Clif Harden wrote: > > > > > > I just wish that I could stop beating my head against the wall..... > > > > > > I'm trying to add a record to our LDAP server using Net::LDAP. I've > > > successfully modified and deleted records, so I know that our install > > > should be good, and I've gotten the basics down. I'm not much of a perl > > > programmer (more experience with C), so it's possible I'm just missing > > some > > > obvious way to do this in Perl..... > > > > > > I've got a variable number of attributes that I'm trying to add, so I > > first > > > tried... > > > > > > $ldap->add ($dn, attrs=>%hashcontainingattribute/valuepairs); ^ | This is a hash or associative array NOT the same as general array. You need a general array. Since you want varying attributes from entry to entry you could do the following; @ADD = (); # Create a new array # do the next 2 lines in some sort of loop. push(@ADD, "attribute"); # add attribute push(@ADD, "value"); # add attribute`s value # # When you are ready to add the entry to the directory # do; $mesg = $ldap->add( $DN, attrs => [ @ADD ] ); Regards, Clif |
From: Vic G. <vg...@co...> - 2001-06-30 18:41:18
|
Thanks! I actually got the entry->add method to work - seems that I had a bad attribute name, and didn't catch it. Vic At 02:38 PM 6/29/01, Clif Harden wrote: > > > > Thanks, Cliff - but my basic problem is that I'm trying to use a variable > > list of attributes. I'm peering through the archives, and haven't found > > one that makes clear to me the best way to > > add a record with variable attribute list - I understand that it should be > > an array, but haven't found a way to make it actually work. > > > > Vic > > > > At 01:16 PM 6/29/01, Clif Harden wrote: > > > > > > > > I just wish that I could stop beating my head against the wall..... > > > > > > > > I'm trying to add a record to our LDAP server using Net::LDAP. I've > > > > successfully modified and deleted records, so I know that our install > > > > should be good, and I've gotten the basics down. I'm not much of a > perl > > > > programmer (more experience with C), so it's possible I'm just missing > > > some > > > > obvious way to do this in Perl..... > > > > > > > > I've got a variable number of attributes that I'm trying to add, so I > > > first > > > > tried... > > > > > > > > $ldap->add ($dn, attrs=>%hashcontainingattribute/valuepairs); > ^ > | This is a hash or associative array >NOT the same as general array. You need a general array. > > >Since you want varying attributes from entry to entry you could >do the following; > >@ADD = (); # Create a new array > ># do the next 2 lines in some sort of loop. > >push(@ADD, "attribute"); # add attribute >push(@ADD, "value"); # add attribute`s value > > # > # When you are ready to add the entry to the directory > # do; > > $mesg = $ldap->add( $DN, attrs => [ @ADD ] ); > >Regards, > >Clif ---- Vic Goldberg Programer Analyst Lead, CIT Cornell University (607) 254-7441 (Voice) (607) 255-6982 (Fax) "Do not argue with Dragons, for you are crunchy and taste good dipped in ketchup. " |