Esempio n. 1
0
    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)})
Esempio n. 2
0
 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
Esempio n. 3
0
    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
Esempio n. 4
0
    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)})