|
|
|
@ -5091,10 +5091,15 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
# другого компьютера
|
|
|
|
|
if options.has_key("repl"):
|
|
|
|
|
# Находим имена сервисов репликации для этого сервера
|
|
|
|
|
# и инициализируются переменные
|
|
|
|
|
replServices = self.getArchReplServices()
|
|
|
|
|
# Cоздаем объект репликации
|
|
|
|
|
objRepl = servRepl()
|
|
|
|
|
# Определяем поддерживает ли openldap репликацию
|
|
|
|
|
if not objRepl.supportReplOpenldap(self.clVars):
|
|
|
|
|
return False
|
|
|
|
|
if not self.restoreServer(False,replServices):
|
|
|
|
|
return False
|
|
|
|
|
objRepl = servRepl()
|
|
|
|
|
# Изменяем и сохраняем переменные
|
|
|
|
|
if not objRepl.prepAndSaveEnv():
|
|
|
|
|
return False
|
|
|
|
@ -5134,10 +5139,16 @@ outdated. If the backup is obsolete, use cl-backup."))
|
|
|
|
|
# Добавляем в крон скрипт для чистки директорий
|
|
|
|
|
if not objRepl.cronReplicationON():
|
|
|
|
|
return False
|
|
|
|
|
# Добавляем ветку репликации
|
|
|
|
|
if not objRepl.addReplDN():
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
# Удаляем из крона скрипт для чистки директорий
|
|
|
|
|
if not objRepl.cronReplicationOFF():
|
|
|
|
|
return False
|
|
|
|
|
return False
|
|
|
|
|
# Удаляем служебную ветку ldap
|
|
|
|
|
if not objRepl.delSysDN():
|
|
|
|
|
return False
|
|
|
|
|
# Настройка почты
|
|
|
|
|
if serviceUpdate in ["all","mail"]:
|
|
|
|
|
if options.has_key("t"):
|
|
|
|
@ -8002,7 +8013,7 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
if not self.addReplWorkedUser(login):
|
|
|
|
|
errorFlag = True
|
|
|
|
|
errMessage = _("Can not add user %s in LDAP branch \
|
|
|
|
|
'Replication'")%str(login)
|
|
|
|
|
'Replication'")%str(login)
|
|
|
|
|
else:
|
|
|
|
|
errorFlag = True
|
|
|
|
|
errMessage = _("Samba user %s is not found")%str(login)
|
|
|
|
@ -8204,10 +8215,24 @@ calculate-server")
|
|
|
|
|
os.remove(fileNameCron)
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def supportReplOpenldap(self, clVars):
|
|
|
|
|
"""Определяем поддерживает ли openldap репликацию"""
|
|
|
|
|
clProf = cl_profile.profile(clVars)
|
|
|
|
|
openLdapVesion = clProf.applyFuncProfile("#-pkg(openldap)-#","","")
|
|
|
|
|
vesionInst, versionComp = clProf._convertVers(openLdapVesion, "2.4")
|
|
|
|
|
if vesionInst <= versionComp:
|
|
|
|
|
self.printERROR(_("openldap-%s does not support replication, \
|
|
|
|
|
use the new version. (openldap > 2.4)"))
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def setupReplServer(self, options, service):
|
|
|
|
|
"""Начальная настройка репликации"""
|
|
|
|
|
# Cоздаем объект переменные
|
|
|
|
|
self.createClVars()
|
|
|
|
|
# Определяем поддерживает ли openldap репликацию
|
|
|
|
|
if not self.supportReplOpenldap(self.clVars):
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key('off'):
|
|
|
|
|
if self.clVars.Get("ld_repl_set") == "off":
|
|
|
|
|
self.printWARNING(_("Replication off for all services"))
|
|
|
|
@ -8377,18 +8402,11 @@ calculate-server")
|
|
|
|
|
if not shareLdap.getLdapObjInFile(self):
|
|
|
|
|
return False
|
|
|
|
|
if options.has_key('r'):
|
|
|
|
|
# Добавляем ветку репликации
|
|
|
|
|
if not self.addReplDN():
|
|
|
|
|
return False
|
|
|
|
|
# Проверяем существует ли id текущего сервера
|
|
|
|
|
if not self.clVars.Get("ld_repl_id"):
|
|
|
|
|
self.printERROR(_("Not found 'serverID' this server") + " ...")
|
|
|
|
|
self.printERROR(_("variable 'ld_repl_id' empty") + " ...")
|
|
|
|
|
return False
|
|
|
|
|
# Удаляем служебную ветку ldap
|
|
|
|
|
if options.has_key('off') and self.clVars.Get("ld_repl_set") == "off":
|
|
|
|
|
if not self.delSysDN():
|
|
|
|
|
return False
|
|
|
|
|
# Делаем update cервиса Samba в случае опции off
|
|
|
|
|
if service == "unix" and self.clVars.Get("sr_samba_set") == "on" and\
|
|
|
|
|
options.has_key('off'):
|
|
|
|
@ -8397,14 +8415,7 @@ calculate-server")
|
|
|
|
|
# Делаем update сервиса
|
|
|
|
|
if not self.servLdapObj.updateServer({},service,self.clVars):
|
|
|
|
|
return False
|
|
|
|
|
if self.clVars.Get("ld_repl_set") == "on":
|
|
|
|
|
# Добавляем в крон скрипт для чистки директорий
|
|
|
|
|
if not self.cronReplicationON():
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
# Удаляем из крона скрипт для чистки директорий
|
|
|
|
|
if not self.cronReplicationOFF():
|
|
|
|
|
return False
|
|
|
|
|
if self.clVars.Get("ld_repl_set") != "on":
|
|
|
|
|
# Удаляем переменные
|
|
|
|
|
self.clVars.Delete("ld_repl_servers","local","server")
|
|
|
|
|
self.clVars.Delete("ld_repl_samba_servers","local","server")
|
|
|
|
|