Добавлены переменные профиля:

ld_repl_mail_set - включена или нет репликация алиасов cервиса  Mail;
  sr_mail_relay_set - настроен или нет сервис Mail как почтовый релей.
Изменен метод заполнения переменной профиля ld_repl_servers_info.
В методах fullElementSambaDNtoText, fullElementUnixDNtoText изменены LDAP фильтры.
Добавлены методы:
fullElementMailDNtoText - выводит все внутренние элементы LDAP ветки Mail в виде текста;
fullElementMailSambaDNtoText - выводит все внутренние элементы ветки Samba и Mail в виде текста
fullElementMailUnixDNtoText - выводит все внутренние элементы ветки Unix и Mail в виде текста.
Добавлено добавление,изменение и удаление реплицируемые почтовыех алиасов при добавлении, изменении и удалении почтового пользователя или почтовой группы.
Исправлена ошибка поиска сохраненных данных для удаленного пользователя сервиса Mail.
Добавлен метод getHostName - получение от пользователя почтового хоста
Изменен метод backupServer создание резервной копии настроек и LDAP базы сервера, добавлено сохранение ldif файла и списка файлов для каждого сочетания реплицируемых сервисов.
Изменен метод rebuildServer, в список поддерживаемых сервисов репликации добавлен сервис Mail
 В класс servRepl добавлены дополнительные методы для работы с реплицируемыми почтовыми алиасами




git-svn-id: http://svn.calculate.ru/calculate2/calculate-server/trunk@1101 c91db197-33c1-4113-bf15-f8a5c547ca64
develop
asamoukin 15 years ago
parent 3afceb8381
commit 11b3f27d82

@ -235,13 +235,17 @@ class fillVars(object, cl_base.glob_attr):
if not replServers:
return ""
replServers = replServers.split(",")
replMailServers = self.Get("ld_repl_mail_servers")
if replMailServers:
replMailServers = replMailServers.split(",")
replSambaServers = self.Get("ld_repl_samba_servers")
if replSambaServers:
replSambaServers = replSambaServers.split(",")
replUnixServers = self.Get("ld_repl_unix_servers")
if replUnixServers:
replUnixServers = replUnixServers.split(",")
if set(replServers) != set(replSambaServers)|set(replUnixServers):
if set(replServers) != \
set(replSambaServers)|set(replUnixServers)|set(replMailServers):
return ""
replIds = self.Get("ld_repl_ids")
replIds = replIds.split(",")
@ -290,6 +294,9 @@ class fillVars(object, cl_base.glob_attr):
if not repl_id:
return ""
servers_info = ""
replMailServers = self.Get("ld_repl_mail_servers")
if replMailServers:
replMailServers = replMailServers.split(",")
replSambaServers = self.Get("ld_repl_samba_servers")
if replSambaServers:
replSambaServers = replSambaServers.split(",")
@ -298,7 +305,8 @@ class fillVars(object, cl_base.glob_attr):
replUnixServers = replUnixServers.split(",")
replServers = self.Get("ld_repl_servers")
replServers = replServers.split(",")
if set(replServers) != set(replSambaServers)|set(replUnixServers):
if set(replServers) != \
set(replSambaServers)|set(replUnixServers)|set(replMailServers):
return ""
replIds = self.Get("ld_repl_ids")
replIds = replIds.split(",")
@ -306,7 +314,8 @@ class fillVars(object, cl_base.glob_attr):
for replServer in replServers:
if replIds[i]!= repl_id:
if replServer in replSambaServers:
servers_info += """syncrepl rid=%s
if replServer in replMailServers:
servers_info += """syncrepl rid=%s
provider=ldap://%s
type=refreshAndPersist
retry="5 5 300 +"
@ -321,12 +330,63 @@ class fillVars(object, cl_base.glob_attr):
self.Get("ld_services_dn"),
self.Get("ld_repl_dn"),
self.Get("ld_repl_pw"))
else:
servers_info += 'syncrepl rid=%s\n\
provider=ldap://%s\n\
type=refreshAndPersist\n\
retry="5 5 300 +"\n\
filter="(&(|(|(ou:dn:=Samba)(ou:dn:=Unix))(ou:dn:=Replication))\
(!(&(ou:dn:=Replication)(ou:dn:=Mail))))"\n\
searchbase="%s"\n\
attrs="*,+"\n\
schemachecking=on\n\
bindmethod=simple\n\
binddn="%s"\n\
credentials=%s\n' %(replIds[i],
replServer,
self.Get("ld_services_dn"),
self.Get("ld_repl_dn"),
self.Get("ld_repl_pw"))
elif replServer in replUnixServers:
if replServer in replMailServers:
servers_info += 'syncrepl rid=%s\n\
provider=ldap://%s\n\
type=refreshAndPersist\n\
retry="5 5 300 +"\n\
filter="(&(|(ou:dn:=Unix)(ou:dn:=Replication))(!(&(ou:dn:=Replication)\
(ou:dn:=Worked))))"\n\
searchbase="%s"\n\
attrs="*,+"\n\
schemachecking=on\n\
bindmethod=simple\n\
binddn="%s"\n\
credentials=%s\n' %(replIds[i],
replServer,
self.Get("ld_services_dn"),
self.Get("ld_repl_dn"),
self.Get("ld_repl_pw"))
else:
servers_info += """syncrepl rid=%s
provider=ldap://%s
type=refreshAndPersist
retry="5 5 300 +"
filter="(|(ou:dn:=Unix)(ou=Replication))"
searchbase="%s"
attrs="*,+"
schemachecking=on
bindmethod=simple
binddn="%s"
credentials=%s\n""" %(replIds[i],
replServer,
self.Get("ld_services_dn"),
self.Get("ld_repl_dn"),
self.Get("ld_repl_pw"))
elif replServer in replMailServers:
servers_info += """syncrepl rid=%s
provider=ldap://%s
type=refreshAndPersist
retry="5 5 300 +"
filter="(|(ou:dn:=Unix)(ou:dn:=Replication))"
filter="(&(ou:dn:=Replication)(ou:dn:=Mail))"
searchbase="%s"
attrs="*,+"
schemachecking=on

File diff suppressed because it is too large Load Diff

@ -28,111 +28,84 @@
class Data:
#базовый суффикс LDAP
#Vl soft_ldap_base
ld_base_dn = {}
#bind суффикс LDAP
#Vl soft_ldap_bind
ld_bind_dn = {}
#пользователь только для чтения
#Vl soft_ldap_bindname
ld_bind_login = {'value':'proxyuser'}
#hash пароля для пользователя для чтения
#Vl soft_ldap_bindpw_hash
ld_bind_hash = {}
#пароль для пользователя для чтения
#Vl soft_ldap_bindpw
ld_bind_pw = {'value':'calculate'}
#алгоритм шифрования паролей
#Vl soft_ldap_hash_encrypt
ld_encrypt = {'value':'{SSHA}'}
#имя для базового суффикса LDAP
#Vl soft_ldap_root
ld_base_root = {'value':'calculate'}
#временный пользователь root для инициализации базы данных
#V soft_ldap_admin_tmp
ld_temp_dn = {}
#hash пароля временного root
#V soft_ldap_adminpw_tmp_hash
ld_temp_hash = {}
#пароль временного пользователя root
#V soft_ldap_adminpw_tmp
ld_temp_pw = {}
#DN пользователя root
#V soft_ldap_admin
ld_admin_dn = {}
#имя пользователя root для LDAP
#V soft_ldap_adminname
ld_admin_login = {'value':'ldapadmin'}
#hash пароля root
#V soft_ldap_adminpw_hash
ld_admin_hash = {}
#пароль root
#V soft_ldap_adminpw
ld_admin_pw = {}
#имя samba домена
#V soft_samba_domain
sr_samba_domain = {'mode':"w",'value':'Calculate'}
#netbios имя samba домена
#V soft_samba_netbios
sr_samba_netbios = {'mode':"w"}
#Логин LDAP пользователя
#V soft_ldap_user_login
ur_name = {'mode':"w"}
#Полное имя LDAP пользователя
#V soft_ldap_user_full_name
ur_fio = {'mode':"w"}
#ID LDAP пользователя (номер пользователя)
#V soft_ldap_user_id
ur_id = {'mode':"w"}
#GID LDAP пользователя (номер группы пользователя)
#V soft_ldap_user_gid
ur_gid = {'mode':"w"}
#Домашняя директория LDAP пользователя
#V soft_ldap_user_home
ur_home_path = {'mode':"w"}
#Оболочка LDAP пользователя
#V soft_ldap_user_shell
ur_shell = {'mode':"w"}
#Хеш пароля LDAP пользователя
#V soft_ldap_user_pw_hash
ur_hash = {'mode':"w"}
#Название группы
#V soft_ldap_group_name
ur_group = {'mode':"w"}
#ID группы
#V soft_ldap_group_id
ur_group_id = {'mode':"w"}
#Полное имя группы
#V soft_ldap_group_desc
ur_group_comment = {'mode':"w"}
# Видимость пользователя с другого компьютера
#V soft_ldap_user_visible
ur_visible = {'mode':"w"}
#Организация пользователя
@ -141,6 +114,9 @@ class Data:
#Сигнатура пользователя
ur_signature = {'mode':'w'}
#Почтовый адрес пользователя
ur_mail = {'mode':'w'}
# имя компьютера с настроенным сервисом Mail
sr_mail_host = {}
@ -175,19 +151,15 @@ class Data:
'value':'off'}
#Логин компьютера
#V soft_ldap_machine_login
sr_samba_machine_login = {'mode':"w"}
#ID LDAP компьютера (номер компьютера)
#V soft_ldap_machine_id
sr_samba_machine_id = {'mode':"w"}
#GID LDAP компьютера (номер первичной группы компьютера)
#V soft_ldap_machine_gid
sr_samba_machine_gid = {'mode':"w"}
#Название первичной группы компьютера
#V soft_ldap_machine_group_name
sr_samba_machine_group = {'mode':"w",
'value':'Computers'}
@ -195,27 +167,21 @@ class Data:
#Все сервисы Unix
#-----------------------------------------------------
#Имя для всех сервисов
#V soft_ldap_sevices_dn_name
ld_services= {'value' : 'Services'}
#DN всех сервисов
#V soft_ldap_sevices_dn
ld_services_dn = {}
#Настроен или нет сервис LDAP
#V soft_ldap_setup
sr_ldap_set = {'mode':"w",'value':'off'}
#имя устанавливаемого сервиса
#V soft_ldap_setup_name
cl_pass_service = {'mode':"w"}
#проход при наложении профилей 1,2,3,4,5 и.т д
#V setup_pass_parser
cl_pass_step = {'mode':"w"}
#директория куда будут записаны данные удаленных пользователей
#V soft_ldap_delete_user_dir
sr_deleted_path = {'mode':"w",
'value':'/var/calculate/server-backup/deleted'}
@ -223,23 +189,18 @@ class Data:
#Сервис Unix
#-----------------------------------------------------
#DN администратора сервиса Unix (он, же DN сервиса)
#V soft_ldap_admin_unix
ld_unix_dn = {}
#имя администратора сервиса Unix
#V soft_ldap_admin_unix_name
ld_unix_login = {'value':'Unix'}
#пароль администратора сервиса Unix
#V soft_ldap_admin_unixpw
ld_unix_pw = {}
#hash пароля администратора сервиса Unix
#V soft_ldap_admin_unixpw_hash
ld_unix_hash = {}
#Настроен или нет сервис Unix
#V soft_unix_setup
sr_unix_set = {'mode':"w",
'value':'off'}
@ -247,48 +208,38 @@ class Data:
#Сервис Samba
#-----------------------------------------------------
#DN администратора сервиса Samba (он, же DN сервиса)
#V soft_ldap_admin_samba
ld_samba_dn = {}
#имя администратора сервиса Samba
#V soft_ldap_admin_samba_name
ld_samba_login = {'value':'Samba'}
#пароль администратора сервиса Samba
#V soft_ldap_admin_sambapw
ld_samba_pw = {}
#hash пароля администратора сервиса Samba
#V soft_ldap_admin_sambapw_hash
ld_samba_hash = {}
# Директория настроек пользователя windows
#V soft_samba_winprofile_path
sr_samba_winprof_path = {\
'value':'/var/calculate/server-data/samba/profiles/win'}
# Директория хранения настроек пользователя linux
#V soft_samba_linprofile_path
sr_samba_linprof_path = {\
'value':'/var/calculate/server-data/samba/profiles/unix'}
# Домашняя директория
#V soft_samba_home_path
sr_samba_home_path = {\
'value':'/var/calculate/server-data/samba/home'}
# Директория netlogon
#V soft_samba_winlogon_path
sr_samba_winlogon_path = {\
'value':'/var/calculate/server-data/samba/netlogon'}
# Директория share
#V soft_samba_share_path
sr_samba_share_path = {\
'value':'/var/calculate/server-data/samba/share'}
# Настроен или нет сервис Samba
#V soft_samba_setup
sr_samba_set = {'mode':"w",
'value':'off'}
@ -296,27 +247,21 @@ class Data:
#Сервис Mail
#-----------------------------------------------------
#DN администратора сервиса Mail (он, же DN сервиса)
#V soft_ldap_admin_mail
ld_mail_dn = {}
#имя администратора сервиса Mail
#V soft_ldap_admin_mail_name
ld_mail_login = {'value':'Mail'}
#пароль администратора сервиса Mail
#V soft_ldap_admin_mailpw
ld_mail_pw = {}
#hash пароля администратора сервиса Mail
#V soft_ldap_admin_mailpw_hash
ld_mail_hash = {}
# Директория хранения писем
#V soft_ldap_mail_path
sr_mail_path = {'value':'/var/calculate/server-data/mail'}
#Настроен или нет сервис Mail
#V soft_mail_setup
sr_mail_set = {'mode':"w",
'value':'off'}
@ -324,23 +269,18 @@ class Data:
#Сервис Jabber
#-----------------------------------------------------
#DN администратора сервиса Jabber (он, же DN сервиса)
#V soft_ldap_admin_jabber
ld_jabber_dn = {}
#имя администратора сервиса Jabber
#V soft_ldap_admin_jabber_name
ld_jabber_login = {'value':'Jabber'}
#пароль администратора сервиса Jabber
#V soft_ldap_admin_jabberpw
ld_jabber_pw = {}
#hash пароля администратора сервиса Jabber
#V soft_ldap_admin_jabberpw_hash
ld_jabber_hash = {}
#Настроен или нет сервис Jabber
#V soft_jabber_setup
sr_jabber_set = {'mode':"w",
'value':'off'}
@ -351,23 +291,18 @@ class Data:
cl_remote_ftp = {}
#DN администратора сервиса FTP (он, же DN сервиса)
#V soft_ldap_admin_ftp
ld_ftp_dn = {}
#имя администратора сервиса FTP
#V soft_ldap_admin_ftp_name
ld_ftp_login = {'value':'Ftp'}
#пароль администратора сервиса FTP
#V soft_ldap_admin_ftppw
ld_ftp_pw = {}
#hash пароля администратора сервиса FTP
#V soft_ldap_admin_ftppw_hash
ld_ftp_hash = {}
#Настроен или нет сервис FTP
#V soft_ftp_setup
sr_ftp_set = {'mode':"w",
'value':'off'}
@ -375,17 +310,14 @@ class Data:
sr_ftp_path = {'value':'/var/calculate/server-data/ftp'}
##список накладываемых профилей при установке, наложении профилей
#setup_path_profinstall
cl_profile_path = {}
#путь к директории относительно которой происходит наложение профилей на
#файлы системы
#setup_path_install
cl_root_path = {'value':'/'}
# Calculate плюс версия калкулэйта для записи в заголовок файла
# объединяемого с профилем
#setup_name
cl_ver = {'value':'Calculate-server 2.0.9'}
#DN LDAP ветки, в котором будут находится служебные ветки
@ -447,4 +379,7 @@ class Data:
# Доменные имена серверов репликации для ветки Replication/Mail
ld_repl_mail_servers = {}
# Включена или нет репликация для сервиса Mail
ld_repl_mail_set = {}
ld_repl_mail_set = {}
#Настроен или нет сервис Mail как почтовый релей
sr_mail_relay_set = {'mode':"w",
'value':'off'}
Loading…
Cancel
Save