Blame SOURCES/authconfig-6.2.8-sssd-do-not-write-PAM-if-no-sssd-conf.patch

977b74
diff -Naur old/authinfo.py new/authinfo.py
977b74
--- old/authinfo.py	2017-04-28 12:04:32.204470232 +0200
977b74
+++ new/authinfo.py	2017-04-28 12:10:10.534170041 +0200
977b74
@@ -1432,6 +1432,7 @@
977b74
 		self.sssdConfig = None
977b74
 		self.sssdDomain = None
977b74
 		self.forceSSSDUpdate = None
977b74
+		self.sssdConfigPresent = False
977b74
 		if SSSDConfig:
977b74
 			try:
977b74
 				self.sssdConfig = SSSDConfig.SSSDConfig()
977b74
@@ -1915,6 +1916,7 @@
977b74
 		self.sssdConfig = SSSDConfig.SSSDConfig()
977b74
 		try:
977b74
 			self.sssdConfig.import_config(all_configs[CFG_SSSD].origPath)
977b74
+			self.sssdConfigPresent = True
977b74
 		except (IOError, SSSDConfig.ParsingError):
977b74
 			self.sssdConfig = SSSDConfig.SSSDConfig()
977b74
 			self.sssdConfig.new_config()
977b74
@@ -3321,9 +3323,14 @@
977b74
 				domain.remove_provider(subtype)
977b74
 			domain.add_provider(newprovider, subtype)
977b74
 
977b74
-	def writeSSSDPAM(self):
977b74
+	def writeSSSDPAM(self, write_config):
977b74
 		if not self.sssdConfig:
977b74
 			return True
977b74
+		
977b74
+		if not self.sssdConfigPresent and not self.implicitSSSD:
977b74
+			# do not write to sssd.conf since the file does not exist yet and
977b74
+			# we are not creating the domain ourselves
977b74
+			return True
977b74
 
977b74
 		try:
977b74
 			pam = self.sssdConfig.get_service('pam')
977b74
@@ -3339,10 +3346,11 @@
977b74
 				pass
977b74
 
977b74
 		self.sssdConfig.save_service(pam)
977b74
-		try:
977b74
-			self.sssdConfig.write(all_configs[CFG_SSSD].origPath)
977b74
-		except IOError:
977b74
-			pass
977b74
+		if write_config:
977b74
+			try:
977b74
+				self.sssdConfig.write(all_configs[CFG_SSSD].origPath)
977b74
+			except IOError:
977b74
+				pass
977b74
 
977b74
 		return True
977b74
 
977b74
@@ -3352,7 +3360,8 @@
977b74
 
977b74
 		all_configs[CFG_SSSD].backup(self.backupDir)
977b74
 		
977b74
-		self.writeSSSDPAM()
977b74
+		# do not write to the file yet since we will write all changes at ones
977b74
+		self.writeSSSDPAM(False)
977b74
 
977b74
 		if self.enableIPAv2:
977b74
 			# just save the backup
977b74
@@ -4172,7 +4181,7 @@
977b74
 			if self.implicitSSSD or self.implicitSSSDAuth:
977b74
 				ret = ret and self.writeSSSD()
977b74
 			elif self.enableSSSDAuth:
977b74
-				ret = ret and self.writeSSSDPAM()
977b74
+				ret = ret and self.writeSSSDPAM(True)
977b74
 			ret = ret and self.writeNSS()
977b74
 			ret = ret and self.writePAM()
977b74
 			ret = ret and self.writeSysconfig()