Bugfix create symbolic link to directory.

Modified api module.
develop
Самоукин Алексей 14 years ago
parent 3f3bfff709
commit b5ed0efaa0

@ -1,34 +1,34 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
class abs_min: class abs_api_min:
__metaclass__ = ABCMeta __metaclass__ = ABCMeta
@abstractmethod @abstractmethod
def isSetup(self): def is_setup(self):
'''Is setup service (True/False)''' '''Is setup service (True/False)'''
@abstractmethod @abstractmethod
def getPrioritet(self): def get_prioritet(self):
'''Get prioritet 0-100 '''Get prioritet 0-100
users 50-70 users 50-70
''' '''
@abstractmethod @abstractmethod
def getVars(self): def get_vars(self):
'''Get Service vars '''Get Service vars
''' '''
class abs_api(abs_min): class abs_api_service(abs_api_min):
__metaclass__ = ABCMeta __metaclass__ = ABCMeta
@abstractmethod @abstractmethod
def getServiceName(self): def get_service_name(self):
'''Get name service''' '''Get name service'''
@abstractmethod @abstractmethod
def isStart(self): def is_start(self):
'''Is run server (True/False)''' '''Is run server (True/False)'''
@abstractmethod @abstractmethod
@ -44,33 +44,28 @@ class abs_api(abs_min):
'''Stop server''' '''Stop server'''
@abstractmethod @abstractmethod
def isRunlevel(self): def is_runlevel(self):
'''Is server in run level (True/False)''' '''Is server in run level (True/False)'''
@abstractmethod @abstractmethod
def addRunlevel(self): def add_runlevel(self):
'''Add daemon to runlevel''' '''Add daemon to runlevel'''
@abstractmethod @abstractmethod
def delRunlevel(self): def del_runlevel(self):
'''Add daemon to runlevel''' '''Add daemon to runlevel'''
@abstractmethod @abstractmethod
def delVarsFromEnv(self): def del_vars_from_env(self):
'''Delete template vars in env files '''Delete template vars in env files
''' '''
@abstractmethod @abstractmethod
def getServiceInfo(self): def get_pkg_name(self):
'''Get Service information
'''
@abstractmethod
def getPkgName(self):
'''Get package name '''Get package name
''' '''
@abstractmethod @abstractmethod
def applyTemplates(self): def apply_templates(self):
'''Apply package templates '''Apply package templates
''' '''

@ -24,6 +24,7 @@ tr = cl_lang.lang()
tr.setLocalDomain('cl_lib') tr.setLocalDomain('cl_lib')
tr.setLanguage(sys.modules[__name__]) tr.setLanguage(sys.modules[__name__])
import cl_overriding
from cl_datavars import DataVars from cl_datavars import DataVars
class APIError(Exception): class APIError(Exception):
@ -57,7 +58,8 @@ class _services(color_print, libVars):
globals(), locals(), globals(), locals(),
['serviceAPI']), ['serviceAPI']),
'serviceAPI') 'serviceAPI')
except (ImportError, AttributeError): except (ImportError, AttributeError), e:
self.printERROR(str(e).strip())
self.printERROR(_("Can not import module %s")% apiFile) self.printERROR(_("Can not import module %s")% apiFile)
cl_overriding.exit(1) cl_overriding.exit(1)
return className return className
@ -75,7 +77,8 @@ class _services(color_print, libVars):
className = self.getApiClass(apiFile) className = self.getApiClass(apiFile)
try: try:
apiObject = className() apiObject = className()
except: except Exception, e:
self.printERROR(str(e).strip())
self.printERROR(_("Can not create API object")) self.printERROR(_("Can not create API object"))
self.printERROR(_("Module %s")% apiFile) self.printERROR(_("Module %s")% apiFile)
cl_overriding.exit(1) cl_overriding.exit(1)
@ -152,13 +155,13 @@ class _pkgAPI(object):
def __init__(self, pkgName): def __init__(self, pkgName):
services = _services() services = _services()
self.var = False self.var = False
varObj = services.runMethodToPkg(pkgName, 'getVars') varObj = services.runMethodToPkg(pkgName, 'get_vars')
if varObj: if varObj:
self.var = attribute(varObj) self.var = attribute(varObj)
pkgObj = services.getPkgApi(pkgName) pkgObj = services.getPkgApi(pkgName)
for attr in dir(pkgObj): for attr in dir(pkgObj):
if not attr.startswith("_") and callable(getattr(pkgObj, attr)) and\ if not attr.startswith("_") and callable(getattr(pkgObj, attr)) and\
getattr(pkgObj, attr).im_func.func_code.co_varnames==('self',): getattr(pkgObj, attr).im_func.func_code.co_argcount == 1:
setattr(self, attr, getattr(pkgObj, attr)) setattr(self, attr, getattr(pkgObj, attr))
def __getattribute__(self, attr): def __getattribute__(self, attr):
@ -180,8 +183,8 @@ class _allPkg(object):
to sort in descending order to sort in descending order
''' '''
prioritetA = objectA.getPrioritet() prioritetA = objectA.get_prioritet()
prioritetB = objectB.getPrioritet() prioritetB = objectB.get_prioritet()
if prioritetA == prioritetB: if prioritetA == prioritetB:
return 0 return 0
elif prioritetA < prioritetB: elif prioritetA < prioritetB:
@ -194,8 +197,8 @@ class _allPkg(object):
to sort in descending order to sort in descending order
''' '''
prioritetA = objectA.getPrioritet() prioritetA = objectA.get_prioritet()
prioritetB = objectB.getPrioritet() prioritetB = objectB.get_prioritet()
if prioritetA == prioritetB: if prioritetA == prioritetB:
return 0 return 0
elif prioritetA > prioritetB: elif prioritetA > prioritetB:

@ -4387,8 +4387,8 @@ variable 'cl-name'"))
nameFileTemplate) nameFileTemplate)
preReturn(pathProg) preReturn(pathProg)
return ([], False) return ([], False)
if not (flagSymlink and os.path.isdir(pathOldFile)):
self.openFiles(nameFileTemplate, pathOldFile) self.openFiles(nameFileTemplate, pathOldFile)
if not objHeadNew.params.has_key("chown"): if not objHeadNew.params.has_key("chown"):
# Устанавливаем владельцем конфигурационного файла, # Устанавливаем владельцем конфигурационного файла,
# пользователя по умолчанию (переменная шаблона ur_login) # пользователя по умолчанию (переменная шаблона ur_login)

Loading…
Cancel
Save