Изменена нумерация версий

Изменен метод включения репликации

git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@1061 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 15 years ago
parent e24df35af8
commit a5151d83f9

@ -11,4 +11,10 @@ objectClass: top
objectClass: organizationalUnit
ou: #-ld_repl_worked_login-#
# Mail
dn: #-ld_repl_mail_dn-#
objectClass: top
objectClass: organizationalUnit
ou: #-ld_repl_mail_login-#

@ -404,4 +404,37 @@ class fillVars(object, cl_base.glob_attr):
netAllow = self.Get("os_net_allow")
if netAllow:
return netAllow
return ""
return ""
def get_ld_repl_mail_dn(self):
"""DN ветки хранения реплицируемых алиасов"""
return "ou=%s,%s" %(self.Get('ld_repl_mail_login'),
self.Get('ld_repl_dn'))
def get_ld_repl_mail_set(self):
"""Включена или нет репликация для сервиса Mail"""
replMailServers = self.Get("ld_repl_mail_servers")
if replMailServers:
replMailServers = replMailServers.split(",")
else:
return "off"
hostName = self.Get('os_net_hostname')
domain = self.Get('os_net_domain')
fullHostName = "%s.%s"%(hostName,domain)
if fullHostName in replMailServers:
return "on"
return "off"
def get_ld_repl_unix_set(self):
"""Включена или нет репликация для сервиса Unix"""
replUnixServers = self.Get("ld_repl_unix_servers")
if replUnixServers:
replUnixServers = replUnixServers.split(",")
else:
return "off"
hostName = self.Get('os_net_hostname')
domain = self.Get('os_net_domain')
fullHostName = "%s.%s"%(hostName,domain)
if fullHostName in replUnixServers:
return "on"
return "off"

@ -42,7 +42,7 @@ import tempfile
# Вывод в строку ввода
import readline
Version = "calculate-server 2.0.8"
Version = "calculate-server 2.0.9"
tr = cl_base.lang()
tr.setLanguage(sys.modules[__name__])
@ -8601,9 +8601,17 @@ use the new version. (openldap > 2.4)")%openLdapVesion)
if self.clVars.Get("ld_repl_set") == "off":
self.printWARNING(_("Replication off for all services"))
return True
elif service == "unix" and\
self.clVars.Get("ld_repl_unix_set") == "off":
self.printWARNING(_("Replication off for service %s")%"Unix")
return True
elif service == "samba" and\
self.clVars.Get("ld_repl_samba_set") == "off":
self.printWARNING(_("Replication off for service Samba"))
self.printWARNING(_("Replication off for service %s")%"Samba")
return True
elif service == "mail" and\
self.clVars.Get("ld_repl_mail_set") == "off":
self.printWARNING(_("Replication off for service %s")%"Mail")
return True
self.printWARNING(_("Undo can be achieved by executing a command"))
self.printWARNING(_("when the backup was created on this server \
@ -8702,27 +8710,38 @@ together with option '-r'") + " ...")
return False
if options.has_key('r'):
replSambaServers = self.clVars.Get("ld_repl_samba_servers")
if replSambaServers:
replSambaServers = replSambaServers.split(",")
replUnixServers =list(\
set(replSambaServers)|set(replServers))
else:
replUnixServers = replServers
replMailServers = self.clVars.Get("ld_repl_mail_servers")
dictServers = {"samba":replSambaServers,
"mail":replMailServers,
"unix":",".join(replServers)}
listServersRepl = map(lambda x: (x[0],set(x[1].split(","))),
filter(lambda x: x[1],
dictServers.items()))
# Все серверы репликации
replAllServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
listServersRepl,("",set()))[1])
# Серверы репликации для ветки Unix
replUnixServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
filter(lambda x: x[0] in ['samba','unix'],
listServersRepl),("",set()))[1])
# Устанавливаем переменную серверы репл. для Unix сервиса
self.clVars.Set("ld_repl_unix_servers",
",".join(replUnixServers),True)
if replSambaServers:
replAllServers = list(\
set(replUnixServers)|set(replSambaServers))
else:
replAllServers = replUnixServers
# Устанавливаем переменную серверы репл. для всех сервисов
self.clVars.Set("ld_repl_servers",
",".join(replAllServers),True)
elif options.has_key('off'):
# Вылючаем репликацию
self.clVars.Set("ld_repl_set", "off", True)
# Вылючаем репликацию для сервисов Samba и Mail
if self.clVars.Get("ld_repl_mail_set") == "on" and\
self.clVars.Get("ld_repl_mail_servers"):
self.clVars.Set("ld_repl_set", "on", True)
# Устанавливаем переменную серверы репл. для всех сервисов
self.clVars.Set("ld_repl_servers",
self.clVars.Get("ld_repl_mail_servers"),True)
else:
self.clVars.Set("ld_repl_set", "off", True)
self.clVars.Set("ld_repl_samba_set", "off", True)
self.clVars.Set("ld_repl_unix_set", "off", True)
elif service == "samba":
if self.clVars.Get("sr_samba_set") != "on":
self.printERROR(\
@ -8734,19 +8753,67 @@ together with option '-r'") + " ...")
if options.has_key('off'):
# Очищаем cерверы репликации Samba
self.clVars.Set("ld_repl_samba_servers", "", True)
replServers = []
replSambaServers = self.clVars.Get("ld_repl_samba_servers")
if replSambaServers:
replSambaServers = replSambaServers.split(",")
setReplUnixServers = set(replSambaServers)^set(replUnixServers)
replSambaServers = replServers
replUnixServers = list(setReplUnixServers|set(replSambaServers))
replMailServers = self.clVars.Get("ld_repl_mail_servers")
# Находим разницу между серверами Samba и Unix
diffReplServers = list(set(replSambaServers)^set(replUnixServers))
dictServers = {"samba":",".join(replServers),
"mail":replMailServers,
"unix":",".join(diffReplServers)}
listServersRepl = map(lambda x: (x[0],set(x[1].split(","))),
filter(lambda x: x[1], dictServers.items()))
# Все серверы репликации
replAllServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
listServersRepl,("",set()))[1])
# Серверы репликации для ветки Unix
replUnixServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
filter(lambda x: x[0] in ['samba','unix'],
listServersRepl),("",set()))[1])
# Серверы репликации для ветки Samba
replSambaServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
filter(lambda x: x[0] in ['samba'],
listServersRepl),("",set()))[1])
# Устанавливаем переменную серверы репл. для Samba сервиса
self.clVars.Set("ld_repl_samba_servers",
",".join(replSambaServers),True)
# Устанавливаем переменную серверы репл. для Unix сервиса
self.clVars.Set("ld_repl_unix_servers",
",".join(replUnixServers),True)
replUnixServers = list(set(replUnixServers)|set(replSambaServers))
replAllServers = replUnixServers
",".join(replUnixServers),True
# Устанавливаем переменную серверы репл. для всех сервисов
self.clVars.Set("ld_repl_servers",
",".join(replAllServers),True)
if not self.clVars.Get("ld_repl_id"):
# Вылючаем репликацию
self.clVars.Set("ld_repl_set", "off")
elif service == "mail":
if self.clVars.Get("sr_mail_set") != "on":
self.printERROR(\
_("Set Replication error, Mail service not setuped") + " ...")
return False
replUnixServers = self.clVars.Get("ld_repl_unix_servers")
if options.has_key('off'):
# Очищаем cерверы репликации Mail
self.clVars.Set("ld_repl_mail_servers", "", True)
replServers = []
replSambaServers = self.clVars.Get("ld_repl_samba_servers")
dictServers = {"samba":replSambaServers,
"mail":",".join(replServers),
"unix":replUnixServers}
listServersRepl = map(lambda x: (x[0],set(x[1].split(","))),
filter(lambda x: x[1], dictServers.items()))
# Все серверы репликации
replAllServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
listServersRepl,("",set()))[1])
# Серверы репликации для ветки Mail
replMailServers = list(reduce(lambda x,y: ('',x[1]|y[1]),
filter(lambda x: x[0] in ['mail'],
listServersRepl),("",set()))[1])
# Устанавливаем переменную серверы репл. для Mail сервиса
self.clVars.Set("ld_repl_mail_servers",
",".join(replMailServers),True)
# Устанавливаем переменную серверы репл. для всех сервисов
self.clVars.Set("ld_repl_servers",
",".join(replAllServers),True)
@ -8783,6 +8850,7 @@ together with option '-r'") + " ...")
# Удаляем переменные
self.clVars.Delete("ld_repl_servers","local","server")
self.clVars.Delete("ld_repl_samba_servers","local","server")
self.clVars.Delete("ld_repl_mail_servers","local","server")
self.clVars.Delete("ld_repl_unix_servers","local","server")
self.clVars.Delete("ld_repl_pw")
self.clVars.Delete("ld_repl_set")

@ -386,7 +386,7 @@ class Data:
# Calculate плюс версия калкулэйта для записи в заголовок файла
# объединяемого с профилем
#setup_name
cl_ver = {'value':'Calculate-server 2.0.8'}
cl_ver = {'value':'Calculate-server 2.0.9'}
#DN LDAP ветки, в котором будут находится служебные ветки
ld_ldap_dn = {}
@ -421,6 +421,8 @@ class Data:
ld_repl_samba_servers = {}
# Доменные имена серверов репликации для ветки Unix
ld_repl_unix_servers = {}
# Включена или нет репликация для сервиса Unix
ld_repl_unix_set = {}
# Доменные имена серверов репликации
ld_repl_servers = {}
# id серверов репликации
@ -435,4 +437,14 @@ class Data:
# Доступные сети для сервиса Mail
sr_mail_net_allow = {}
# Текст в main.cf - доступные сети
sr_mail_net_allow_pass = {}
sr_mail_net_allow_pass = {}
#DN ветки хранения реплицируемых алиасов
ld_repl_mail_dn = {}
#имя ветки
ld_repl_mail_login = {'value':'Mail'}
# Доменные имена серверов репликации для ветки Replication/Mail
ld_repl_mail_servers = {}
# Включена или нет репликация для сервиса Mail
ld_repl_mail_set = {}

@ -141,7 +141,7 @@ exec_file = Extension('calculate-server.bin.repbin',
sources = ['./bin/repbin.c'])
setup(
name = 'calculate-server',
version = "2.0.8",
version = "2.0.9",
description = "The program for configuring server-data linux",
author = "Calculate Pack",
author_email = "support@calculate.ru",

Loading…
Cancel
Save