plugin-descriptor.xml でプラグイン例を定義します。このあとに示す例の各項目について説明します。
<plugin> 要素のほとんどの属性には標準の値を使用しています。3 つの例外は、name、version、description の各属性です。
<dependencyList> 要素では、このプラグイン例が正常に機能するために system プラグインの version 1.0 が必要であることを示しています。system プラグインは Sun N1 Service Provisioning System ソフトウェアのコアの部分であり、常に存在する必要があります。
<folder> 要素では、Solaris のオブジェクトを保存するフォルダを作成しています。
<hostType> 要素では、プラグインで global_zone ホストタイプを参照することを宣言しています。varlist 属性で、このホストタイプに一連の変数を関連付けています。
<hostSearch> 要素では、このプラグインがプロビジョニングできるターゲットホストを特定する一連の条件を定義しています。
<hostSet> 要素では、このプラグインがプロビジョニングできるターゲットホストのサブセットを定義しています。
最初の <component> 要素では、リソースが solaris/container_util.xml のコンポーネントを定義しています。
2 番目の <component> 要素では、プラグインに Container コンポーネントを含めています。
3 番目の <component> 要素では、Patch という新しいコンポーネントタイプを作成しています。このコンポーネントタイプには次のような特徴があります。
Patch コンポーネントタイプは solaris グループに表示されます。
「Component Create」ページでコンポーネントタイプのドロップダウンメニューにコンポーネントタイプが表示されないようにするには、グループの値を hidden に変更します。
Patch コンポーネントタイプのバッキングコンポーネントは 1.1/components/com/sun/solaris/Patch.xml です。
<plan> 要素では、Container-create.xml プランをプラグインの一部として指定しています。
<?xml version="1.0" encoding="UTF-8"?> <plugin name="com.sun.solaris" description="Solaris plugin @buildtag@" version="1.1" vendor="Sun Microsystems Inc" xmlns="http://www.sun.com/schema/SPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sun.com/schema/SPS plugin.xsd" schemaVersion="5.2"> <readme jarPath="readme.txt"/> <serverPluginJAR jarPath="1.1/resources/com/sun/solaris/plugin-com.sun.solaris.jar"/> <gui jarPath="gui/pluginUI.xml"/> <dependencyList> <pluginRef name="system" version="1.0"/> </dependencyList> <memberList> <folder name="/com/sun/solaris" description="Solaris plugin folder"/> <hostType name="global_zone" description="a physical host from which partitioned local zones can be created"> <varList> <var name="local_zone_base_path" default="/export/zones"/> <var name="local_zone_default_name" default=""/> <var name="local_zone_default_filesystem" default="SPARSE"/> <var name="local_zone_connection_type" default="RAW"/> <var name="local_zone_port" default="1131"/> <var name="local_zone_advanced_params" default=""/> <var name="n1sps_cli_host" default="masterserver"/> <var name="n1sps_cli_path" default="/opt/SUNWn1sps/N1_Service_Provisioning_System_*/cli/bin/cr_cli"/> </varList> </hostType> <hostSearch name="global_zones" description="matches Solaris global zone hosts"> <criteriaList> <criteria name="sys.OS" pattern="SunOS"/> <criteria name="sys.OSVersion" pattern="5.10"/> <criteria name="sys.hostType" pattern="com.sun.solaris#global_zone"/> </criteriaList> <appTypeCriteria ra="true"/> <physicalCriteria physical="true"/> </hostSearch> <hostSet name="global_zones" description="Solaris global zones"> <hostSearchRef name="global_zones"/> </hostSet> ... <component jarPath="1.1/components/com/sun/solaris/container_util.xml" majorVersion="true"> <resource jarPath="1.1/resources/com/sun/solaris/container_util/" name="/com/sun/solaris/container_util" type="DIRECTORY" majorVersion="true"/> </component> <component jarPath="1.1/components/com/sun/solaris/Container.xml" majorVersion="true"/> <component jarPath="1.1/components/com/sun/solaris/Patch.xml" majorVersion="true"> <componentType name="Patch" group="solaris" order="000000-000000-000001" indentLevel="1" /> </component> ... <plan jarPath="1.1/plans/com/sun/solaris/Container-create.xml" majorVersion="true"/> ... </memberList> </plugin>