Cisco UCS Director Open Automation 開発者ガイド、リリース 4.1
モジュールの開発および展開
モジュールの開発および展開
発行日;2014/02/05   |   ドキュメントご利用ガイド   |   ダウンロード ;   この章 pdf   ,   ドキュメント全体 pdf    |   フィードバック

モジュールの開発および展開

この章は、次の内容で構成されています。

モジュールの概要

モジュールは、Cisco UCS Director への最上位の論理エントリ ポイントです。 機能の追加や拡張を行うには、モジュールを開発して Cisco UCS Director にデプロイする必要があります。

モジュールを開発してデプロイするには、次の手順を実行します。

  • AbstractCloupiaModule クラスを拡張するクラスを実装してモジュールを作成します。
  • カスタム タスクおよびレポートを追加します。 必要に応じて、必要なタスク インターフェイスを実装してタスクを作成します。
  • モジュールをパッケージ化します (推奨事項:Apache ANT™ または Apache Maven™ ビルド ツールを使用します)。

    (注)  


    このマニュアルの説明は、Eclipse に付属の ANT ビルド ツールを使用することを前提にしています。 代わりに Apache Maven ビルド ツールを使用することも、ご自身でビルドを作成することもできますが、ANT でビルドした場合と同じ特性のパッケージを提供する必要があります。


  • Cisco UCS Director にパッケージをデプロイします。

これらの手順は、個別のトピックで説明しています。


(注)  


このマニュアルでは新規モジュールのタスク コンポーネントに重点を置いて、新しいタスクを既存のタスク ライブラリに追加することでワークフローの機能を拡張する手順を説明します。

モジュールの作成

モジュール クラスは AbstractCloupiaModule クラスを拡張し、単一メソッド getTasks( ) の実装を提供します。

getTask( ) メソッドの次のコメントは、基本的な要件を説明しています。

/**
	 * External modules  extending this class shall provide implementation for this method.
	 * @return an array of tasks supported by this module
	 */

モジュールにタスクを追加することは重要な目的です。 モジュールにワークフロー タスクを追加する詳細な手順については、ワークフロー タスクの概要を参照してください。

モジュールの公開

モジュールをプラットフォーム ランタイムに公開するには、モジュールとともに module.properties というファイルを用意します。 このプロパティ ファイルは、モジュール自体の特定のプロパティを定義します。

サンプルの module.properties ファイルを次に示します。

featureID=oabc
status=experimental
org=cisco
suborg=cloupia
feature=something
key=abcdef

 

内容は次のとおりです。

  • moduleID:機能を定義する読み取り可能な一意の文字列。
  • status:experimental または validated。 モジュールの開発者バージョンでは常に「experimental」です。 モジュールが UCS Director チームによって検証されている場合、ステータスは「validated」です。
  • categoryID:モジュールのタスクを分類するための一意の文字列。
  • categoryLabel:categoryID に付属するユーザにわかりやすい文字列。
  • org:このモジュールが属する組織の名前を定義します。
  • Sub-org:このモジュールが属するサブ組織の名前を定義します。
  • Feature:将来使用します。
  • Key:将来使用します。

タスクの作成

タスクの作成は、モジュールを操作する際に実行できる重要な手順の 1 つですが、この手順に関わる詳細には踏み込んだ説明が必要になるため、もう少し先に進んで、モジュールとそのコンポーネントの概要で取り上げます。

モジュールのパッケージ化

モジュールには、必要なすべての依存 JAR ファイル、クラス、および module.properties ファイルが、.feature ファイルとともにパッケージ化されます。 .feature(発音は「ドット フィーチャー」)ファイルは、プロジェクトのルートと同じフォルダに配置されます。 このファイルには、このモジュールに関連付けられている JAR と、依存 JAR ファイルへのパスが示されます。

次の例は .feature ファイルを示しています。 ファイルの名前は、<moduleID>-module.feature になります。

{
      jars:  [ "features/feature-chargeback.jar", 
      "features/chargeback/activation-1.1.jar", 
      "features/chargeback/axis2-jaxbri-1.5.6.jar", 
      "features/chargeback/bcel-5.1.jar", 
      "features/chargeback/jalopy-1.5rc3.jar", 
      "features/chargeback/neethi-2.0.5.jar", 
      "features/chargeback/antlr-2.7.7.jar", 
      "features/chargeback/axis2-jaxws-1.5.6.jar",]
      features: [ "com.cloupia.feature.oabc.OABCModule" ]
}

build.xml から ANT ターゲットのビルドを実行します。 これにより、必要な Zip ファイルが生成され、プロジェクトのベース ディレクトリに保存されます (これは、サンプル プロジェクトをプロジェクトのベースとして使用していることを前提とします。 サンプル プロジェクトをこのように使用することは推奨されませんが、このデモでは基礎としています)。

モジュールが、サンプル ソース コードで提供されていない JAR に依存する場合、必ず build.xml に追加して、Zip ファイルに含まれるようにします。 次の例は、サードパーティの JAR を含むモジュール レイアウトを示しています。

feature-oabc
    feature oabc.jar
    oabc
      lib
        flex
          flex-messaging-common.jar
    oabc.feature

モジュール jar と .feature が zip ファイルのトップレベルに置かれています。 その後、サードパーティ jar を /moduleID/lib/ の下に配置します。 必須ではありませんが、ベスト プラクティスはサードパーティ jar を /moduleID/lib の下に置いてから、その他のサブ ディレクトリを必要に応じて追加することです。

{
      jars:  [ 'features/feature-oabc.jar", features/oabc/lib/flex-messaging-common.jar ],
      features: [ "com.cloupia.feature.oabc.OABC(Module" ]
}

jar ファイルへの参照は、必ず features/ で始めます。 これは必須です。 .feature ファイルに jar を列挙する際は、先頭に features/ を付けます。 これにより、目的の jar へのパスを含めることができます。 各 jar のパスは、zip ファイルで使用しているパスと同じパスにする必要があります。 ベスト プラクティスは、先頭にモジュール jar を置き、その後に依存性を追加して、モジュールが確実にロードされるようにすることです。

Cisco UCS Director へのモジュールのデプロイ

Cisco UCS Director ユーザ インターフェイスには [オープンオートメーション] コントロールが用意されており、これを使用してモジュールのアップロードや管理を行うことができます。 これらのコントロールを使用して、モジュールの Zip ファイルを Cisco UCS Director にアップロードします。


(注)  


アップロードでは、Zip ファイル形式のみがサポートされます。


はじめる前に

モジュールをデプロイまたは非アクティブ化するには Cisco UCS Director サービスを再起動する必要がありますが、そのためには shell admin アクセスが必要です。 このアクセスは、システム管理者の許可を受けて行います。 Cisco(CUIC)シェル メニューをシェル管理者として使用するには、ログイン shelladmin と管理者が支給するパスワードを使用して、SSH で Cisco UCS Director にアクセスする必要があります。 Windows システムでの SSH アクセスには PuTTY(http:/​/​www.putty.org/​ を参照)を使用し、Mac ではビルトインの SSH ユーティリティを使用します。

手順
    ステップ 1   Cisco UCS Director で、[管理] > [オープンオートメーション] を選択します。

    [モジュール] テーブルが表示されます。

    ステップ 2   [追加] を選択して新規モジュールを追加します。

    [モジュールの追加] ダイアログ ボックスが表示され、ここでモジュール名、アップロードする Zip ファイル、モジュールの説明を指定できます。

    ステップ 3   必要な情報を入力して、[送信] をクリックします。
    重要: 新しく追加したモジュールをロードする場合、アップロードの後にそのモジュールをアクティブにし、Cisco UCS Director サービスを再起動する必要があります。
    ステップ 4   [モジュール] テーブルでモジュールを選択してモジュールをアクティブ化し、続いて [追加] をクリックします。

    [モジュールのアクティブ化] ダイアログ ボックスが表示されます。

    ステップ 5   [送信] をクリックすると、モジュールがアクティブ化されます。 エラーが発生した場合は、モジュールが許容されなかった理由を明確に示すエラー メッセージが表示されます。
    ステップ 6   Cisco UCS Director サービスを停止して再起動します。
    1. shell admin アクセスでシェル メニューを開きます。 Cisco(CUIC)シェル メニューが開き、[Select a number from the menu below] というプロンプトが表示されます。
    2. SELECT プロンプトで、[3] を入力してサービスを停止します。 その後で [4] を入力し、サービスを再度起動します。

    Cisco UCS Director の再起動には数分かかります。 システムの準備が整うと、モジュールがロードされ、タスクが Cisco UCS Director GUI に表示されます。


    モジュールの非アクティブ化

    モジュールをアクティブ化している場合などに、モジュールを非アクティブ化するには、変更が有効になるように Cisco UCS Director サービスを停止して再起動する必要があります。

    モジュールを非アクティブ化するには、次の手順を実行します。

    手順
      ステップ 1   非アクティブ化する必要のあるモジュールを [モジュール] テーブルで選択し、続いて [非アクティブ化] コントロールをクリックします。
      ステップ 2   Cisco UCS Director サービスを停止して再起動します。 モジュールのアクティブ化後と同じ手順に従います。