develop
asamoukin 15 years ago
parent a361566980
commit 0811b6066a

@ -430,7 +430,10 @@ conjunction with the 'login' or 'logout'")
# DN хранения последнего посещенного пользователя
self.replHostsDN = self.addDN("ou=Worked","ou=Replication",
"ou=LDAP", self.ServicesDN)
# Файл репликации
self.replLogoutFile = ".logout"
self.skipHomeFile = ["Home","Disks","FTP",
self.replLogoutFile]
# Если атрибут установлен то значит (ошибка и отмонтируются
# пользовательские ресурсы)
self.errorAndUnmountUserRes = False
@ -802,8 +805,7 @@ conjunction with the 'login' or 'logout'")
if homeExists:
self.printWARNING(_("Home dir %s exists")%homeDir)
if set(os.listdir(homeDir))-set(["Home","Disks","FTP",\
self.replLogoutFile]):
if set(os.listdir(homeDir))-set(self.skipHomeFile):
if not applyAlways:
# Получаем пути к профилям постоянного наложения
alwProfilePath = self.getAlwaysProfilePath()
@ -1681,6 +1683,8 @@ or ld_bind_dn or ld_bind_pw")
return False
# Синхронизируем настройки
if sync:
# Короткое имя системы
osLinuxShort = self.clVars.Get("os_linux_shortname")
# Ошибка при монтировании unix ресурса удаленного сервера при
# включенной репликации
replErrorMount = False
@ -1710,7 +1714,13 @@ or ld_bind_dn or ld_bind_pw")
self.upgradeProfileClient(userName, homeDir)
# Если на текущем сервере в ресурсе unix есть файлы
# то синхронируем настройки
if os.listdir(defaultPath):
# Получаем директорию хранения профиля на сервере
# Получаем директорию хранения профиля на сервере
homeProfile = os.path.join(home, "." + userName, osLinuxShort)
if not os.path.exists(homeProfile):
homeProfile = os.path.join(home, "." + userName,
"." + osLinuxShort)
if os.listdir(homeProfile):
if not self.syncUser(userName, homeDir, "login", uid, gid,\
progress=progress,
host=self.clVars.Get('cl_remote_host')):
@ -1720,8 +1730,7 @@ or ld_bind_dn or ld_bind_pw")
else:
#Удаляем ненужные файлы
rmFiles = list(set(os.listdir(homeDir))-\
set(["Home","Disks","FTP",\
self.replLogoutFile]))
set(self.skipHomeFile))
for rmFile in rmFiles:
delFile = os.path.join(homeDir,rmFile)
if os.path.islink(delFile):
@ -1790,14 +1799,38 @@ or ld_bind_dn or ld_bind_pw")
# Переносим настройки пользователя в новую директорию
# .CLD
self.upgradeProfileClient(userName, homeDir)
if not self.syncUser(userName, homeDir, "login", uid, gid,\
progress=progress,host=prevHost):
if pathReplRun and mountServer == "remote":
replErrorSync = True
else:
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
# Получаем директорию хранения профиля на сервере
homeProfile = os.path.join(home, "." + userName, osLinuxShort)
if not os.path.exists(homeProfile):
homeProfile = os.path.join(home, "." + userName,
"." + osLinuxShort)
if os.listdir(homeProfile):
if not self.syncUser(userName, homeDir, "login", uid, gid,\
progress=progress,host=prevHost):
if pathReplRun and mountServer == "remote":
replErrorSync = True
else:
# Отмонтируем пользовательские ресурсы в случае ошибки
self.errorAndUnmountUserRes = True
return False
else:
#Удаляем ненужные файлы
rmFiles = list(set(os.listdir(homeDir))-\
set(self.skipHomeFile))
for rmFile in rmFiles:
delFile = os.path.join(homeDir,rmFile)
if os.path.islink(delFile):
os.unlink(delFile)
elif os.path.isfile(delFile):
os.remove(delFile)
elif os.path.isdir(delFile):
if not self.removeDir(delFile):
# Отмонтируем пользовательские ресурсы
# в случае ошибки
self.errorAndUnmountUserRes = True
return False
elif stat.S_ISSOCK(os.stat(delFile)[stat.ST_MODE]):
os.remove(delFile)
if pathReplRun and mountServer == "remote":
# В случае репликации перемонтируем ресурс профилей
# на текущий сервер (в случае необходимости)

Loading…
Cancel
Save