def __writeVarValue(self, vname, val, location, header): """Записать значение в calculate.ini Параметры: vname имя переменной val значение переменной location расположение ini файла ('default', 'local', 'remote') header раздел ini файла ('client', 'server', 'main') Возвращаемые значение: True запись успешна False запись не удалaсь """ # получаем путь до ini файла name_calculate_ini = self.__getPathCalculateIni(location) # извлекаем из полного имени файла путь onlydir = os.path.split(name_calculate_ini)[0] try: # проверяем чтобы путь до ини файла существовал if not os.path.exists(onlydir): # создаем его если отсутствует os.makedirs(onlydir) except OSError(nerr, msg): cl_overriding.printERROR(str(nerr) + " " + str(msg)) return False config = iniParser(name_calculate_ini) # Получаем секцию конфигурационного файла if not header: header = self.__getSection(vname) return config.setVar(header, {vname: convertStrListDict(val)})
def convert(self): """Конвертирование переменных сервера в словарь новых переменных""" parserObj = iniParser(self.envPath) clientVars = parserObj.getAreaVars("client") # convertVars = {"service":{"name":"value", ...}, ...} convertVars = {} for nameVar in clientVars.keys(): if nameVar in self.convertData.keys(): service = self.convertData[nameVar]["service"] nameVarService = self.convertData[nameVar]["replace"] value = convertStrListDict(clientVars[nameVar].encode("UTF-8")) if not service in convertVars.keys(): convertVars[service] = {} convertVars[service][nameVarService] = value return convertVars
def flIniFile(self): """Заместить значение переменных значениями из ини файлов Возвращаемые значения: cловарь импортированных переменных - переменные считаны False - файл не был обнаружен """ # Cловарь переменных из ini файлов importVars = {} calculate_ini_files = self.Get("cl_env_path") # активные секции (секции из которых будут использованы переменные) act_section = self.__getActiveSections() set_act_section = set(act_section) i = 0 # Алиасы к путям env locations = self.Get("cl_env_location") for name_calculate_ini in calculate_ini_files: # проверить сущестование ini файла if os.path.exists(name_calculate_ini): # получить объект настроенный на ini config = iniParser(name_calculate_ini) # получаем все секции из конфигурационного файла allsect = config.getAllSectionNames() if not allsect: continue # находим встречающиеся у обоих секции act_sect = tuple(set(allsect) & set_act_section) # словарь переменных для ini - файла importFileVars = {} # получаем все переменные из всех секций for section in act_sect: allvars = config.getAreaVars(section) if allvars == False: return False # словарь переменных для ini - файла importFileVars = {} # принудительно переписать все переменные окружения # полученные из ini for (k, v) in allvars.items(): k = k.encode("UTF-8") value = convertStrListDict(v.encode("UTF-8")) self.Set(k, value, True) importFileVars[k] = value if i < 3: importVars[locations[i]] = importFileVars i += 1 return importVars
def __writeVarValue(self, vname, val, location, header): '''Записать значение в calculate.ini Параметры: vname имя переменной val значение переменной location расположение ini файла ('default', 'local', 'remote') header раздел ini файла ('client', 'server', 'calculate') Возвращаемые значение: True запись успешна False запись не удалсь ''' # получаем все пути до ini файлов calculate_ini = self.__getPathCalculateIni() # получаем полный путь до файла ini if location == 'default': name_calculate_ini = calculate_ini[2] elif location == 'local': name_calculate_ini = calculate_ini[1] elif location == 'remote': name_calculate_ini = calculate_ini[0] else: return False # извлекаем из полного имени файла путь onlydir = os.path.split(name_calculate_ini)[0] try: # проверяем чтобы путь до ини файла существовал if not os.path.exists(onlydir): # создаем его если отсутствует os.makedirs(onlydir) except OSError (nerr,msg): print nerr, msg return False config = iniParser(name_calculate_ini) # Получаем секцию конфигурационного файла if not header: header = self.__getSection(vname) return config.setVar(header,{vname: cl_utils.convertStrListDict(val)})