Sun Directory Services 3.1 管理ガイド

Condense

「Condense」セクションには、「Extract」セクションから得られるトークンの操作を定義する変数や、テーブル定義で前に定義した変数を指定します。

このセクションは、「Build」セクションで行う属性値の定義を単純化します。

「Condense」セクションで定義する変数には、次のものがあります。

「Condense」セクションの変数には複数の代替規則を指定できます。変換処理では、入力情報と一致する最初の規則が使用されます。それらの規則は、2 つのパイプ記号で区切ります、また、それらの規則は同じ式の一部でなければなりません。たとえば、次の規則は有効です。

fifi=$parameter1 - $parameter2 || $parameter1 || juju

しかし、次の規則は有効ではありません。

fifi=$parameter1 - $parameter2
fifi=$parameter1
fifi=juju

「Condense」セクションには、変数をいくつでも指定できます。変数の間に従属関係がある場合は、指定する順序に意味があります。たとえば、次のように指定できます。

fifi=$parameter1 - $parameter2 || $parameter1 || juju
riri=$fifi - $parameterA
loulou=$fifi - $parameterB

split 関数

split 関数の構文は次のとおりです。

variableA=split(what, "separator", "add_prefix", "add_suffix", order)

variableA は変数名です。

what は、この操作を適用する情報単位 (変数またはパラメータ) です。

separator は、情報をどこで分割するかを示します。この値には空白が含まれることがあるため、全体を引用符で囲みます。

add_prefix は、分割によって得られる各項目に付ける接頭辞です。この値には空白が含まれることがあるため、全体を引用符で囲みます。

add_suffix は、分割によって得られる各項目に付ける接尾辞です。この値には空白が含まれることがあるため、全体を引用符で囲みます。

order は、分割によって得られる項目を使用する順序です。使用できる値は left2right か right2left です。

たとえば、nis.mapping ファイルでは、次の変数定義を使って、NIS ドメイン名を LDAP ドメインの一連の構成要素属性に分割します。

DC_NAMING=split($DOMAIN_NAME, ".", "dc=", ",", left2right)

ドメイン名に eng.europe.xyz.com が指定されている場合は、結果は次のようになります。

dc=eng, dc=europe, dc=xyz, dc=com

string2instances 関数

string2instances 関数は、指定された文字列をインスタンスに分解します。この操作の構文は次のとおりです。

variableA=string2instances("string", "separator")

variableA は変数名です。

string は、この操作を適用する情報単位 (変数またはパラメータ) です。この値には空白が含まれることがあるため、全体を引用符で囲みます。

separator は、情報をどこでインスタンスに分割するかを示します。この値には空白が含まれることがあるため、全体を引用符で囲みます。

たとえば、nis.mapping は、bootparams ファイルの「Condense」セクションにある次の定義を使って、一連のパラメータを個別のインスタンスに分解します。

bootParameterT=string2instances($parametersT," ")

さらに、string2instances 関数は、オブジェクトクラスの継承ツリーを指定するときにも使用します。たとえば、特定のマッピング定義を使って作成したエントリのオブジェクトクラスが organizationalPerson なら、マッピング定義の「Condense」セクションには次の行が必要です。

objectClassT=string2instances("top person organizationalPerson", " ")

instances2string 関数

instances2string 関数は、いくつかのインスタンスを結合して 1 つの文字列にします。この操作の構文は次のとおりです。

variableA=instances2string(what, "separator")

variableA は変数名です。

what は、いくつかのインスタンスを持つ変数です。

separator は、文字列の各要素を区切る値です。この値は空白の場合があるため、全体を引用符で囲みます。

たとえば、あるマシン名と別名のリストを見つけるには、次の変数を使用します。

NameList=instances2string($cn, " ")

cn 属性の値が camembert、Cam、Bertie の場合は、結果は次のようになります。

camembert Cam Bertie

trim 関数

trim 関数は、パラメータを囲む不要な空白を取り除きます。trim 操作の構文は次のとおりです。

variableA=trim(parameter)

variableA は変数名です。

parameter は、空白を取り除きたい項目です。

たとえば、別名リストを構成メンバーに分解する場合は、次の変数を指定できます。


aliasMember=string2instances($aliasList, ",")
trimAliasMember=trim($aliasMember)

string2instances 操作によって得られる各 aliasMember パラメータが処理され、空白が取り除かれます。

getrdn 関数

getrdn 関数は、エントリの名前付き属性を返します。これは、エントリの相対識別名で使われる属性です。getrdn 操作の構文は次のとおりです。

variableA=getrdn()

注 -

getrdn 関数は、「Condense」セクションの変数でしか使用できません。


たとえば、あるマシンの cn 属性の値は camembert、Cam、Bertie で、相対識別名で使用されるそのマシンの実際のシステム名は camembert である場合は、次の変数を作成できます。

HostName=getrdn()

getrdn 関数は、camembert という名前を返します。


注 -

getrdn 関数では、大文字と小文字を区別します。


exclude 関数

exclude 関数は、文字列のリストから値を取り除きます。この操作の構文は次のとおりです。

variableA=exclude(string, exclude-value, "separator")

variableA は変数名です。

string には、リストまたは文字列を指定します。

exclude-value は、除外する値です。

separator は、リストまたは文字列の各要素を区切る値です。この値は空白の場合があるため、全体を引用符で囲みます。

たとえば、あるマシンの別名のリストを得るには、名前のリストから標準名を除外する必要があります。次のような変数を指定できます。

NameList=instances2string($cn, " ")
HostName=getrdn()
HostAliases=exclude(NameList, HostName, " ")

nis.mapping では、hosts マッピング定義の「Condense」セクションに次の指定があります。

ipHostAliasesLineT=exclude($allIpHostAliasesT,$ipHostNameT, " ")

この定義によって、このホストの別名のリストから ipHostName が除外されます。