|
|
|
@ -37,6 +37,7 @@ from cl_ldap import ldapUser
|
|
|
|
|
from client.progressbar import ProgressBar
|
|
|
|
|
from cl_utils import runOsCommand, getpathenv, getModeFile, removeDir, isMount
|
|
|
|
|
from _cl_keys import getKey, clearKey
|
|
|
|
|
from convertenv import convertEnv
|
|
|
|
|
|
|
|
|
|
lang().setLanguage(sys.modules[__name__])
|
|
|
|
|
|
|
|
|
@ -206,7 +207,7 @@ class ldapData(ldapUser):
|
|
|
|
|
return resSearch
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
def getNameRemoteServer(self,userName, osLinuxShort):
|
|
|
|
|
def getNameRemoteServer(self,userName, osLinuxShort, curHost):
|
|
|
|
|
"""Если профиль на удаленном сервере, то выдать DNS имя этого сервера
|
|
|
|
|
"""
|
|
|
|
|
searchPrevHost = self.searchPrevHost(userName, osLinuxShort)
|
|
|
|
@ -216,7 +217,7 @@ class ldapData(ldapUser):
|
|
|
|
|
prevHost = None
|
|
|
|
|
# если местоположение актуального профиля найти не удалось
|
|
|
|
|
# или его местоположение не на локальном сервере
|
|
|
|
|
if not prevHost or prevHost == osLinuxShort:
|
|
|
|
|
if not prevHost or prevHost == curHost:
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
return prevHost
|
|
|
|
@ -263,6 +264,9 @@ class client(share):
|
|
|
|
|
# словарь опций сервисов из /var/calculate/remote/server.env
|
|
|
|
|
optionsInfo = {}
|
|
|
|
|
|
|
|
|
|
# объект конвертирования из старого remote env файла
|
|
|
|
|
convObj = None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def removeVars(self):
|
|
|
|
|
"""Удаление переменных шаблонов
|
|
|
|
@ -510,7 +514,7 @@ class client(share):
|
|
|
|
|
# Создаем директорию для конфигурационных файлов
|
|
|
|
|
if not os.path.exists(pathConfig):
|
|
|
|
|
self.createUserDir(uid, gid, pathConfig, mode=False)
|
|
|
|
|
configFileName = os.path.join(pathConfig, self.configFileDesktop)
|
|
|
|
|
configFileName = os.path.join(homeTemplate, self.configFileDesktop)
|
|
|
|
|
if sync == "login":
|
|
|
|
|
# получить переменную files из секции Rsync файла
|
|
|
|
|
# .calculate.ini
|
|
|
|
@ -842,7 +846,8 @@ class client(share):
|
|
|
|
|
if replOn:
|
|
|
|
|
osLinuxShort = self.clVars.Get("os_linux_shortname")
|
|
|
|
|
remoteServer = self.ldapDataObj.getNameRemoteServer(userName,
|
|
|
|
|
osLinuxShort)
|
|
|
|
|
osLinuxShort,
|
|
|
|
|
domain)
|
|
|
|
|
# Получаем монтируемые директории
|
|
|
|
|
names, dictRes = self.getUserMountResources(userName, homeDir,
|
|
|
|
|
remoteServer)
|
|
|
|
@ -1277,7 +1282,7 @@ class client(share):
|
|
|
|
|
userLdapInfo = self.ldapDataObj.getUserLdapInfo(userName)
|
|
|
|
|
if userLdapInfo:
|
|
|
|
|
uid = int(userLdapInfo['uid'])
|
|
|
|
|
gid = int(userLdapInfo['uid'])
|
|
|
|
|
gid = int(userLdapInfo['gid'])
|
|
|
|
|
homeDir = userLdapInfo['home']
|
|
|
|
|
else:
|
|
|
|
|
self.printERROR(_("Can not found user %s in LDAP")%userName)
|
|
|
|
@ -1541,6 +1546,16 @@ class client(share):
|
|
|
|
|
|
|
|
|
|
def getInfoService(self, service, option, envFile=False):
|
|
|
|
|
"""Получить параметр сервиса из env"""
|
|
|
|
|
if not envFile:
|
|
|
|
|
if self.convObj == None:
|
|
|
|
|
# файл /var/calculate/remote/server.env
|
|
|
|
|
envFile = self.clVars.Get("cl_env_server_path")
|
|
|
|
|
if os.access(envFile, os.R_OK):
|
|
|
|
|
self.convObj = False
|
|
|
|
|
elif os.access("/var/calculate/remote/calculate.env", os.R_OK):
|
|
|
|
|
self.convObj = convertEnv()
|
|
|
|
|
if self.convObj:
|
|
|
|
|
return self.convObj.getVar(service, option)
|
|
|
|
|
if not self.optionsInfo:
|
|
|
|
|
if not envFile:
|
|
|
|
|
# файл /var/calculate/remote/server.env
|
|
|
|
|