Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.4.8. 関連付けオブジェクトの使用

Common Information Model は、管理オブジェクト間の関係を定義します。関連付けオブジェクトは、他の 2 つのオブジェクト間の関係を定義します。

関連付けインスタンスへのアクセス

特定のターゲットオブジェクトを参照する関連付けオブジェクトの一覧を取得するには、以下のように references() メソッドを使用します。

instance_object.references(
  ResultClass=class_name,
  Role=role,
  IncludeQualifiers=include_qualifiers,
  IncludeClassOrigin=include_class_origin,
  PropertyList=property_list)

特定のターゲットオブジェクトを参照する最初の関連付けオブジェクトにアクセスするには、first_reference() メソッドを使用します。

instance_object.first_reference(
...   ResultClass=class_name,
...   Role=role,
...   IncludeQualifiers=include_qualifiers,
...   IncludeClassOrigin=include_class_origin,
...   PropertyList=property_list)
>

instance_object を、検査するインスタンスオブジェクト名に置き換えます。以下のパラメーターを指定すると結果をフィルターにかけられます。

  • ResultClass: 返される各オブジェクトは、このクラス、またはそのいずれかのサブクラスのインスタンスである必要があります。または、このクラスまたはいずれかのサブクラスである必要があります。デフォルト値は None です。
  • Role: 返される各オブジェクトは、このパラメーターの値に合致する名前を持つプロパティーでターゲットオブジェクトを参照する必要があります。デフォルト値は None です。

他のパラメーターは以下のとおりです。

  • IncludeQualifiers: 応答に、QUALIFIER 要素として各オブジェクト (オブジェクト、および返されるすべてのプロパティー上の修飾子を含む) を追加するどうかを示すブール値。デフォルト値は False です。
  • IncludeClassOrigin: 返される各オブジェクトで適切な全要素に CLASSORIGIN 属性が存在すべきかどうかを示すブール値。デフォルト値は False です。
  • PropertyList: このリストのメンバーは 1 つ以上のプロパティー名を定義します。返されたオブジェクトは、このリストにないプロパティーには要素を含めません。PropertyList が空のリストである場合は、返されるオブジェクトにプロパティーは含まれません。None の場合、追加のフィルタリングは定義されません。デフォルト値は None です。

例22.35 関連付けインスタンスへのアクセス

LMI_LANEndpoint クラスは、特定のネットワークインターフェースデバイスに関連付けられる通信エンドポイントを表します。例22.5「ネームスペースオブジェクトへのアクセス」 で作成した ns ネームスペースオブジェクトを使用して、ネットワークインターフェースデバイス eth0 用に LMI_LANEndpoint クラスのインスタンスを作成し、これを変数 lan_endpoint に割り当てるには、インタラクティブプロンプトに以下のコマンドを入力します。

> lan_endpoint = ns.LMI_LANEndpoint.first_instance({
...   "Name" : "eth0"})
>

LMI_BindsToLANEndpoint オブジェクトを参照する最初の関連付けオブジェクトにアクセスし、これを変数 bind に割り当てるには、以下を入力します。

> bind = lan_endpoint.first_reference(
...   ResultClass="LMI_BindsToLANEndpoint")
>

これで Dependent プロパティーを使用して、対応するネットワークインターフェースデバイスの IP アドレスを表す依存 LMI_IPProtocolEndpoint クラスにアクセスすることができます。

> ip = bind.Dependent.to_instance()
> print ip.IPv4Address
192.168.122.1
>
関連付けインスタンス名へのアクセス

特定のインスタンスオブジェクトの関連付けインスタンス名の一覧を取得するには、以下のように reference_names() メソッドを使用します。

instance_object.reference_names(
  ResultClass=class_name,
  Role=role)

特定のインスタンスオブジェクトの最初の関連付けインスタンスにアクセスするには、first_reference_name() メソッドを使用します。

instance_object.first_reference_name(
  ResultClass=class_name,
  Role=role)

instance_object を、検査するインスタンスオブジェクト名に置き換えます。以下のパラメーターを指定すると結果をフィルターにかけられます。

  • ResultClass: 返される各オブジェクトは、このクラスのインスタンスかそのサブクラスの 1 つのインスタンス、または、このクラスまたはそのサブクラスの 1 つである必要があります。デフォルト値は None です。
  • Role: 返される各オブジェクトは、このパラメーターの値に合致する名前を持つプロパティーでターゲットインスタンスを参照するオブジェクトを識別します。デフォルト値は None です。

例22.36 関連付けインスタンス名へのアクセス

例22.35「関連付けインスタンスへのアクセス」 で作成した lan_endpoint インスタンスオブジェクトを使用するには、LMI_BindsToLANEndpoint オブジェクトを参照する最初の関連付け インスタンス名にアクセスし、これを変数 bind に割り当てるには、以下を入力します。

> bind = lan_endpoint.first_reference_name(
...   ResultClass="LMI_BindsToLANEndpoint")

これで Dependent プロパティーを使用して、対応するネットワークインターフェースデバイスの IP アドレスを表す依存 LMI_IPProtocolEndpoint クラスにアクセスすることができます。

> ip = bind.Dependent.to_instance()
> print ip.IPv4Address
192.168.122.1
>