|
|
|
@ -30,7 +30,7 @@ tr.setLanguage(sys.modules[__name__])
|
|
|
|
|
class var:
|
|
|
|
|
'''Объект "Переменная окружения"'''
|
|
|
|
|
# название сервиса которому принадлежит переменная
|
|
|
|
|
#(Global, Builder, Client, Server итд)
|
|
|
|
|
#(Main, Builder, Client итд)
|
|
|
|
|
service = None
|
|
|
|
|
# значение переменной
|
|
|
|
|
value = ""
|
|
|
|
@ -66,10 +66,10 @@ class var:
|
|
|
|
|
#обновились то нужно)
|
|
|
|
|
upd = False
|
|
|
|
|
for depVarName in self.dependValues.keys():
|
|
|
|
|
value = self.parentObj.__getattribute__(depVarName).Get()
|
|
|
|
|
value = getattr(self.parentObj, depVarName).Get()
|
|
|
|
|
if self.dependValues[depVarName] != value:
|
|
|
|
|
self.dependValues[depVarName] =\
|
|
|
|
|
self.parentObj.__getattribute__(depVarName).value
|
|
|
|
|
getattr(self.parentObj, depVarName).value
|
|
|
|
|
upd = True
|
|
|
|
|
break
|
|
|
|
|
return upd
|
|
|
|
@ -108,7 +108,7 @@ class DataVars(object):
|
|
|
|
|
|
|
|
|
|
# Импортируемые модули - (раздел: модуль переменных, модуль заполнения
|
|
|
|
|
#переменных)
|
|
|
|
|
__modlist={'Global':('cl_vars','cl_fill')}
|
|
|
|
|
__modlist={'Main':('cl_vars','cl_fill')}
|
|
|
|
|
def __init__(self):
|
|
|
|
|
# Для нахождения зависимостей переменных
|
|
|
|
|
self.__levelNumber = 0
|
|
|
|
@ -116,14 +116,14 @@ class DataVars(object):
|
|
|
|
|
# Для хранения импортированных модулей и объектов
|
|
|
|
|
#[(cекция,импортированный модуль переменных, объект заполнения),]
|
|
|
|
|
self._importList = []
|
|
|
|
|
self.importData("Global")
|
|
|
|
|
self.importData("Main")
|
|
|
|
|
# Переменные которые нужно записать
|
|
|
|
|
self.varsNeedWritten = []
|
|
|
|
|
|
|
|
|
|
def importData(self, section, modlist=[]):
|
|
|
|
|
"""Импортирует модули с переменными и модули с функциями заполнения
|
|
|
|
|
|
|
|
|
|
section секция раздела (Global, Server, Client итд)
|
|
|
|
|
section секция раздела (Main, Client итд)
|
|
|
|
|
создает необходимые структуры данных
|
|
|
|
|
"""
|
|
|
|
|
if modlist:
|
|
|
|
@ -190,7 +190,7 @@ class DataVars(object):
|
|
|
|
|
for section, moduleVar, fillobj in self._importList:
|
|
|
|
|
if fillobj and hasattr(fillobj, nameMethod):
|
|
|
|
|
flagFindMetod = True
|
|
|
|
|
method = fillobj.__getattribute__(nameMethod)
|
|
|
|
|
method = getattr(fillobj, nameMethod)
|
|
|
|
|
break
|
|
|
|
|
if flagFindMetod:
|
|
|
|
|
return (dataVar,method)
|
|
|
|
@ -215,8 +215,8 @@ class DataVars(object):
|
|
|
|
|
self.__LevelsVar.append((self.__levelNumber, nameVar))
|
|
|
|
|
self.__levelNumber += 1
|
|
|
|
|
#nameMethod = "get_" + nameVar
|
|
|
|
|
if self.__dict__.has_key(nameVar):
|
|
|
|
|
ret = self.__getattribute__(nameVar).Get()
|
|
|
|
|
if hasattr(self, nameVar):
|
|
|
|
|
ret = getattr(self, nameVar).Get()
|
|
|
|
|
elif self.__findVarData(nameVar):
|
|
|
|
|
dictVar, methodFill =self.__findVarData(nameVar)
|
|
|
|
|
varobj = var(self)
|
|
|
|
@ -224,17 +224,17 @@ class DataVars(object):
|
|
|
|
|
self.__setAttributesVar(varobj, nameVar, dictVar)
|
|
|
|
|
if methodFill:
|
|
|
|
|
varobj.Fill = methodFill
|
|
|
|
|
self.__setattr__(nameVar, varobj)
|
|
|
|
|
ret = self.__getattribute__(nameVar).Get()
|
|
|
|
|
setattr(self, nameVar, varobj)
|
|
|
|
|
ret = getattr(self, nameVar).Get()
|
|
|
|
|
self.__levelNumber -= 1
|
|
|
|
|
if self.__levelNumber == 0 and\
|
|
|
|
|
self.__getattribute__(nameVar).fillStart and\
|
|
|
|
|
getattr(self, nameVar).fillStart and\
|
|
|
|
|
len(self.__LevelsVar)>1:
|
|
|
|
|
links = self.__getLinks(self.__LevelsVar)
|
|
|
|
|
for name in links.keys():
|
|
|
|
|
for nameLink in links[name].keys():
|
|
|
|
|
val = self.__getattribute__(nameLink).Get()
|
|
|
|
|
self.__getattribute__(name).dependValues[nameLink] = val
|
|
|
|
|
val = getattr(self, nameLink).Get()
|
|
|
|
|
getattr(self, name).dependValues[nameLink] = val
|
|
|
|
|
if self.__levelNumber == 0:
|
|
|
|
|
self.__LevelsVar = []
|
|
|
|
|
return ret
|
|
|
|
@ -244,22 +244,22 @@ class DataVars(object):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __Set(self, nameVar, value, force=False):
|
|
|
|
|
nameMethod = "get_" +nameVar
|
|
|
|
|
if not self.__dict__.has_key(nameVar) and self.__findVarData(nameVar):
|
|
|
|
|
nameMethod = "get_" + nameVar
|
|
|
|
|
if not hasattr(self, nameVar) and self.__findVarData(nameVar):
|
|
|
|
|
dictVar, methodFill =self.__findVarData(nameVar)
|
|
|
|
|
varobj = var(self)
|
|
|
|
|
# Устанавливаем аттрибуты
|
|
|
|
|
self.__setAttributesVar(varobj, nameVar, dictVar)
|
|
|
|
|
if methodFill:
|
|
|
|
|
varobj.Fill = methodFill
|
|
|
|
|
self.__setattr__(nameVar, varobj)
|
|
|
|
|
if self.__dict__.has_key(nameVar):
|
|
|
|
|
setattr(self, nameVar, varobj)
|
|
|
|
|
if hasattr(self, nameVar):
|
|
|
|
|
if not force and "r" in getattr(self, nameVar).mode:
|
|
|
|
|
print _("Attempt to rewrite a variable for reading") +": %s"\
|
|
|
|
|
%nameVar
|
|
|
|
|
return False
|
|
|
|
|
self.__getattribute__(nameVar).fillStart = False
|
|
|
|
|
return self.__getattribute__(nameVar).Set(value)
|
|
|
|
|
getattr(self, nameVar).fillStart = False
|
|
|
|
|
return getattr(self, nameVar).Set(value)
|
|
|
|
|
|
|
|
|
|
def Set(self, nameVar, value, force=False):
|
|
|
|
|
return self.__Set(nameVar, value, force)
|
|
|
|
@ -338,11 +338,8 @@ storage of variables templates")%location
|
|
|
|
|
|
|
|
|
|
vname - имя переменной
|
|
|
|
|
"""
|
|
|
|
|
if self.__dict__.has_key(vname):
|
|
|
|
|
if self.__dict__[vname].service == 'Global':
|
|
|
|
|
return 'calculate'
|
|
|
|
|
else:
|
|
|
|
|
return self.__dict__[vname].service.lower()
|
|
|
|
|
if hasattr(self, vname):
|
|
|
|
|
return getattr(self, vname).service.lower()
|
|
|
|
|
|
|
|
|
|
def __writeVarValue(self, vname, val, location, header):
|
|
|
|
|
'''Записать значение в calculate.ini
|
|
|
|
@ -351,7 +348,7 @@ storage of variables templates")%location
|
|
|
|
|
vname имя переменной
|
|
|
|
|
val значение переменной
|
|
|
|
|
location расположение ini файла ('default', 'local', 'remote')
|
|
|
|
|
header раздел ini файла ('client', 'server', 'calculate')
|
|
|
|
|
header раздел ini файла ('client', 'server', 'main')
|
|
|
|
|
|
|
|
|
|
Возвращаемые значение:
|
|
|
|
|
True запись успешна
|
|
|
|
@ -415,7 +412,7 @@ storage of variables templates")%location
|
|
|
|
|
val значение переменной
|
|
|
|
|
force "принудительный режим"
|
|
|
|
|
location расположение ini файла ('default', 'local', 'remote')
|
|
|
|
|
header раздел ini файла ('client', 'server', 'calculate')
|
|
|
|
|
header раздел ini файла ('client', 'server', 'main')
|
|
|
|
|
'''
|
|
|
|
|
if self.__Set(vname, val, force)!= False:
|
|
|
|
|
if not val.strip():
|
|
|
|
@ -441,12 +438,37 @@ storage of variables templates")%location
|
|
|
|
|
"""активные секции в ini файле"""
|
|
|
|
|
act_section = []
|
|
|
|
|
for service,t,t in self._importList:
|
|
|
|
|
if service == "Global":
|
|
|
|
|
act_section.append('calculate')
|
|
|
|
|
else:
|
|
|
|
|
act_section.append(service.lower())
|
|
|
|
|
act_section.append(service.lower())
|
|
|
|
|
return act_section
|
|
|
|
|
|
|
|
|
|
def GetIniVar(self, section_dot_nameVar):
|
|
|
|
|
"""Получить значение переменной из конфигурационного файла
|
|
|
|
|
|
|
|
|
|
section_dot_nameVar - "имя_секции.имя_переменной_профиля"
|
|
|
|
|
"""
|
|
|
|
|
calculate_ini_files = self.Get('cl_env_path')
|
|
|
|
|
section, spl, name_var = section_dot_nameVar.rpartition(".")
|
|
|
|
|
if section and name_var:
|
|
|
|
|
pass
|
|
|
|
|
elif name_var:
|
|
|
|
|
section = "main"
|
|
|
|
|
else:
|
|
|
|
|
print _("error Datavars.GetIniVar: empty section")
|
|
|
|
|
return False
|
|
|
|
|
# Значение переменной в env файлах
|
|
|
|
|
valueVar = ""
|
|
|
|
|
for name_calculate_ini in calculate_ini_files:
|
|
|
|
|
# проверить сущестование ini файла
|
|
|
|
|
if os.path.exists(name_calculate_ini):
|
|
|
|
|
# получить объект настроенный на ini
|
|
|
|
|
config = iniParser(name_calculate_ini)
|
|
|
|
|
# получаем значение переменной из секции
|
|
|
|
|
value = config.getVar(section, name_var)
|
|
|
|
|
if value is False:
|
|
|
|
|
return False
|
|
|
|
|
valueVar = value
|
|
|
|
|
return valueVar.encode("UTF-8")
|
|
|
|
|
|
|
|
|
|
def flIniFile(self):
|
|
|
|
|
'''Заместить значение переменных значениями из ини файлов
|
|
|
|
|
|
|
|
|
|