68 source.group_base_scope, |
68 source.group_base_scope, |
69 self.searchgroupfilterstr, |
69 self.searchgroupfilterstr, |
70 attrs)) |
70 attrs)) |
71 return {} |
71 return {} |
72 |
72 |
73 def _process(self, etype, sdict): |
73 def _process(self, etype, sdict, raise_on_error=False): |
74 self.debug('fetched %s %s', etype, sdict) |
74 self.debug('fetched %s %s', etype, sdict) |
75 extid = sdict['dn'] |
75 extid = sdict['dn'] |
76 entity = self.extid2entity(extid, etype, **sdict) |
76 entity = self.extid2entity(extid, etype, |
|
77 raise_on_error=raise_on_error, **sdict) |
77 if entity is not None and not self.created_during_pull(entity): |
78 if entity is not None and not self.created_during_pull(entity): |
78 self.notify_updated(entity) |
79 self.notify_updated(entity) |
79 attrs = self.ldap2cwattrs(sdict, etype) |
80 attrs = self.ldap2cwattrs(sdict, etype) |
80 self.update_if_necessary(entity, attrs) |
81 self.update_if_necessary(entity, attrs) |
81 if etype == 'CWUser': |
82 if etype == 'CWUser': |
88 self.debug('processing ldapfeed source %s %s', self.source, self.searchfilterstr) |
89 self.debug('processing ldapfeed source %s %s', self.source, self.searchfilterstr) |
89 for userdict in self.user_source_entities_by_extid.itervalues(): |
90 for userdict in self.user_source_entities_by_extid.itervalues(): |
90 self._process('CWUser', userdict) |
91 self._process('CWUser', userdict) |
91 self.debug('processing ldapfeed source %s %s', self.source, self.searchgroupfilterstr) |
92 self.debug('processing ldapfeed source %s %s', self.source, self.searchgroupfilterstr) |
92 for groupdict in self.group_source_entities_by_extid.itervalues(): |
93 for groupdict in self.group_source_entities_by_extid.itervalues(): |
93 self._process('CWGroup', groupdict) |
94 self._process('CWGroup', groupdict, raise_on_error=raise_on_error) |
94 |
95 |
95 def handle_deletion(self, config, cnx, myuris): |
96 def handle_deletion(self, config, cnx, myuris): |
96 if config['delete-entities']: |
97 if config['delete-entities']: |
97 super(DataFeedLDAPAdapter, self).handle_deletion(config, cnx, myuris) |
98 super(DataFeedLDAPAdapter, self).handle_deletion(config, cnx, myuris) |
98 return |
99 return |