|
|
@ -18,22 +18,36 @@ import os, sys, re
|
|
|
|
from cl_print import color_print
|
|
|
|
from cl_print import color_print
|
|
|
|
from cl_datavars import DataVars
|
|
|
|
from cl_datavars import DataVars
|
|
|
|
from server.utils import execProg
|
|
|
|
from server.utils import execProg
|
|
|
|
|
|
|
|
from cl_template import template
|
|
|
|
|
|
|
|
|
|
|
|
from cl_lang import lang
|
|
|
|
from cl_lang import lang
|
|
|
|
lang().setLanguage(sys.modules[__name__])
|
|
|
|
lang().setLanguage(sys.modules[__name__])
|
|
|
|
|
|
|
|
|
|
|
|
from cl_abstract import abs_api
|
|
|
|
from cl_abstract import abs_api_service
|
|
|
|
|
|
|
|
|
|
|
|
class DataVarsLdap(DataVars):
|
|
|
|
class DataVarsLdap(DataVars):
|
|
|
|
"""Хранение переменных"""
|
|
|
|
"""Хранение переменных"""
|
|
|
|
# Имя секции в calculate2.env
|
|
|
|
# Имя секции в calculate2.env
|
|
|
|
envSection = "ldap"
|
|
|
|
envSection = "ldap"
|
|
|
|
|
|
|
|
|
|
|
|
def importLdap(self, **args):
|
|
|
|
def importLdap(self, **args):
|
|
|
|
'''Импорт переменных для calculate-ldap'''
|
|
|
|
'''Импорт переменных для calculate-ldap'''
|
|
|
|
# Импорт переменных
|
|
|
|
# Импорт переменных
|
|
|
|
self.importData(self.envSection, ('cl_vars_ldap','cl_fill_ldap'))
|
|
|
|
self.importData(self.envSection, ('cl_vars_ldap','cl_fill_ldap'))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Template:
|
|
|
|
|
|
|
|
"""Templates methods"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def applyTemplates(self):
|
|
|
|
|
|
|
|
"""Apply templates"""
|
|
|
|
|
|
|
|
clTempl = template(self.clVars)
|
|
|
|
|
|
|
|
dirsFiles = clTempl.applyTemplates()
|
|
|
|
|
|
|
|
if clTempl.getError():
|
|
|
|
|
|
|
|
self.printERROR(clTempl.getError().strip())
|
|
|
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
return dirsFiles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class shareVars:
|
|
|
|
class shareVars:
|
|
|
|
"""share methods template vars"""
|
|
|
|
"""share methods template vars"""
|
|
|
|
# template variables
|
|
|
|
# template variables
|
|
|
@ -49,9 +63,9 @@ class shareVars:
|
|
|
|
clVars.flIniFile()
|
|
|
|
clVars.flIniFile()
|
|
|
|
# Устанавливаем у объекта атрибут объект переменных
|
|
|
|
# Устанавливаем у объекта атрибут объект переменных
|
|
|
|
self.clVars = clVars
|
|
|
|
self.clVars = clVars
|
|
|
|
return True
|
|
|
|
return self.clVars
|
|
|
|
|
|
|
|
|
|
|
|
class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
class serviceAPI(abs_api_service, shareVars, Template):
|
|
|
|
'''Methods ldap service'''
|
|
|
|
'''Methods ldap service'''
|
|
|
|
prioritet = 25
|
|
|
|
prioritet = 25
|
|
|
|
nameService = "ldap"
|
|
|
|
nameService = "ldap"
|
|
|
@ -70,11 +84,20 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
cmdAddRunlevel = 'rc-update add %(name)s default' %_templDict
|
|
|
|
cmdAddRunlevel = 'rc-update add %(name)s default' %_templDict
|
|
|
|
cmdDelRunlevel = 'rc-update del %(name)s default' %_templDict
|
|
|
|
cmdDelRunlevel = 'rc-update del %(name)s default' %_templDict
|
|
|
|
|
|
|
|
|
|
|
|
def getServiceName(self):
|
|
|
|
def get_service_name(self):
|
|
|
|
'''Get name service'''
|
|
|
|
'''Get name service'''
|
|
|
|
return self.nameService
|
|
|
|
return self.nameService
|
|
|
|
|
|
|
|
|
|
|
|
def isSetup(self):
|
|
|
|
def get_pkg_name(self):
|
|
|
|
|
|
|
|
'''Get name service'''
|
|
|
|
|
|
|
|
from cl_ldap_service import __app__
|
|
|
|
|
|
|
|
return __app__
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_vars(self):
|
|
|
|
|
|
|
|
'''Get Service vars'''
|
|
|
|
|
|
|
|
return self.createClVars(self.clVars)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def is_setup(self):
|
|
|
|
'''Is setup service (True/False)'''
|
|
|
|
'''Is setup service (True/False)'''
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
return self.clVars.Get('sr_ldap_set') == "on"
|
|
|
|
return self.clVars.Get('sr_ldap_set') == "on"
|
|
|
@ -94,7 +117,7 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
daemons.append(daemon)
|
|
|
|
daemons.append(daemon)
|
|
|
|
return daemons
|
|
|
|
return daemons
|
|
|
|
|
|
|
|
|
|
|
|
def isStart(self):
|
|
|
|
def is_start(self):
|
|
|
|
'''Run ldap server (True/False)'''
|
|
|
|
'''Run ldap server (True/False)'''
|
|
|
|
if os.access(self.pidFile, os.R_OK):
|
|
|
|
if os.access(self.pidFile, os.R_OK):
|
|
|
|
pid = open(self.pidFile).read().strip()
|
|
|
|
pid = open(self.pidFile).read().strip()
|
|
|
@ -105,33 +128,35 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
def start(self):
|
|
|
|
def start(self):
|
|
|
|
'''Запускает LDAP сервер'''
|
|
|
|
'''Start LDAP server'''
|
|
|
|
if execProg(self.cmdStart) is False:
|
|
|
|
if not self.is_start():
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdStart)
|
|
|
|
if execProg(self.cmdStart) is False:
|
|
|
|
self.printNotOK(_("Starting LDAP") + " ...")
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdStart)
|
|
|
|
return False
|
|
|
|
self.printNotOK(_("Starting LDAP") + " ...")
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def restart(self):
|
|
|
|
def restart(self):
|
|
|
|
'''Перезапускает LDAP сервер'''
|
|
|
|
'''Restart LDAP server'''
|
|
|
|
if execProg(self.cmdReStart) is False:
|
|
|
|
if self.is_start():
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdReStart)
|
|
|
|
if execProg(self.cmdReStart) is False:
|
|
|
|
self.printNotOK(_("Restarting LDAP")+ " ...")
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdReStart)
|
|
|
|
return False
|
|
|
|
self.printNotOK(_("Restarting LDAP")+ " ...")
|
|
|
|
|
|
|
|
return False
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
return True
|
|
|
|
return self.start()
|
|
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def stop(self):
|
|
|
|
def stop(self):
|
|
|
|
'''Останавливает LDAP сервер'''
|
|
|
|
'''Stop LDAP server'''
|
|
|
|
if execProg(self.cmdStop) is False:
|
|
|
|
if self.is_start():
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdStop)
|
|
|
|
if execProg(self.cmdStop) is False:
|
|
|
|
self.printNotOK(_("Stopping LDAP")+ " ...")
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdStop)
|
|
|
|
return False
|
|
|
|
self.printNotOK(_("Stopping LDAP")+ " ...")
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def isRunlevel(self):
|
|
|
|
def is_runlevel(self):
|
|
|
|
'''Находится ли LDAP в автозагрузке'''
|
|
|
|
'''Находится ли LDAP в автозагрузке'''
|
|
|
|
daemons = self._getRunlevelDaemons()
|
|
|
|
daemons = self._getRunlevelDaemons()
|
|
|
|
if daemons is False:
|
|
|
|
if daemons is False:
|
|
|
@ -141,9 +166,9 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
def addRunlevel(self):
|
|
|
|
def add_runlevel(self):
|
|
|
|
'''Add daemon to runlevel'''
|
|
|
|
'''Add daemon to runlevel'''
|
|
|
|
if not self.isRunlevel():
|
|
|
|
if not self.is_runlevel():
|
|
|
|
if execProg(self.cmdAddRunlevel) is False:
|
|
|
|
if execProg(self.cmdAddRunlevel) is False:
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdAddRunlevel)
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdAddRunlevel)
|
|
|
|
self.printNotOK(_("service %(name)s added to runlevel")\
|
|
|
|
self.printNotOK(_("service %(name)s added to runlevel")\
|
|
|
@ -151,9 +176,9 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def delRunlevel(self):
|
|
|
|
def del_runlevel(self):
|
|
|
|
'''Delete daemon from runlevel'''
|
|
|
|
'''Delete daemon from runlevel'''
|
|
|
|
if self.isRunlevel():
|
|
|
|
if self.is_runlevel():
|
|
|
|
if execProg(self.cmdDelRunlevel) is False:
|
|
|
|
if execProg(self.cmdDelRunlevel) is False:
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdDelRunlevel)
|
|
|
|
self.printERROR(_("Can't execute '%s'") %self.cmdDelRunlevel)
|
|
|
|
self.printNotOK(_("service %(name)s removed from runlevel")\
|
|
|
|
self.printNotOK(_("service %(name)s removed from runlevel")\
|
|
|
@ -161,13 +186,12 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
def getRunPrioritet(self):
|
|
|
|
def get_prioritet(self):
|
|
|
|
'''Get run daemon prioritet'''
|
|
|
|
'''Get run daemon prioritet'''
|
|
|
|
return self.prioritet
|
|
|
|
return self.prioritet
|
|
|
|
|
|
|
|
|
|
|
|
def delVarsFromEnv(self):
|
|
|
|
def del_vars_from_env(self):
|
|
|
|
'''Delete template vars in env files
|
|
|
|
'''Delete template vars in env files'''
|
|
|
|
'''
|
|
|
|
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
deleteVariables = ("sr_ldap_set",)
|
|
|
|
deleteVariables = ("sr_ldap_set",)
|
|
|
|
locations = map(lambda x: x[0], self.clVars.Get("cl_env_data"))
|
|
|
|
locations = map(lambda x: x[0], self.clVars.Get("cl_env_data"))
|
|
|
@ -182,3 +206,36 @@ class serviceAPI(color_print, shareVars, abs_api):
|
|
|
|
'file':fileName})
|
|
|
|
'file':fileName})
|
|
|
|
return False
|
|
|
|
return False
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_service_info(self, request):
|
|
|
|
|
|
|
|
'''Get service information'''
|
|
|
|
|
|
|
|
res = ""
|
|
|
|
|
|
|
|
if request == "scheme":
|
|
|
|
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
|
|
|
|
res = self.clVars.Get('ld_ldap_scheme_conf')
|
|
|
|
|
|
|
|
elif request == "access_pw":
|
|
|
|
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
|
|
|
|
res = self.clVars.Get('ld_ldap_access_pw_conf')
|
|
|
|
|
|
|
|
elif request == "access_dn":
|
|
|
|
|
|
|
|
self.createClVars(self.clVars)
|
|
|
|
|
|
|
|
res = self.clVars.Get('ld_ldap_access_dn_conf')
|
|
|
|
|
|
|
|
return res
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def scheme(self):
|
|
|
|
|
|
|
|
'''include lines in slapd.conf'''
|
|
|
|
|
|
|
|
return self.get_service_info('scheme')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def access_pw(self):
|
|
|
|
|
|
|
|
'''Access userPasswod lines in slapd.conf'''
|
|
|
|
|
|
|
|
return self.get_service_info('access_pw')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def access_dn(self):
|
|
|
|
|
|
|
|
'''Access DN lines in slapd.conf'''
|
|
|
|
|
|
|
|
return self.get_service_info('access_dn')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def apply_templates(self):
|
|
|
|
|
|
|
|
'''Apply package templates'''
|
|
|
|
|
|
|
|
if self.is_setup():
|
|
|
|
|
|
|
|
self.clVars.Set("cl_ldap_update_action","up", force=True)
|
|
|
|
|
|
|
|
return Template.applyTemplates(self)
|
|
|
|
|
|
|
|
return True
|
|
|
|