Solaris WBEM Services の管理

付録 B Solaris スキーマ

インストール時に CIM Object Manager は、/usr/sadm/mof/ ディレクトリにある MOF ファイルをコンパイルします。MOF ファイルは CIM スキーマや Solaris スキーマを記述するファイルです。CIM スキーマファイルには、Common Information Model の Core Model と Common Model が実装されています。このファイル名の一部には CIM が使用されています。Solaris スキーマファイルには、Common Information Model に対する Solaris 拡張が実装されています。このファイル名の一部には Solaris が使用されています。この付録では次の Solaris スキーマファイルについて説明します。

Solaris スキーマファイル

次の表に、/usr/sadm/mof/ にある Solaris スキーマファイルの簡単な概要を示します。

表 B-1 Solaris スキーマファイル
 Solaris スキーマファイル 説明
Solaris_Schema1.0.mof

Solaris スキーマのすべての MOF ファイルを #pragma Include ステートメントでリスト表示する。MOF ファイルが読み込まれコンパイルされる順番を指定する

Solaris_CIMOM1.0.mof

CIM Object Manager が使用するすべてのシステムプロパティを含む 

Solaris_Core1.0.mof

WBEM のコア機能を実装する。これにより、ユーザーはロケール、修飾子、プロバイダを設定できる 

Solaris_Application1.0.mof

Solaris のパッケージやパッチをモデルとして CIM 内に実装する 

Solaris_System1.0.mof

システムに対する Solaris スキーマコンポーネントを作成する。これらのコンポーネントは、オペレーティングシステムやシステムのプロセスなど。Solaris_Process クラスおよび Solaris_OperatingSystem クラスの定義によって CIM スキーマの定義を拡張する

Solaris_Device1.0.mof

コンピュータが CIM Object Manager とともに動作するように、システムのプロセッサ、シリアルポート、印刷デバイス、および時間設定の記述を可能にする 

Solaris_Acl1.0.mof

ユーザー ACL の基底クラスと修飾子を設定する 

Solaris_Network1.0.mof

ネットワークドメイン、IP サブネット、およびネーミングサービス (NIS、NIS+、LDAP、DNS、およびサーバー /etc ファイルを含む) に関連するクラスを定義する

Solaris_Users1.0.mof

ユーザーのアカウントで実行することのできるクラスを定義する 

ファイルの詳細は、下記の各項を参照してください。

Solaris_Schema1.0.mof ファイル

Solaris_Schema1.0.mof ファイルは、Solaris スキーマに属するすべての MOF ファイルの最上位レベルのコンテナです。このファイルには、MOF ファイルがコンパイル順に表示されています。コンパイルによって生成される Java クラスは CIM Object Manager に送信されます。CIM Object Manager は、それらの Java クラスをイベントとして規定するか、CIM Object Manager Repository に送信し、オブジェクトとして格納します。以下の Solaris_Schema1.0.mof ファイルのリスト表示では、Include ステートメントを必要なコンパイルの順に示しています。


/* 
Title:				Solaris Master MOF 1.0
Description:	Include pragmas for all other mofs
Date:        	05/09/00
Version:     	1.0 
Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.
*/
#pragma Include ("usr/sadm/mof/Solaris_Core1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Application1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_System1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Device1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Network1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_Users1.0.mof")
#pragma Include ("usr/sadm/mof/Solaris_CIMOM1.0.mof")
// This must be the last include since it changes the CIM namespace
#pragma Include ("usr/sadm/mof/Solaris_Acl1.0.mof")

コンパイラは、Solaris_Schema1.0.mof ファイルの宣言を 1 行ずつ解析し、Include ステートメントに指定されたファイルをコンパイルします。このようにしてコンパイラは、Solaris_Schema1.0.mof ファイルに記述されているすべてのファイルをコンパイルします。

Solaris_CIMOM1.0.mof ファイル

Solaris_CIMOM1.0.mof ファイルには、CIM Object Manager が使用するすべてのシステムプロパティが含まれます。


/*
Title	:	    	Solaris CIMOM mof specification
Description:	Models the system properties used by the CIMOM
Date:				05/09/00
Version:			1.0
Copyright (c) 2000 Sun Microsystems, Inc. All Rights Reserved.
*/
#pragma namespace ("root/system")

Qualifier Abstract : boolean = false,
		    Scope(class, association, indication),
		    Flavor(DisableOverride, Restricted);
Qualifier Association : boolean = false,
		    Scope(class, association), 
		    Flavor(DisableOverride);
Qualifier Key : boolean = false, 
		    Scope(property, reference), 
		    Flavor(DisableOverride);
Qualifier Override : string = null,
		    Scope(property, method, reference);
Qualifier Description : string = null,
			 Scope(any), 
			 Flavor(Translatable);
Qualifier Expensive : boolean = false, 
		    Scope(property, reference, method, class, association);
Qualifier In : boolean = true, 
		    Scope(parameter);
Qualifier Provider : string = null, 
		    Scope(any);

[Provider("internal"),
 Description("Each instance becomes part of the classpath")
]
class Solaris_ProviderPath {
    [key] 
    string pathurl;
};

[Provider("internal"),
 Description("This class represents the CIMOM")
]
class Solaris_CIMOM {
    [key] 
    string name;

    [Description("Shuts down the CIMOM")]
    sint8 shutdown();
};

Solaris_Core1.0.mof ファイル

Solaris_Core1.0.mof ファイルは、Solaris_Schema1.0.mof ファイルの後にコンパイルされる最初の Solaris スキーマファイルです。このファイルには、Solaris Provider の Solaris_ComputerSystem クラスの定義、および Solaris_LogRecord クラス、Solaris_LogService クラス、 Solaris_LogServiceProperties クラス、Solaris_LogServiceSetting クラスの定義が含まれます。

Solaris_ComputerSystem クラス

Solaris_Core1.0.mof ファイルの最初のセクションでは、Solaris_ComputerSystem の定義を CIM_UnitaryComputerSystem クラスの拡張として設定します。


[Provider("com.sun.wbem.solarisprovider.computersystem.Solaris_ComputerSystem")]
class Solaris_ComputerSystem:CIM_UnitaryComputerSystem
{
};

ロギングの定義

Solaris_LogRecord は、WBEM のシステムログに書き込めるデータのタイプを定義します。


[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogRecord")]
class Solaris_LogRecord 
{

WBEM システムログは、アプリケーションログ、システムログ、セキュリティログという 3 つの一般的なカテゴリに分類できます。ログレコードには、情報ログ、警告ログ、エラーログといった異なる重要度レベルが割り当てられます。アプリケーションの中で Solaris_LogRecord 呼び出しを使ってロギングを有効にする方法については、第 5 章「システムのロギング」 の「API によるロギングの有効化」を参照してください。

すべてのログレコードには、Solaris_LogRecord クラスに定義されている標準形式を使用します。Solaris_LogRecord のプロパティには、アプリケーションからログレコードに渡されるデータの型が指定されています。CIM Object Manager や CIM Object Manager Repository は、記録されるデータを識別するためにデータの一部を必要とします。このようなプロパティには、読み取り専用であることを示すために [read, key] 修飾子が付けられます。このようなプロパティのデータは表示できますが、プロパティの値の変更はできません。次のリストは、Solaris_Core1.0.mof ファイルの Solaris_LogRecord に割り当てられるプロパティを示しています。


{
	[read, key]
	sint64 RecordID;
 [read, key]
	sint32 RecordHashCode;
	[read, key]
	string Filename;
	[read]
	datetime RecordDate;
	[read, write]
	sint32 category;
	[read, write]
	sint32 severity;
	[read, write]
	string AppName;
	[read, write]
	string UserName;
	[read, write]
	string ClientMachineName;
	[read, write]
	string ServerMachineName;
	[read, write]
	string SummaryMessage;
	[read, write]
	string DetailedMessage;
	[read, write]
	string data;
	[read, write]
	boolean SyslogFlag;
};

Solaris_LogRecord のプロパティを定義したら、Solaris_LogService クラスを CIM_Service の拡張として定義します。このクラスではロギングサービスの操作を制御します。


[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogService")]
class Solaris_LogService:CIM_Service
{

Solaris_LogService クラスに指定するそれぞれの関数では、ログファイルのデータをどのように処理するかを定義します。たとえば、clearLog( ) メソッドでは、ログファイルのすべてのデータを消去し、ログファイルを一新して新しいデータを受け取れるようにします。


{
	sint32 clearLog([IN] string fileName);

	sint64 getNumRecords([IN] string fileName, [OUT] sint64 numRec);

	sint32 listLogFiles([OUT]string logFiles[]);

	sint32 getCurrentLogFileName([OUT] string fileName);

	sint32 getNumLogFiles([OUT] sint32 numFiles);

	sint64 getLogFileSize([OUT] sint64 fileSize);

	sint32 getSyslogSwitch([OUT] string switch); 

	sint32 getLogStorageName([OUT] string fileName); 

	sint32 getLogFileDir([OUT] string dirName); 
};

Solaris_LogServiceProperties クラスは、CIM_Setting の拡張として定義されます。


[Provider ("com.sun.wbem.solarisprovider.logsvc.Solaris_LogServiceProperties")]
class Solaris_LogServiceProperties:CIM_Setting
{

このクラスのプロパティは、ログファイルの次の機能を制御します。

Solaris_Application1.0.mof ファイル

Solaris_Application1.0.mof ファイルでは、Solaris スキーマを拡張するアプリケーションパッケージやパッチを設定します。

パッケージ

Solaris_Application1.0.mof ファイルには、標準の Solaris パッケージを表すクラスが含まれています。これらのパッケージは、Solaris オペレーティング環境に個別にインストールしたり、削除したりすることができます。

次の表は、設定できるアプリケーションパッケージの属性です。「pkginfo」フィールドは、pkginfo コマンドを実行したときにパッケージ属性が表示されるフィールド、「説明」はパッケージ属性の説明です。

表 B-2 指定可能なパッケージ情報
 パッケージ属性pkginfo フィールド 説明

名前 

PKGINST

パッケージに付ける名前。通常、名前は、ベンダー名を表す 3〜4 文字の大文字とパッケージを固有に識別する 5 文字までの小文字で表す 

説明 

DESC

パッケージの簡単な説明を文字列で指定する 

キャプション 

NAME

パッケージの簡単な追加の説明を文字列で指定する 

カテゴリ 

CATEGORY

パッケージに含まれる情報の種類。これは、パッケージにビデオアプリケーション、グラフィックアプリケーション、Java アプリケーションなどが含まれる場合に使用する。カテゴリは自由形式の文字列で、通常、文字列には systemapplication などの単語が含まれる。カテゴリ文字列には、複数の単語をコンマで区切って指定できる。値としては、ALE, graphics, java, video, JFP, SyMON などが指定できる

アーキテクチャ 

ARCH

このパッケージが適用されるシステムアーキテクチャ。アーキテクチャ属性は文字列かその列挙。マニュアルページからなるパッケージなど汎用テキストパッケージを指定する場合は、all を使用する。バイナリを表す場合は、プロセッサタイプとして示される sparc または i386 を指定する。カーネルを表す場合は、そのプロセッサタイプのサブクラスとして示される sparc.sun4u を指定する

ベースディレクトリ 

BASEDIR

パッケージがインストールされているトップレベルのディレクトリを示す有効な UNIX のパス 

メーカー 

VENDOR

製品の製造メーカー 

ビルド番号 

PSTAMP

ビルドホスト名と、その後ろにタイムスタンプを含む文字列 

インストール日付 

INSTDATE

オペレーティングシステムがインストールされた日付と時刻 

サポート情報 

HOTLINE

サポートが必要なときの連絡先を示す文字列 

パッチ

Solaris_Application1.0.mof ファイルでは、さらに、アプリケーションの問題や更新バージョンに対する修正をパッチの形で提供します。次の表は、指定できるパッチの属性とその説明です。パッチの属性に含まれる情報はすべて、showrev -p コマンドにより取得することができます。

表 B-3 提供可能なパッチ情報
 パッチ属性 説明
 廃止 (Obsoletes) 廃止されたパッチや現在のパッチに統合されているパッチを示す
 必須 (Requires) 現在のパッチが動作するために必要なパッチのリスト
 非互換 (Incompatibles) 現在のパッチと互換性のないパッチのリスト
 パッケージ (Packages) このパッチが修正するパッケージのリスト
 メーカー (Manufacturer) メーカー名のリスト
 インストール日付 (Installation Date) パッチがインストールされた日付と時刻を示す、日付/時刻の値

Solaris_System1.0.mof ファイル

Solaris_System1.0.mof ファイルは、以下のクラスを定義します。

さらに、Solaris_System1.0.mof ファイルは以下の関連クラスを定義します。

Solaris_Device1.0.mof ファイル

Solaris_Device1.0.mof ファイルでは、次のクラスが定義されます。

さらに、Solaris_Device1.0.mof ファイルは以下の関連クラスを定義します。

シリアルポート

Solaris_SerialPort クラスはブール値プロパティとして定義されているため、ボーレートやパリティなどのシリアルポート特性をポートでどのように処理するかを制御できます。Solaris_PortConfiguration クラスのプロパティで、ユーザーが参照および変更可能なデータ値を指定することができます。

Solaris_Printer クラスと印刷定義

Solaris_Printer クラスおよび関連するクラスのプロパティは CIM_Printer クラスから継承され、ユーザーはプリンタおよび印刷サービスについて値を指定することができます。

Solaris_TimeZone クラス

Solaris_TimeZone クラスのプロパティにより、日付の設定や変更のために値を指定することができます。

Solaris_SystemTimeZone クラスは、Solaris_ComputerSystemSolaris_TimeZone クラス間の関連です。そのプロパティは、Element (Solaris_ComputerSystem インスタンスへの CIM_ObjectPath の値を保持する) と、Setting (Solaris_TimeZone インスタンスへの CIM_ObjectPath の値を保持する) です。


[Association, 	
         Provider ("com.sun.wbem.solarisprovider.tz.Solaris_SystemTimeZone")] 
class Solaris_SystemTimeZone:Solaris_SystemSetting 
{        [override("Element")]     
    Solaris_ComputerSystem REF Element;        
         [override("Setting")]     
    Solaris_TimeZone REF Setting; };

Solaris_Acl1.0.mof ファイル

このファイルでは Solaris WBEM Services のセキュリティクラスを指定します。このファイルは、以下のアクセス制御リスト、ユーザー、およびネームスペースの基底クラスを定義します。

これらのクラスについては、第 3 章「セキュリティの管理」「API によるアクセス制御の設定」 を参照してください。

Solaris_Network1.0.mof ファイル

Solaris_Network1.0.mof ファイルは、ネットワークドメイン、IP サブネット、およびネーミングサービス (NIS、NIS+、LDAP、DNS、サーバー /etc ファイルを含む) に関連するクラスを定義します。以下のクラスが定義されます。

Solaris_Users1.0.mof ファイル

Solaris_Users1.0.mof ファイルは、以下のクラスを定義します。