develop
asamoukin 16 years ago
parent 0dee0e3af7
commit dc6333018f

@ -153,3 +153,21 @@ class fillVars(object, cl_base.glob_attr):
def get_ld_ftp_hash(self):
"""hash пароля администратора сервиса FTP"""
return self.getHash(self.Get('ld_ftp_pw'), self.Get('ld_encrypt'))
def get_sr_mail_host(self):
"""имя компьютера с настроенным сервисом Mail"""
fullHostName = "%s.%s"%(self.Get('os_net_hostname'),
self.Get('os_net_domain'))
if fullHostName:
return fullHostName
else:
return ""
def get_sr_jabber_host(self):
"""имя компьютера с настроенным сервисом Jabber"""
fullHostName = "%s.%s"%(self.Get('os_net_hostname'),
self.Get('os_net_domain'))
if fullHostName:
return fullHostName
else:
return ""

@ -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"),

Loading…
Cancel
Save