Red Hat Training

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

22.4.6. インスタンス名の使用

LMIShell インスタンス名は、プライマリーキーとその値のセットを持つオブジェクトです。この種類のオブジェクトは、インスタンスを正確に識別します。

インスタンス名へのアクセス

CIMInstance オブジェクトは CIMInstanceName オブジェクトにより識別されます。利用可能なインスタンス名オブジェクトの一覧を取得するには、以下のように instance_names() メソッドを使用します。

class_object.instance_names()

class_object を、検査するクラスオブジェクト名に置き換えます。このメソッドは、LMIInstanceName オブジェクトの一覧を返します。

クラスオブジェクトの最初のインスタンス名オブジェクトにアクセスするには、first_instance_name() メソッドを使用します。

class_object.first_instance_name()

このメソッドは、LMIInstanceName オブジェクトを返します。

instance_names()first_instance_name() は、インスタンス名オブジェクトの一覧を表示したり、最初のインスタンス名オブジェクトを返したりするほかにも、オプションの引数をサポートして結果をフィルターすることもできます。

class_object.instance_names(criteria)
class_object.first_instance_name(criteria)

criteria を、鍵と値のペアで構成される辞書で置き換えます。この鍵は鍵プロパティーを表し、値はこの鍵プロパティーの必要な値を表します。

例22.27 インスタンス名へのアクセス

例22.7「クラスオブジェクトへのアクセス」 に作成した cls クラスオブジェクトの最初のインスタンス 名で、eth0 と同等の Name キープロパティーがあるものを見つけ、これを変数 device_name に割り当てるには、インタラクティブプロンプトに以下のコマンドを入力します。

> device_name = cls.first_instance_name({"Name": "eth0"})
>
インスタンス名の検査

すべてのインスタンス名オブジェクトには、そのクラス名と、所属するネームスペースに関する情報が保存されています。

特定のインスタンス名オブジェクトのクラス名を取得するには、以下の構文を使用します。

instance_name_object.classname

instance_name_object を、検査するインスタンス名オブジェクトの名前に置き換えます。これは、クラス名を表す文字列を返します。

インスタンス名オブジェクトが所属するネームスペースに関する情報を取得するには、以下を使用します。

instance_name_object.namespace

これは、名前空間を表す文字列を返します。

例22.28 インスタンス名の検査

例22.27「インスタンス名へのアクセス」 で作成された device_name インスタンス名オブジェクトを検査して、そのクラス名と対応するネームスペースを表示するには、インタラクティブプロンプトに以下のコマンドを入力します。

> device_name.classname
u'LMI_IPNetworkConnection'
> device_name.namespace
'root/cimv2'
>
新規インスタンス名の作成

LMIShell を使用すると、リモートオブジェクトのすべてのプライマリーキーを知っている場合に、新たにラップされた CIMInstanceName オブジェクトを作成できます。このインスタンス名オブジェクトを使用して、インスタンスオブジェクト全体を取得できます。

クラスオブジェクトの新規インスタンス名を作成するには、以下のように new_instance_name() メソッドを使用します。

class_object.new_instance_name(key_properties)

class_object をクラスオブジェクト名に置き換え、key_properties を、鍵と値のペアで構成される辞書に置き換えます。このメソッドは、LMIInstanceName オブジェクトを返します。

例22.29 新規インスタンス名の作成

LMI_Account クラスは、管理システム上のユーザーアカウントを表します。例22.5「ネームスペースオブジェクトへのアクセス」 で作成した ns ネームスペースオブジェクトを使用して、管理システムの lmishell-user ユーザーを表す LMI_Account クラスの新規インスタンス名を作成するには、インタラクティブプロンプトに以下のコマンドを入力します。

> instance_name = ns.LMI_Account.new_instance_name({
...   "CreationClassName" : "LMI_Account",
...   "Name" : "lmishell-user",
...   "SystemCreationClassName" : "PG_ComputerSystem",
...   "SystemName" : "server"})
>
鍵プロパティーの一覧表示とアクセス

特定のインスタンス名オブジェクトの利用可能な鍵プロパティーの一覧を表示するには、以下のように print_key_properties() メソッドを使用します。

instance_name_object.print_key_properties()

instance_name_object を、検査するインスタンス名オブジェクトの名前に置き換えます。このメソッドは、利用可能な鍵プロパティーを標準出力に出力します。

利用可能な鍵プロパティーの一覧を取得するには、key_properties() メソッドを使用します。

instance_name_object.key_properties()

このメソッドは文字列の一覧を返します。

例22.30 利用可能な鍵プロパティーの一覧表示

例22.27「インスタンス名へのアクセス」 で作成した device_name インスタンス名オブジェクトを検査して、利用可能な鍵プロパティーの一覧を表示するには、インタラクティブプロンプトに以下のコマンドを入力します。

> device_name.print_key_properties()
CreationClassName
SystemName
Name
SystemCreationClassName
>

この鍵プロパティーの一覧を変数 device_name_properties に割り当てるには、以下を入力します。

> device_name_properties = device_name.key_properties()
>

特定の鍵プロパティーの現在の値を取得するには、以下の構文を使用します。

instance_name_object.key_property_name

key_property_name をアクセスする鍵プロパティー名に置き換えます。

例22.31 個別の鍵プロパティーへのアクセス

例22.27「インスタンス名へのアクセス」 で作成した device_name インスタンス名オブジェクトを検査して、鍵プロパティー SystemName の値を表示するには、インタラクティブプロンプトに以下のコマンドを入力します。

> device_name.SystemName
u'server.example.com'
>
インスタンス名のインスタンスへの変換

インスタンス名はインスタンスに変換できます。これを行うには、以下のように to_instance() メソッドを使用します。

instance_name_object.to_instance()

instance_name_object を、変換するインスタンス名オブジェクトの名前に置き換えます。このメソッドは、LMIInstance オブジェクトを返します。

例22.32 インスタンス名のインスタンスへの変換

例22.27「インスタンス名へのアクセス」 で作成した device_name インスタンス名オブジェクトをインスタンスオブジェクトに変換し、これを変数 device に割り当てるには、インタラクティブプロンプトに以下のコマンドを入力します。

> device = device_name.to_instance()
>