View | Details | Raw Unified | Return to bug 34648 | Differences between
and this patch

Collapse All | Expand All

(-)a/services/univention-s4-connector/modules/univention/s4connector/__init__.py (-10 / +22 lines)
 Lines 704-715   class ucs: Link Here 
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
 Lines 1037-1048   class ucs: Link Here 
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
- 

Return to bug 34648