2017-03-15 3 views
1

하고 싶습니다. (제가 생각한) 꽤 간단한 것이 될 것입니다. 내가 dicts로 표현이 모든 항목이, 내 코드에서LDIF를 파이썬과 함께 사용하여 LDAP의 속성을 삭제하십시오.

dn: cn=myorg,ou=teams,ou=groups,o=company,c=us 
cn: myorg 
objectClass: top 
objectClass: CompanyTeams 
objectClass: groupOfUniqueNames 
owner: cn=john,ou=people,o=company,c=us 
uniqueMember: cn=bob,ou=people,o=company,c=us 
uniqueMember: cn=bill,ou=people,o=company,c=us 
uniqueMember: cn=carol,ou=people,o=company,c=us 
uniqueMember: cn=frank,ou=people,o=company,c=us 
uniqueMember: cn=alice,ou=people,o=company,c=us 

: I는 LDAP (LDIF 형식)이 보이는 항목이 있습니다. 필자는 파이썬의 LDIF 기록기를 사용하여 적절한 LDIF에이 항목을 기록합니다. 모든 것을 내보내기가 쉽습니다.

def dump_ldif(self): 
    writer = LDIFWriter(open('entrybackup.ldif', 'wb')) 
     writer.unparse(cn=myorg, self.all_the_teams.get_teamstr_by_name('{'objectClass': ['top', 'CompanyTeams', 'groupOfUniqueNames']'owner': ['cn=john,ou=people,o=company,c=us'], 'uniqueMember': ['uniqueMember: cn=bob,ou=people,o=company,c=us','uniqueMember: cn=bill,ou=people,o=company,c=us','uniqueMember: cn=carol,ou=people,o=company,c=us','uniqueMember: cn=frank,ou=people,o=company,c=us','uniqueMember: cn=alice,ou=people,o=company,c=us'], 'cn': ['myorg']}') 

그러나 삭제/수정 연산자를 사용하는 LDIF 출력은 어떻게합니까? 내가 멀리 가고 싶어의 uniqueMember의 목록이 있습니다

['cn=bob,ou=people,o=company,c=us', 'cn=bill,ou=people,o=company,c=us'] 

그리고 (나는 믿는다)이 내 목록에서 당기 LDIF 형식의 최종 목표입니다 :

dn: cn=myorg,ou=teams,ou=groups,o=company,c=us 
changetype: modify 
delete: uniqueMember 
uniqueMember: cn=bob,ou=people,o=company,c=us 
uniqueMember: cn=bill,ou=people,o=company,c=us 

는 일부는 없을까 Python (2.7)에서이 작업을 수행하는 간단한 방법은 무엇입니까? 미쳤다고 느끼기 시작 했어. 참고 : 텍스트 출력/조작 만하면되지만이 출력을 작성하려면 LDIFWriter를 사용하고 싶습니다. 난 단지 '삭제'LDIF 지시어를 출력하는 구문을 찾고 싶습니다.

답변

0

필자는 파이썬 전문가가 아니지만 LDAP는 제 케이크입니다.

작성자에게 전달할 항목은 단순히 값이있는 데이터 개체이며, LDIFWriter은 실제로 구문을 LDIF로 변환하는 간단한 클래스입니다.

난 당신이, 당신의 수정 입장LDIFWriter 위에 다음 패스를,이 같은 변환되어 수행해야한다고 생각하는 것 :

entry={ 'changetype' : ['modify'], 
      'delete': ['uniqueMember'], 
     'uniqueMember': ['cn=bob,ou=people,o=company,c=us','cn=bill,ou=people,o=company,c=us'], 
     } 
writer.unparse('cn=myorg', entry) 

편집

당신이 만약을 deletes이라는 삭제 된 사용자가있는 배열이 있다면 다음과 같이 항목에 넣을 수 있습니다.

'uniqueMember': deletes 

작동 :-)

+0

** ** 천사처럼 ** 감사합니다. 이 솔루션은 훌륭하게 작동했습니다. – Chloe