|
|
|
@ -458,6 +458,58 @@ class shareLdap(imp_cl_err, imp_cl_xml, imp_cl_help, imp_cl_smcon):
|
|
|
|
|
else:
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def startServices(self, servInstalled):
|
|
|
|
|
"""Запускает все сервисы поданные на вход этому методу
|
|
|
|
|
|
|
|
|
|
Входные даннные - список названий сервисов
|
|
|
|
|
"""
|
|
|
|
|
if 'ldap' in servInstalled:
|
|
|
|
|
if not self.startDaemons('ldap',['slapd']):
|
|
|
|
|
return False
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("slapd"):
|
|
|
|
|
return False
|
|
|
|
|
flagError = False
|
|
|
|
|
for service in servInstalled:
|
|
|
|
|
if service == "unix" or service == "ldap":
|
|
|
|
|
continue
|
|
|
|
|
elif service == "mail":
|
|
|
|
|
if not self.startDaemons('mail',['postfix', 'dovecot']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демонов
|
|
|
|
|
if not (self.setDaemonAutostart("postfix") and\
|
|
|
|
|
self.setDaemonAutostart("dovecot")):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
elif service == "jabber":
|
|
|
|
|
if not self.startDaemons('jabber',['ejabberd']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("ejabberd"):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
elif service == "ftp":
|
|
|
|
|
if not self.startDaemons('ftp',['proftpd']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("proftpd"):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
if not self.startDaemons(service,[service]):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart(service):
|
|
|
|
|
return False
|
|
|
|
|
if flagError:
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def stopServices(self, servInstalled):
|
|
|
|
|
"""Останавливает все сервисы поданные на вход этому методу
|
|
|
|
|
|
|
|
|
@ -3317,10 +3369,7 @@ in Unix service ...") %str(primaryMail))
|
|
|
|
|
# Почтовый ност
|
|
|
|
|
if options.has_key("host"):
|
|
|
|
|
fullHostName = options['host']
|
|
|
|
|
else:
|
|
|
|
|
fullHostName = "%s.%s"%(self.clVars.Get('os_net_hostname'),
|
|
|
|
|
self.clVars.Get('os_net_domain'))
|
|
|
|
|
self.clVars.Set("sr_mail_host",fullHostName,True)
|
|
|
|
|
self.clVars.Set("sr_mail_host",fullHostName,True)
|
|
|
|
|
if not self.applyProfilesFromService('mail'):
|
|
|
|
|
return False
|
|
|
|
|
# Проверим запущен ли ldap
|
|
|
|
@ -3961,10 +4010,7 @@ class servJabber(shareLdap):
|
|
|
|
|
self.clVars.Write("sr_jabber_set","off")
|
|
|
|
|
if options.has_key("host"):
|
|
|
|
|
fullHostName = options['host']
|
|
|
|
|
else:
|
|
|
|
|
fullHostName = "%s.%s"%(self.clVars.Get('os_net_hostname'),
|
|
|
|
|
self.clVars.Get('os_net_domain'))
|
|
|
|
|
self.clVars.Set("sr_jabber_host",fullHostName,True)
|
|
|
|
|
self.clVars.Set("sr_jabber_host",fullHostName,True)
|
|
|
|
|
|
|
|
|
|
if options.has_key("history"):
|
|
|
|
|
history = options["history"].strip()
|
|
|
|
@ -4039,7 +4085,7 @@ class servJabber(shareLdap):
|
|
|
|
|
if not self.setDaemonAutostart("ejabberd"):
|
|
|
|
|
return False
|
|
|
|
|
#запишем переменные для сервера
|
|
|
|
|
jabberHost = self.clVars.Get("sr_jabber_host",)
|
|
|
|
|
jabberHost = self.clVars.Get("sr_jabber_host","sr_jabber_history")
|
|
|
|
|
self.clVars.Write("sr_jabber_host",jabberHost,True,"local")
|
|
|
|
|
#запишем переменные для клиента
|
|
|
|
|
clientVars = ["sr_jabber_host","sr_jabber_crypt","sr_jabber_port"]
|
|
|
|
@ -4864,6 +4910,53 @@ class servLdap(shareLdap):
|
|
|
|
|
servInstalled.append(serv)
|
|
|
|
|
return (servicePaths, servInstalled)
|
|
|
|
|
|
|
|
|
|
def updateServer(self, serviceUpdate="all"):
|
|
|
|
|
"""Перегенерируем конфигурационные файлы
|
|
|
|
|
|
|
|
|
|
определенного или всех сервисов
|
|
|
|
|
"""
|
|
|
|
|
# Создаем переменные
|
|
|
|
|
self.createClVars()
|
|
|
|
|
# находим установленные сервисы
|
|
|
|
|
servicePaths, servInstalled = self.getServiceSetupPathProfiles()
|
|
|
|
|
if not servicePaths:
|
|
|
|
|
self.printERROR("Services are not installed")
|
|
|
|
|
return False
|
|
|
|
|
flagError = False
|
|
|
|
|
if serviceUpdate=="all":
|
|
|
|
|
pass
|
|
|
|
|
elif serviceUpdate in servInstalled:
|
|
|
|
|
servInstalled = [serviceUpdate]
|
|
|
|
|
else:
|
|
|
|
|
self.printERROR("Service %s not installed")%serviceUpdate
|
|
|
|
|
return False
|
|
|
|
|
ldapParser = iniLdapParser()
|
|
|
|
|
for service in servInstalled:
|
|
|
|
|
if service == "ldap":
|
|
|
|
|
self.stopServices([service])
|
|
|
|
|
self.startServices([service])
|
|
|
|
|
continue
|
|
|
|
|
adminPw = ldapParser.getVar(service,"PASS")
|
|
|
|
|
if not adminPw:
|
|
|
|
|
self.printERROR("Not found password from service %s")\
|
|
|
|
|
%service
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
self.clVars.Set("ld_unix_pw",adminPw)
|
|
|
|
|
if not flagError and not self.applyProfilesFromService(service):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
self.stopServices([service])
|
|
|
|
|
self.startServices([service])
|
|
|
|
|
if flagError:
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def updateLdapServer(self, options):
|
|
|
|
|
if not options:
|
|
|
|
|
return self.updateServer()
|
|
|
|
|
|
|
|
|
|
def backupServer(self):
|
|
|
|
|
"""Сохраняет настройки установленных сервисов и базу LDAP"""
|
|
|
|
|
# создаем директорию backup-а
|
|
|
|
@ -4991,52 +5084,7 @@ class servLdap(shareLdap):
|
|
|
|
|
"""
|
|
|
|
|
# находим установленные сервисы
|
|
|
|
|
servicePaths, servInstalled = self.getServiceSetupPathProfiles()
|
|
|
|
|
if 'ldap' in servInstalled:
|
|
|
|
|
if not self.startDaemons('ldap',['slapd']):
|
|
|
|
|
return False
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("slapd"):
|
|
|
|
|
return False
|
|
|
|
|
flagError = False
|
|
|
|
|
for service in servInstalled:
|
|
|
|
|
if service == "unix" or service == "ldap":
|
|
|
|
|
continue
|
|
|
|
|
elif service == "mail":
|
|
|
|
|
if not self.startDaemons('mail',['postfix', 'dovecot']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демонов
|
|
|
|
|
if not (self.setDaemonAutostart("postfix") and\
|
|
|
|
|
self.setDaemonAutostart("dovecot")):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
elif service == "jabber":
|
|
|
|
|
if not self.startDaemons('jabber',['ejabberd']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("ejabberd"):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
elif service == "ftp":
|
|
|
|
|
if not self.startDaemons('ftp',['proftpd']):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart("proftpd"):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
else:
|
|
|
|
|
if not self.startDaemons(service,[service]):
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
# Устанавливаем автозапуск демона
|
|
|
|
|
if not self.setDaemonAutostart(service):
|
|
|
|
|
return False
|
|
|
|
|
if flagError:
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
return True
|
|
|
|
|
return self.startServices(self, servInstalled)
|
|
|
|
|
|
|
|
|
|
def restoreServer(self):
|
|
|
|
|
"""Восстанавливает из архива все установленные сервисы
|
|
|
|
@ -5333,6 +5381,7 @@ class cl_ldap(shareLdap):
|
|
|
|
|
'cl-setup':6,
|
|
|
|
|
'cl-passwd':7,
|
|
|
|
|
'cl-backup':8,
|
|
|
|
|
'cl-update':9,
|
|
|
|
|
}
|
|
|
|
|
# Cвязь сервисов и действующих опций
|
|
|
|
|
self.relServices = {"samba":[_("Common options"),
|
|
|
|
|