The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

slapo-retcode (5)
  • >> slapo-retcode (5) ( Русские man: Форматы файлов )
  •  

    НАЗВАНИЕ

    slapo-retcode - наложение генерации результирующих кодов для slapd  

    ОБЗОР

    /usr/local/etc/openldap/slapd.conf  

    ОПИСАНИЕ

    Наложение slapd(8) retcode полезно для тестирования поведения клиентов при возникновении сгенерированных сервером ошибочных или необычных ответов, например, кодов ошибок, отсылок, чрезмерного времени отклика и т.п.

    Ошибочные ответы генерируются в соответствии с различными стратегиями.

    Согласно первой стратегии, все операции, нацеленные на определённое конфигурируемое поддерево, приводят к поиску объекта, связанного с запрашиваемым DN, и проверке этого объекта на наличие данных кода возврата: кода ответа, а также опциональных полей (текстового сообщения, настраиваемой задержки, поля matched DN и, если код ответа был "referral", отсылки (или списка отсылок)).

    В файле retcode.conf представлены широко известные коды ответов из документов, определяющих стандарты. Этот файл может быть включён после инициализации экземпляра данного наложения.

    Во втором режиме при возвращении в качестве промежуточных ответов на поисковый запрос объектов, построенных на объектных классах, унаследованных от errAbsObject, таких как errObject или errAuxObject, они преобразуются в ответ, обусловленный содержимым этих объектов.

    В третьем режиме в базе данных, к которой применяется наложение, ищутся объекты, построенные на объектных классах, унаследованных от errAbsObject; в случае нахождения таких объектов, их содержимое используется для вычисления соответствующего ответа.

    Данное поведение отключается путём использования элемента управления manageDSAit (RFC 3296); в этом случае результирующий объект, независимо от того, присутствует ли он в каталоге, динамически генерируется наложением или содержится в запросе, обрабатывается как обычно.

    Специфичные для наложения retcode директивы конфигурации должны иметь префикс retcode-, во избежание конфликтов с директивами базы данных, к которой применяется это наложение, или с другими наложениями, применяемыми к той же базе данных. Для конфигурации наложения могут быть использованы следующие директивы:

    retcode-parent <DN>
    Эта директива определяет родительское DN поддерева, где будут находиться динамически сгенерированные записи. Если она не задана, используется суффикс базы данных, к которой применяется наложение.
    retcode-item <RDN> <errCode> [op=<oplist>] [text=<message>] [ref=<referral>] [sleeptime=<sec>] [matched=<DN>] [unsolicited=<OID>[:<data>]] [flags=[pre|post-]disconnect[,...]]
    Динамически сгенерированная запись, расположенная в поддереве retcode-parent. В качестве errCode указывается номер кода ответа; он может задаваться в любом формате, который поддерживает strtol(3). Опциональное поле oplist представляет собой список операций, вызов которых приведёт к генерации кода ответа; при его отсутствии действие директивы распространяется на все операции. Параметр matched представляет собой "совпавшее" DN, которое будет возвращено вместе с ошибкой, а параметр text - опциональное диагностическое сообщение. Параметр ref разрешено использовать только для кода возврата referral. Задание параметра sleeptime приведёт к тому, что slapd(8) выполнит задержку перед обработкой операции на указанное количество секунд. Параметр unsolicited может быть использован для возврата определённых в RFC 4511 сообщений произвольных уведомлений; если указанный в этом параметре OID отличен от "0", генерируется расширенный ответ с добавлением опциональных данных data. Если в параметре flags содержится disconnect или pre-disconnect, slapd(8) выполнит внезапное разъединение без отправки уведомления; при post-disconnect разъединение произойдёт непосредственно после отправки положенного ответа.
    retcode-indir
    Включает использование хранимых в каталоге объектов с объектным классом errAbsObject. Это может привести к большому количеству излишней нагрузки на каталог.
    retcode-sleep [-]<n>
    Определяет время задержки в секундах перед фактической обработкой какой-либо операции. Если указано отрицательное число, в качестве времени задержки используется случайное количество секунд в промежутке от нуля до абсолютного значения аргумента данной директивы.

     

    НАБОР СХЕМЫ ДАННЫХ

    Наложение retcode использует описанный ниже набор схемы данных "return code". Этот набор схемы специально разработан для использования с данным наложением и для других целей не предназначен. Также имейте ввиду, что работа над этим набором схемы продолжается, и потому изменения могут вноситься без уведомления. Набор схемы автоматически загружается наложением.

    Данный набор схемы включает несколько объектных классов и связанных с ними типов атрибутов, которые описаны ниже.

    Код ошибки:

    ( 1.3.6.1.4.1.4203.666.11.4.1.1
        NAME ( 'errCode' )
        DESC 'LDAP error code'
        EQUALITY integerMatch
        ORDERING integerOrderingMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
        SINGLE-VALUE )

    Операции, которые запускают возврат кода ответа:

    ( 1.3.6.1.4.1.4203.666.11.4.1.2
        NAME ( 'errOp' )
        DESC 'Operations the errObject applies to'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

    Текстовое сообщение:

    ( 1.3.6.1.4.1.4203.666.11.4.1.3
        NAME ( 'errText' )
        DESC 'LDAP error textual description'
        EQUALITY caseIgnoreMatch
        SUBSTR caseIgnoreSubstringsMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
        SINGLE-VALUE )

    Время задержки, по прошествии которой ответ фактически возвращается клиенту:

    ( 1.3.6.1.4.1.4203.666.11.4.1.4
        NAME ( 'errSleepTime' )
        DESC 'Time to wait before returning the error'
        EQUALITY integerMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27
        SINGLE-VALUE )

    Возвращаемое клиенту "совпавшее" DN:

    ( 1.3.6.1.4.1.4203.666.11.4.1.5
        NAME ( 'errMatchedDN' )
        DESC 'Value to be returned as matched DN'
        EQUALITY distinguishedNameMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.12
        SINGLE-VALUE )

    OID, который требуется вернуть в качестве OID расширенного ответа в определённых в RFC 4511 ответах произвольных уведомлений (при значении "0" генерируется стандартный ответ, в котором идентификатор сообщения messageID установлен в 0):
    ( 1.3.6.1.4.1.4203.666.11.4.1.6
        NAME ( 'errUnsolicitedOID' )
        DESC 'OID to be returned within unsolicited response'
        EQUALITY objectIdentifierMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.38
        SINGLE-VALUE )

    Строка октетов, которую требуется вернуть в качестве данных в определённом в RFC 4511 ответе произвольного уведомления:

    ( 1.3.6.1.4.1.4203.666.11.4.1.7
        NAME ( 'errUnsolicitedData' )
        DESC 'Data to be returned within unsolicited response'
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.40
        SINGLE-VALUE )

    Если значение этого атрибута TRUE, slapd(8) производит внезапное отключение без уведомления; если FALSE, он отключается по мере необходимости после отправки ответа:

    ( 1.3.6.1.4.1.4203.666.11.4.1.8
        NAME ( 'errDisconnect' )
        DESC 'Disconnect without notice'
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7
        SINGLE-VALUE )

    Абстрактный класс, наличие которого вызывает срабатывание наложения:

    ( 1.3.6.1.4.1.4203.666.11.4.3.0
        NAME ( 'errAbsObject' )
        SUP top ABSTRACT
        MUST ( errCode )
        MAY ( cn $ description $ errOp $ errText $ errSleepTime
            $ errMatchedDN ) )

    Автономный структурный объектный класс для объекта данных, специально созданного для возврата ответного сообщения:

    ( 1.3.6.1.4.1.4203.666.11.4.3.1
        NAME ( 'errObject' )
        SUP errAbsObject STRUCTURAL )

    Вспомогательный объектный класс, предназначенный для изменения поведения существующих объектов:

    ( 1.3.6.1.4.1.4203.666.11.4.3.2
        NAME ( 'errAuxObject' )
        SUP errAbsObject AUXILIARY )

     

    ПРИМЕР

    overlay         retcode
    retcode-parent  "ou=RetCodes,dc=example,dc=com"
    
    # retcode.conf можно найти в директории tests/data/ дерева исходных кодов
    include         ./retcode.conf
    
    # Подождать 10 секунд, затем вернуть success (0x00)
    retcode-item    "cn=Success after 10 seconds" 0x00 sleeptime=10
    # Подождать 10 секунд, затем вернуть timelimitExceeded (0x03)
    retcode-item    "cn=Timelimit after 10 seconds" 0x03 sleeptime=10
    

     

    ФАЙЛЫ

    /usr/local/etc/openldap/slapd.conf
    конфигурационный файл slapd по умолчанию.
     

    СМОТРИТЕ ТАКЖЕ

    slapd.conf(5), slapd-config(5), slapd(8). Наложение slapo-retcode(5) поддерживает динамическую конфигурацию через back-config.  

    ПРИЗНАНИЕ ЗАСЛУГ

    Этот модуль был написан в 2005 году Pierangelo Masarati для SysNet.


     

    Index

    НАЗВАНИЕ
    ОБЗОР
    ОПИСАНИЕ
    НАБОР СХЕМЫ ДАННЫХ
    ПРИМЕР
    ФАЙЛЫ
    СМОТРИТЕ ТАКЖЕ
    ПРИЗНАНИЕ ЗАСЛУГ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру