|
704 |
''' |
704 |
''' |
705 |
sync changes from UCS stored in given file |
705 |
sync changes from UCS stored in given file |
706 |
''' |
706 |
''' |
707 |
try: |
|
|
708 |
f = file(filename, 'r') |
709 |
except IOError: # file not found so there's nothing to sync |
710 |
return True |
711 |
|
707 |
|
712 |
dn, new, old, old_dn = cPickle.load(f) |
708 |
try: |
|
|
709 |
with open(filename) as fob: |
710 |
(dn, new, old, old_dn) = cPickle.load(fob) |
711 |
except IOError: |
712 |
return True # file not found so there's nothing to sync |
713 |
except (cPickle.UnpicklingError, EOFError) as e: |
714 |
message = 'file emtpy' if isinstance(e, EOFError) else e.message |
715 |
ud.debug(ud.LDAP, ud.WARN, |
716 |
'__sync_file_from_ucs: invalid pickle file {}: {}'.format(filename, message)) |
717 |
# ignore corrupted pickle file, but safe as rejected to not try again |
718 |
self._save_rejected_ucs(filename, 'unknown') |
719 |
return False |
713 |
|
720 |
|
714 |
if dn == 'cn=Subschema': |
721 |
if dn == 'cn=Subschema': |
715 |
return True |
722 |
return True |
|
1037 |
if not filename == "%s/tmp" % self.baseConfig['%s/s4/listener/dir' % self.CONFIGBASENAME]: |
1044 |
if not filename == "%s/tmp" % self.baseConfig['%s/s4/listener/dir' % self.CONFIGBASENAME]: |
1038 |
if filename not in self.rejected_files: |
1045 |
if filename not in self.rejected_files: |
1039 |
try: |
1046 |
try: |
1040 |
f = file(filename, 'r') |
1047 |
with open(filename) as fob: |
1041 |
except IOError: # file not found so there's nothing to sync |
1048 |
(dn, new, old, old_dn) = cPickle.load(fob) |
|
|
1049 |
except IOError: |
1050 |
continue # file not found so there's nothing to sync |
1051 |
except (cPickle.UnpicklingError, EOFError) as e: |
1052 |
message = 'file emtpy' if isinstance(e, EOFError) else e.message |
1053 |
ud.debug(ud.LDAP, ud.WARN, |
1054 |
'poll_ucs: invalid pickle file {}: {}'.format(filename, message)) |
1055 |
# ignore corrupted pickle file, but safe as rejected to not try again |
1056 |
self._save_rejected_ucs(filename, 'unknown') |
1042 |
continue |
1057 |
continue |
1043 |
|
1058 |
|
1044 |
dn, new, old, old_dn = cPickle.load(f) |
|
|
1045 |
|
1046 |
for i in [0, 1]: # do it twice if the LDAP connection was closed |
1059 |
for i in [0, 1]: # do it twice if the LDAP connection was closed |
1047 |
try: |
1060 |
try: |
1048 |
sync_successfull = self.__sync_file_from_ucs(filename, traceback_level=traceback_level) |
1061 |
sync_successfull = self.__sync_file_from_ucs(filename, traceback_level=traceback_level) |
1049 |
- |
|
|