Comments
Description
Transcript
Lab Manager SOAP API
Lab Manager SOAP API リ フ ァ レ ンス vCenter Lab Manager 4.0 JA-000175-00 Lab Manager SOAP API リ フ ァ レ ン ス 最新のテ ク ニ カル ド キ ュ メ ン ト に関する情報は、 当社の Web サイ ト か ら入手で き ます。 http://www.vmware.com/jp/support/ 当社の Web サイ ト は、 最新の製品ア ッ プデー ト も提供 し ます。 本書に関する コ メ ン ト がご ざいま し た ら、 次の メ ールア ド レ ス ま で フ ィ ー ド バ ッ ク をお寄せ く だ さ い。 [email protected] © 2006-2009 VMware, Inc. All rights reserved. こ の製品は、 米国および国際的な著作権法および知的財産法によ っ て保護 さ れています。 VMware 製品は、 http://www.vmware.com/go/patents の リ ス ト に表示 さ れている 1 つまたは複数の特許 の対象です。 VMware、 VMware "boxes" のロ ゴお よびデザイ ン、 Virtual SMP、 および VMotion は、 米国およびその他の地域における VMware, Inc. の登録商標または商標です。 その他のマー ク および名前は、 それぞれの企業の商標です。 Lab Manager は、 サー ド パーテ ィ 製品の AxpDataGrid と 一緒に配布 さ れます。 AxpDataGrid の著作権は、 ノ ルウ ェ ーの オス ロに拠点を置 く Axezz (http://www.axezz.com/axpdatagrid) に帰属 し ます。 VMware, Inc. 3401 Hillview Ave. Palo Alto, CA 94304 www.vmware.com 2 VMware, Inc. 目次 本書について 7 1 VMware vCenter Lab Manager SOAP API の概要 9 Lab Manager と 自動テ ス ト ツールの統合 9 サポー ト さ れてい る 操作 10 Lab Manager のデー タ オブジ ェ ク ト 10 標準への準拠 と 互換性のあ る 開発プ ラ ッ ト フ ォーム SOAP API のセキ ュ リ テ ィ 10 ユーザー認証 10 10 2 Lab Manager SOAP API ス タ ー ト ガイ ド 11 アプ リ ケーシ ョ ン開発の要件 11 WSDL フ ァ イ ルの取得 と イ ン ポー ト 11 開発環境への WSDL フ ァ イ ルの イ ン ポー ト 11 Microsoft Visual Studio での Lab Manager WSDL フ ァ イ ルの使用 12 C# コ ー ド の簡単なサンプル と 高度なサンプル 13 C# での簡単な コ ン ソ ールアプ リ ケーシ ョ ンのサンプル 13 Lab Manager と Quality Center を統合す る C# の高度なサンプル 15 3 Lab Manager の API デー タ 型 19 プ リ ミ テ ィ ブ XML デー タ 型 19 Lab Manager のデー タ 型 19 AuthenticationHeader 20 サポー ト さ れてい る API 呼び出 し フ ィ ール ド 20 C# サンプル コ ー ド 20 Configuration 21 Machine 21 20 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス 23 ConfigurationCapture 24 構文 24 引数 24 応答 24 C# サンプル コ ー ド 24 ConfigurationCheckout 25 構文 25 引数 25 応答 25 C# サンプル コ ー ド 25 ConfigurationClone 26 構文 26 引数 26 応答 26 C# サンプル コ ー ド 26 ConfigurationDelete 27 VMware, Inc. 3 Lab Manager SOAP API リ フ ァ レ ン ス 構文 27 引数 27 応答 27 C# サンプル コ ー ド 27 ConfigurationDeploy 28 構文 28 引数 28 応答 28 C# サンプル コ ー ド 28 ConfigurationPerformAction 29 構文 29 引数 29 応答 29 C# サンプル コ ー ド 29 ConfigurationSetPublicPrivate 30 構文 30 引数 30 応答 30 C# サンプル コ ー ド 30 ConfigurationUndeploy 31 構文 31 引数 31 応答 31 C# サンプル コ ー ド 31 GetConfiguration 32 構文 32 応答 32 C# サンプル コ ー ド 32 GetConfigurationByName 33 構文 33 引数 33 応答 33 C# サンプル コ ー ド 33 GetCurrentOrganizationName 34 構文 34 応答 34 C# サンプル コ ー ド 34 GetCurrentWorkspaceName 35 構文 35 応答 35 C# サンプル コ ー ド 35 GetMachine 35 構文 35 引数 35 応答 35 C# サンプル コ ー ド 36 GetMachineByName 37 構文 37 引数 37 応答 37 C# サンプル コ ー ド 37 GetSingleConfigurationByName 38 構文 38 引数 38 応答 38 C# サンプル コ ー ド 38 4 VMware, Inc. 目次 ListConfigurations 39 構文 39 引数 39 応答 39 C# サンプル コ ー ド 39 ListMachines 40 構文 40 引数 40 応答 40 C# サンプル コ ー ド 40 LiveLink 41 構文 41 引数 41 応答 41 C# サンプル コ ー ド 41 MachinePerformAction 42 構文 42 引数 42 応答 42 C# サンプル コ ー ド 42 SetCurrentOrganizationByName 43 構文 43 引数 43 C# サンプル コ ー ド 43 SetCurrentWorkspaceByName 44 構文 44 引数 44 C# サンプル コ ー ド 44 索引 VMware, Inc. 45 5 Lab Manager SOAP API リ フ ァ レ ン ス 6 VMware, Inc. 本書について VMware® 『vCenter Lab Manager SOAP API ガ イ ド 』 は、 Lab Manager Web サービ ス データ を使用し た り 、 タ ス ク を自動化し た り 、 Lab Manager を他の ソ フ ト ウ ェ ア テ ス ト ツール と 統合 し た り する アプ リ ケーシ ョ ン を開発する場合にご利用 く だ さ い。 対象読者 こ のガ イ ド は、 Lab Manager デー タ を使用 し てテ ス ト ソ リ ューシ ョ ン を カ ス タ マ イ ズする こ と 、 ま たは環境 内の Lab Manager と 他の ソ フ ト ウ ェ ア テ ス ト ツールを統合す る こ と を考え てい る 開発者を対象 と し てい ま す。 た と えば、 Lab Manager SOAP API を使用す る と 、 Lab Manager と 自動化 さ れた ソ フ ト ウ ェ ア テ ス ト ツールを統合で き ます。 こ のガ イ ド の情報を使用す る には、 次の こ と を よ く 理解 し てい る必要があ り ます。 仮想マシ ン技術 分散 し た複数階層のシ ス テ ムの概念 開発 と テ ス ト の実務 Windows ま たは Linux オペレーテ ィ ン グ シ ス テ ム Web サービ ス、 SOAP、 お よ び XML 本書へのフ ィ ー ド バ ッ ク ド キ ュ メ ン ト の 向 上 に ご 協 力 く だ さ い。 本 書 に 関 す る コ メ ン ト が ご ざ い ま し た ら 、 メ ー ル ア ド レ ス [email protected] ま で フ ィ ー ド バ ッ ク をお寄せ く だ さ い。 テ ク ニ カルサポー ト および教育 リ ソ ース こ こ では、 お客様にご利用いただけ る テ ク ニ カルサポー ト リ ソ ース について説明 し ます。 本書お よ びその他 の文書の最新バージ ョ ンは、 http://www.vmware.com/jp/support/pubs でご覧いただけ ます。 オ ン ラ イ ンサポー ト および電話によ るサポー ト テ ク ニ カルサポー ト リ ク エ ス ト の提出や、製品お よ び契約情報の確認、製品の登録を オン ラ イ ン で行 う には、 http://www.vmware.com/jp/support/ を ご覧 く だ さ い。 該当す る サポー ト 契約を結んでい る お客様の場合、 迅速な対応が必要な Severity1 の問題に関 し ては電話で のサポー ト を ご利用 く だ さ い。 詳細については、 http://www.vmware.com/support/phone_support を ご覧 く だ さ い。 VMware, Inc. 7 Lab Manager SOAP API リ フ ァ レ ン ス サポー ト サービ ス お客様のビ ジネ ス ニーズに適 し た各種サポー ト の詳細については、 http://www.vmware.com/jp/support/services/ を ご覧 く だ さ い。 ヴ イ エムウ ェ ア プ ロ フ ェ ッ シ ョ ナルサービ ス ヴ イ エム ウ ェ ア教育サービ ス の コース では、広範なハン ズオン ラ ボやケース ス タ デ ィ を ご紹介 し ます。ま た、 業務の際の リ フ ァ レ ン ス と し てお使いいただけ る資料 も 提供 し てい ます。 ト レーニ ン グは、 オンサ イ ト 、 講 義形式、 お よ び ラ イ ブオン ラ イ ンで受講で き ます。 オンサ イ ト のパ イ ロ ッ ト プ ロ グ ラ ムお よ び実装のベス ト プ ラ ク テ ィ ス については、 ヴ イ エム ウ ェ ア コ ンサルテ ィ ン グサービ ス がご使用の仮想環境の評価、 計画、 構 築、 お よ び管理に役立つサービ ス を提供 し てい ます。 教育 ト レーニ ン グ、 認定プ ロ グ ラ ム、 お よ び コ ンサル テ ィ ン グサービ ス については、 http://www.vmware.com/jp/services/ を ご覧 く だ さ い。 8 VMware, Inc. 1 VMware vCenter Lab Manager SOAP API の概要 1 Lab Manager SOAP アプ リ ケーシ ョ ン プ ロ グ ラ ミ ン グ イ ン タ ーフ ェ イ ス (API) を使用す る と 、Lab Manager シ ス テ ム にプ ロ グ ラ ム でア ク セ ス で き ま す。 安全な API を使用す る こ と で、 Lab Manager サーバに接続 し て、 さ ま ざ ま な操作を自動化 し た り 実行 し た り で き ます。 Lab Manager SOAP API は、通信プ ロ ト コ ル と し て SOAP な ど の XML ベース の技術を使用 し 、イ ン タ ーフ ェ イ ス記述言語 と し て Web Services Description Language (WSDL) を使用 し ます。Lab Manager の WSDL フ ァ イ ルでは、 サービ ス の使用可能な メ ソ ッ ド (Web サービ ス では操作 と 呼ばれます)、 パ ラ メ ー タ の型、 お よ び サービ ス の SOAP エン ド ポ イ ン ト が詳細に記述 さ れてい ます。 注 構成、 仮想マシ ン、 ま たはテ ンプ レー ト オブジ ェ ク ト の名前は、 大文字 と 小文字を区別 さ れません。 こ こ では、 以下の ト ピ ッ ク について説明 し ます。 「Lab Manager と 自動テ ス ト ツールの統合」 (P. 9) 「サポー ト さ れてい る 操作」 (P. 10) 「Lab Manager のデー タ オブジ ェ ク ト 」 (P. 10) 「標準への準拠 と 互換性のあ る 開発プ ラ ッ ト フ ォーム」 (P. 10) 「SOAP API のセキ ュ リ テ ィ 」 (P. 10) 「ユーザー認証」 (P. 10) Lab Manager と 自動テ ス ト ツールの統合 Lab Manager SOAP API を利用す る と 、 選択 し た言語 と プ ラ ッ ト フ ォーム を使用 し て、 Lab Manager のデー タ と 対話で き ます。 こ のガ イ ド の例では、 C# プ ロ グ ラ ミ ン グ言語 と Microsoft .NET Framework を使用 し ま すが、 他のプ ロ グ ラ ミ ン グ言語 と 開発環境 も サポー ト さ れます。 C# 以外の言語を使用する 場合は、 ご使用の 開発環境の ド キ ュ メ ン ト で Web サービ ス アプ リ ケーシ ョ ンの開発に関する 情報を参照 し て く だ さ い。 SOAP API を使用 し て Lab Manager を拡張ま たはカ ス タ マ イ ズす る だけでな く 、Lab Manager と 自動テ ス ト シ ス テ ム を統合す る こ と も で き ます。 こ の統合の例については、 「Lab Manager と Quality Center を統合す る C# の高度なサンプル」 (P. 15) を参照 し て く だ さ い。 Lab Manager ソ リ ュ ー シ ョ ン、 開発者向 け リ ソ ー ス、 お よ び コ ミ ュ ニ テ ィ リ ソ ー ス の詳細につい て は、 http://www.vmware.com を参照 し て く だ さ い。 VMware, Inc. 9 Lab Manager SOAP API リ フ ァ レ ン ス サポー ト さ れている操作 好みの Web 対応開発環境を使用 し 、標準の Web サービ ス プ ロ ト コ ルを使用 し て Web サービ ス ク ラ イ ア ン ト アプ リ ケーシ ョ ン を作成す る こ と で、 次の タ ス ク をプ ロ グ ラ ム で実行で き ます。 仮想マシ ンお よ び構成情報を照会す る。 マシ ンお よ び構成に対す る ア ク シ ョ ン を実行す る。 構成を取得、 チ ェ ッ ク ア ウ ト 、 ク ロ ーン作成、 削除、 お よ びデプ ロ イ す る。 他のチーム メ ンバに電子 メ ールで送信で き る LiveLink 構成 URL を作成す る。 サポー ト さ れ る Web サービ ス操作についての詳細は、「Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス」 (P. 23) を 参照 し て く だ さ い。 Lab Manager のデー タ オブ ジ ェ ク ト Lab Manager SOAP API は、 オブジ ェ ク ト を使用 し て、 組織内のデー タ と 対話 し ます。 オブジ ェ ク ト と は、 Lab Manager デー タ のプ ロ グ ラ ム での表現です。 オブジ ェ ク ト のプ ロ パテ ィ は、 デー タ エ ン テ ィ テ ィ での フ ィ ール ド を表 し ます。 た と えば、 Lab Manager の構成は Configuration オブジ ェ ク ト で表 さ れ、 こ れには 構成名、 構成の数値 ID、 デプ ロ イ ス テー タ ス、 共有状態な ど を表すフ ィ ール ド が含まれます。 こ の ド キ ュ メ ン ト では、 Lab Manager のデー タ オブジ ェ ク ト を使用 し て、 ク エ リ 、 ク ロ ーン作成、 取得、 デ プ ロ イ な ど の操作を Lab Manager デー タ に対 し て実行す る方法を説明 し ます。 「Lab Manager の API デー タ 型」 (P. 19) を参照 し て く だ さ い。 標準への準拠 と 互換性のあ る開発プ ラ ッ ト フ ォ ーム Lab Manager SOAP API は、 SOAP 1.1、 WSDL 1.1、 お よ び WS-I Basic Profile Version 1.1 で示 さ れてい る 他 の標準に準拠 し ます。 Lab Manager SOAP API は、 Basic Profile Version 1.1 標準に準拠する 現在の SOAP 開 発環境で動作 し ます。 こ の ド キ ュ メ ン ト の例では、 Microsoft Visual Studio .NET 2005 開発環境お よ び C# プ ロ グ ラ ミ ン グ言語を使用 し ます。 注 特定の開発プ ラ ッ ト フ ォームでの実装の違いに よ り 、 Lab Manager SOAP API の一部ま たは全部の機能 にア ク セ ス で き ない場合があ り ます。 .NET の開発に Visual Studio を使用す る場合は、 Visual Studio 2005 以降を使用す る こ と をお勧め し ます。 SOAP API のセキ ュ リ テ ィ 組織内の Lab Manager デー タ に ア ク セ ス す る ク ラ イ ア ン ト ア プ リ ケーシ ョ ン は、 Lab Manager Web コ ン ソ ールで使用 さ れ る も の と 同 じ セキ ュ リ テ ィ 保護の対象にな り ます。Lab Manager は SSL を使用 し てすべて の SOAP API メ ソ ッ ド を公開 し ます。 Web サービ ス URL を使用 し て Web サービ ス URL の SOAP API にア ク セ スす る と 、 SSL 証明書の警告が表 示 さ れ る 場合があ り ます。 証明書を受け入れて API を使用す る か、 ま たは証明書を有効な署名の証明書に置 き 換えて く だ さ い。 ユーザー認証 ク ラ イ ア ン ト アプ リ ケーシ ョ ンは、 Lab Manager Web サービ ス メ ソ ッ ド を呼び出すたびに、 有効なユーザー 認証情報を提供す る 必要があ り ます。 必要な認証情報は、 Lab Manager のユーザーア カ ウ ン ト 、 パ ス ワー ド 、 組織、 お よ び ワー ク スペース名です。 操作を実行す る オブジ ェ ク ト を含む組織 と ワー ク スペース の ど ち ら か 一方ま たは両方の名前を指定す る 必要があ り ます。 Lab Manager サーバは こ れ ら の認証情報を認証 し ます。 注 管理者以外の認証情報を使用で き ます。 10 VMware, Inc. 2 Lab Manager SOAP API ス タ ー ト ガイ ド 2 Lab Manager SOAP API を使用 し て、 XML Web サービ ス ク ラ イ ア ン ト を作成で き ます。 XML Web サービ ス ク ラ イ ア ン ト は、 XML Web サービ ス を参照 し て使用す る コ ン ポーネ ン ト ま たはアプ リ ケーシ ョ ン です。 こ れには ク ラ イ ア ン ト ベース のアプ リ ケーシ ョ ンは必要あ り ません。 通常、 XML Web サービ ス ク ラ イ ア ン ト は、 Web フ ォームや他の XML Web サービ ス な ど の、 他の Web アプ リ ケーシ ョ ンです。 こ こ では、 以下の ト ピ ッ ク について説明 し ます。 「アプ リ ケーシ ョ ン開発の要件」 (P. 11) 「WSDL フ ァ イ ルの取得 と イ ン ポー ト 」 (P. 11) 「C# コ ー ド の簡単なサンプル と 高度なサンプル」 (P. 13) ア プ リ ケーシ ョ ン開発の要件 アプ リ ケーシ ョ ンの開発を始め る 前に、 次の要件を確認 し て く だ さ い。 読者は基本的なプ ロ グ ラ ミ ン グ概念に習熟 し 、 コ ン ピ ュー タ にはプ ロ グ ラ ミ ン グ開発環境がすでに用意 さ れてい る も の と し ます。 Lab Manager の イ ン ス タ ン ス を イ ン ス ト ールし て構成し 、 ネ ッ ト ワーク で実行し てい る必要があ り ます。 完全修飾ホ ス ト 名ま たは IP ア ド レ ス で始ま る Lab Manager サーバ イ ン ス タ ン ス のア ド レ ス がわか っ て い る 必要があ り ます (例: https://hostname.company.com/LabManager)。 タ ーゲ ッ ト の Lab Manager サーバにア カ ウ ン ト が必要です。 次のセ ク シ ョ ンで示 さ れてい る コ ー ド リ ス ト を コ ピー し 、 Microsoft Visual Studio 2005 環境に貼 り 付け て く だ さ い。 WSDL フ ァ イルの取得 と イ ンポー ト 他の標準ベース の SOAP API 実装 と 同様に、 Lab Manager API の定義は、 XML 形式の WSDL フ ァ イ ル と し て Web サービ ス で使用で き ます。 こ の フ ァ イ ルを取得す る には、 Internet Explorer 5.5 以降を開 き、 ご使用 の Lab Manager サーバの https://<hostname>/LabManager/SOAP/LabManager.asmx?WSDL に移動 し ます。 WSDL フ ァ イ ルでは、 Lab Manager API のすべての呼び出 し と オブジ ェ ク ト が定義 さ れてい ます。 WSDL の 詳細については、 http://www.w3.org/TR/wsdl を参照 し て く だ さ い。 開発環境への WSDL フ ァ イルのイ ンポー ト WSDL フ ァ イ ルを取得 し た後は、それを開発環境に イ ン ポー ト し て、ク ラ イ ア ン ト Web サービ ス アプ リ ケー シ ョ ンの構築で使用す る ために必要なオブジ ェ ク ト を生成 し ます。 プ ロ セ スは、 開発環境、 プ ロ グ ラ ミ ン グ 言語、 お よ び関連す る ツールに依存 し ます。 た と えば、 Microsoft Visual Studio 開発環境では タ ス ク は自動 的に処理 さ れます。 他の開発プ ラ ッ ト フ ォームに関 し ては、 プ ラ ッ ト フ ォームの製品 ド キ ュ メ ン ト を参照 し て く だ さ い。 VMware, Inc. 11 Lab Manager SOAP API リ フ ァ レ ン ス Microsoft Visual Studio での Lab Manager WSDL フ ァ イルの使用 Microsoft Visual Studio のプ ロ グ ラ ミ ン グ言語は、 サーバ側の対応部分に対す る プ ロ キ シ と し て機能す る オ ブジ ェ ク ト を通 し て Lab Manager SOAP API にア ク セ ス し ます。 管理対象 コー ド が XML Web サービ ス にア ク セ スす る と き は、プ ロ キ シ ク ラ ス と .NET Framework が イ ン フ ラ ス ト ラ ク チ ャ のすべての コーデ ィ ン グ を 処理 し ます。 Lab Manager SOAP API を Visual Studio で使用す る場合は、最初に WSDL フ ァ イ ルか ら プ ロ キ シ ク ラ ス オ ブジ ェ ク ト を生成す る 必要があ り ます。 Visual Studio には、 Web サービ ス に接続 し て必要な成果物を生成す る Web 参照の追加 ウ ィ ザー ド が用意 さ れてい ます。既存のアプ リ ケーシ ョ ンに Web 参照を追加す る こ と も 、 Visual Studio で新 し いアプ リ ケーシ ョ ン を作成す る こ と も で き ます。 Visual Studio の ド キ ュ メ ン ト で 「Adding and Removing Web References」 を参照 し て く だ さ い。 Microsoft Visual Studio 2005 を使用 し て Web 参照を追加するには 1 Windows で、 [ス タ ー ト ] > [Microsoft Visual Studio .NET 2005] を選択 し ます。 2 [新 し いプ ロ ジ ェ ク ト ] を選択 し て新 し いプ ロ ジ ェ ク ト を作成す る か、 [フ ァ イ ルを開 く ] を選択 し て既存 のプ ロ ジ ェ ク ト を開き ます。 3 [URL] テ キ ス ト ボ ッ ク ス に 「https://<hostname>/LabManager/SOAP/LabManager.asmx」 と 入力 し て、 Lab Manager Web サービ ス のサービ ス記述を取得 し ます。 4 [実行] を ク リ ッ ク し ます。 Lab Manager サーバ と 開発環境 ク ラ イ ア ン ト の間で証明書の交換が開始 し ます。 サーバか ら 送信 さ れた 証明書の詳細がセキ ュ リ テ ィ ア ラ ー ト に表示 さ れます。 注 こ のセキ ュ リ テ ィ ア ラ ー ト メ ッ セージは、Lab Manager サーバがデフ ォ ル ト の自己署名証明書を使 用 し てい る 場合に生成 さ れます。 Lab Manager サーバで、 こ れ ら の証明書を Verisign、 Thawte、 ま た は他の認証局か ら 入手 し た証明書に置 き換え る こ と がで き ます。 5 [はい] を ク リ ッ ク し ます。 6 (オプシ ョ ン) Visual Studio 環境か ら のア ラ ー ト が表示 さ れ る場合は、 [はい] を ク リ ッ ク し ます。 Microsoft Visual Studio 環境が Web サービ ス のエン ド ポ イ ン ト に接続 し 、Lab Manager Web サービ ス の WSDL フ ァ イ ルで記述 さ れてい る操作を表示 し ます。 7 Web 参照名のテ キ ス ト ボ ッ ク ス でテ キ ス ト を選択 し 、 「LabManager」 と 入力 し ます。 こ れは、 こ の Web 参照に使用す る ネーム スペース です。 LabManager は、 スペース を含ま ない 1 語です。 8 [参照の追加] を ク リ ッ ク し ます。 9 (オプシ ョ ン) 証明書の警告 メ ッ セージが表示 さ れ る場合は、 [はい] を ク リ ッ ク し ます。 10 [はい] を ク リ ッ ク し ます。 Visual Studio は、サービ ス の記述を取得 し 、アプ リ ケーシ ョ ンか ら Lab Manager Web サービ スへの イ ン タ ー フ ェ イ ス と し て機能す る LabManager プ ロ キシ ク ラ ス を生成 し ます。 プ ロ セ ス の最後に、 ク ラ ス がプ ロ ジ ェ ク ト の Web References フ ォ ル ダ に追加 さ れ ま す ( ソ リ ュ ー シ ョ ン エ ク ス プ ロ ー ラ を ク リ ッ ク し 、 Web References フ ォ ルダに表示 さ れ る LabManagerSoap を確認 し て く だ さ い)。 こ の基本的な セ ッ ト ア ッ プ タ ス ク が完了す る と 、Lab Manager SOAP API を使用す る ク ラ イ ア ン ト ア プ リ ケーシ ョ ン を構築で き ます。API に早 く 慣れ る には、「C# コ ー ド の簡単なサンプル と 高度なサンプル」(P. 13) で示 さ れてい る コ ー ド サ ン プル を調べて く だ さ い。 12 VMware, Inc. 章 2 Lab Manager SOAP API ス タ ー ト ガ イ ド C# コ ー ド の簡単なサン プル と 高度なサン プル 「アプ リ ケーシ ョ ン開発の要件」 (P. 11) の設定要件を確認 し て く だ さ い。 C# での簡単な コ ン ソ ールアプ リ ケーシ ョ ンのサンプルを使用 し て、開発ワ ー ク ス テーシ ョ ン と Lab Manager Web サービ ス の間の基本的な API プ ロ グ ラ ミ ン グ接続を テ ス ト で き ます。 C# 以外のプ ロ グ ラ ミ ン グ言語を 使用 し 、 Microsoft Visual Studio 2005 以外の Web サービ ス開発環境を使用 し てい る場合は、 該当す る ド キ ュ メ ン ト で詳細を参照 し て く だ さ い。 注 読者は基本的なプ ロ グ ラ ミ ン グ概念に習熟 し 、 コ ン ピ ュー タ にはプ ロ グ ラ ミ ン グ開発環境がすでに用意 さ れてい る も の と し ます。 こ の コ ー ド サ ン プルはい く つかの簡単な タ ス ク を実行 し ま す。 最初の 2 つの タ ス ク は、 Lab Manager Web サービ ス を呼び出すすべてのアプ リ ケーシ ョ ンに必要な も のです。 Lab Manager SOAP API にバ イ ン ド し ます。 SOAP 呼び出 し を行 う ためのユーザー名 と パス ワー ド を設定 し ます。 ServicePointManager 証明書ポ リ シーを設定 し 、 SSL 証明書を受け入れます。 接続す る には、 すべての 証明書を受け入れ る よ う に証明書ポ リ シーを設定す る必要があ り ます。 呼び出 し を行っ て、 オブジ ェ ク ト 名に基づ く 構成オブジ ェ ク ト を取得 し ます。 コ ン ソ ールにすべての構成フ ィ ール ド を表示 し ます。 C# での簡単な コ ン ソ ールア プ リ ケーシ ョ ンのサン プル こ のサンプル コ ー ド を コ ピー し 、 Microsoft Visual Studio 2005 環境に貼 り 付けて く だ さ い。 using System; using System.Net; namespace LMConsoleApplication1 { class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { try { // //** Bind to the Lab Manager SOAP API // LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); // //** Enter the URL for your system here // binding.Url ="https://10.6.1.248/LabManager/SOAP/LabManager.asmx"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** //** Allocate AuthenticationHeader object to hold caller’s //** user name and password //** binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); // VMware, Inc. 13 Lab Manager SOAP API リ フ ァ レ ン ス //** Substitute a real user’s user name, password, organization, and workspace name here // binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "My’Workspace"; //** //** Call GetSingleConfigurationByName() //** Get default configuration that comes with Lab Manager //** installation and write all property values to console //** LabManagerSoap.Configuration defCfg= binding.GetSingleConfigurationByName("Sample Configuration"); // //** Print out configuration properties to the Console // Console.WriteLine("Name = " + defCfg.name); Console.WriteLine("ID = " + defCfg.id.ToString()); Console.WriteLine("Description = "+ defCfg.description); Console.WriteLine("isPublic = "+ defCfg.isPublic.ToString()); Console.WriteLine("isDeployed = "+ defCfg.isDeployed.ToString()); Console.WriteLine("fenceMode = "+ defCfg.fenceMode.ToString()); Console.WriteLine("type = " + defCfg.type.ToString()); Console.WriteLine("owner = " + defCfg.owner); Console.WriteLine("dateCreated = " + defCfg.dateCreated.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } } //** end Main } //** end Class1 /// /// /// /// <summary> This class is needed to automatically accept the SSL certificate the Lab Manager sends on each API call. </summary> public class CertificateAccepter :System.Net.ICertificatePolicy { public CertificateAccepter() {} public bool CheckValidationResult( System.Net.ServicePoint servicePoint, System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Net.WebRequest webRequest, int iProblem) { return true; } } } //** end Namespace} 14 VMware, Inc. 章 2 Lab Manager SOAP API ス タ ー ト ガ イ ド Lab Manager と Quality Center を統合する C# の高度なサン プル こ のセ ク シ ョ ンの C# .NET のサンプルは、Lab Manager SOAP API を使用す る さ ら に包括的で実践的なサン プルです。 こ の コ ー ド サンプルでは、 Lab Manager SOAP API 呼び出 し と Mercury Interactive Corporation Quality Center 製品の統合を示 し ます。 こ のサンプル コー ド は下記の タ ス ク を実行 し ます。 Lab Manager API (Lab Manager SOAP API) の呼び出 し を行っ て、 ラ イ ブ ラ リ か ら 構成をチ ェ ッ ク ア ウ ト し 、 デプ ロ イ し ます。 Mercury Quality Center を使用 し て、 デプ ロ イ さ れた構成で事前に定義 さ れてい る一連のテ ス ト を実行 し ます。 Lab Manager SOAP API 呼び出 し を行っ て、 構成を取得 し 、 ワ ー ク スペース か ら ア ンデプ ロ イ し ます。 下記の タ ス ク は、 下記の メ ソ ッ ド を使用す る サンプル コー ド で実行 さ れます。 CheckoutDeployConfiguration() ― ラ イ ブ ラ リ か ら 構成を取得 し 、 Lab Manager ワー ク スペース にデ プ ロ イ し ます。 RunQCTestset() ― Mercury Interactive Quality Center の定義済みの一連のテ ス ト を実行し ます。定義済み のテ ス ト の詳細については、 Mercury Interactive Quality Center の ド キ ュ メ ン ト を参照し て く だ さ い。 CaptureUndeployConfiguration() ― 構成を ア ンデプ ロ イ し 、 ラ イ ブ ラ リ に取得 し ます。 さ ら に、 GetLMAPI() メ ソ ッ ド は、 Lab Manager API への新 し いバ イ ン ド を作成 し 、 認証パ ラ メ ー タ を設定 し ます。 こ の メ ソ ッ ド は、すべての証明書をプ ロ グ ラ ムで受け入れ る よ う に、.NET サービ ス ポ イ ン ト マネー ジ ャ の証明書ポ リ シーを構成 し ます。GetLMAPI() は、Lab Manager のバ イ ン ド の イ ン ス タ ン ス を返 し ます。 こ のサンプル コ ー ド を コ ピー し 、 Microsoft Visual Studio 2005 環境に貼 り 付けて く だ さ い。 using using using using using using System; System.Configuration; System.Collections.Specialized; System.IO; System.Net; TDAPIOLELib; //** From Mercury Quality Center namespace MATRun { /// <summary> /// Class1 comprises methods to check out a configuration from the Lab /// Manager Library and deploy it to the Workspace; execute several /// tests; and capture a configuration. /// </summary> class Class1 { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main(string[] args) { NameValueCollection settings=ConfigurationSettings.AppSettings; string filename = null; string buildlocation = null; string buildversion = null; if ( args.Length > 0 ) { buildlocation = args[0]; buildversion = args[1]; } if ( buildlocation == null ) { buildlocation = @"\\fs.labmanger.com\public\build\outputdir\1423\artifacts"; buildversion = "Lab Manager-2.0.4018"; VMware, Inc. 15 Lab Manager SOAP API リ フ ァ レ ン ス } filename = @"\\fs.labmanager.com\public\build\build-to-test.bat"; StreamWriter f = new StreamWriter(filename); f.WriteLine(String.Format(@"xcopy {0}\setup.exe c:\ /Y", buildlocation)); f.Close(); Console.WriteLine(String.Format("Testing {0} at location {1}", buildversion, buildlocation)); string config = CheckoutDeployConfiguration(buildversion); RunQCTestset(); CaptureUndeployConfiguration(config); } //** End Main() method // //** Initialize parameters // static string library_config = "ProofOfBuild-R2"; static string storage_server ="LM Server"; static string perform_capture ="Yes"; static string soap_server = "LM Server"; ///<summary> /// The RunQCTestset()method executes a series of predefined /// tests using Mercury Interactive’s Quality Center product. ///</summary> static void RunQCTestset() { string server = "https://demo12.Lab Manager.com/qcbin"; string domain = "Lab Manager_SYSTEMS"; string project = "Snapshot_20"; string username = "jaya"; string password = "Lab Manager"; string host = "10.6.1.34"; string chosenTestSet = "Install_Verify"; // ---TDConnection tdc = new TDConnection(); tdc.InitConnection(server, domain, ""); tdc.ConnectProjectEx(domain, project, username, password); if ( tdc.Connected) { TestSetFactory testSetFactory =(TestSetFactory)tdc.TestSetFactory; List testSetList; testSetList = testSetFactory.NewList(""); foreach ( TestSet testSet in testSetList) { if ( testSet.Name.ToUpper() == chosenTestSet.ToUpper()) { Console.WriteLine("Scheduling"+ testSet.Name); TSScheduler sched = (TSScheduler) testSet.StartExecution(host); sched.RunAllLocally = false; sched.Run(null); ExecutionStatus status = (ExecutionStatus) sched.ExecutionStatus; while ( status.Finished == false ) { System.Threading.Thread.Sleep(30); status.RefreshExecStatusInfo(null, true); } // results TDAPIOLELib.TSTestFactory tsf; tsf = (TSTestFactory) testSet.TSTestFactory; 16 VMware, Inc. 章 2 Lab Manager SOAP API ス タ ー ト ガ イ ド TDAPIOLELib.List testlist; testlist = tsf.NewList(""); foreach ( TSTest test in testlist) { TDAPIOLELib.Run r= (Run) test.LastRun; if (r != null) { Console.WriteLine(test.Name + " " + r.Name + " " + r.Status.ToString()); } } //** end foreach break; } //** end if } //** end foreach } //** end if } //** end RunQCTestset ///<summary> ///The CheckoutDeployConfiguration() method obtains the configuration ///from the Lab Manager Library and deploys it to the Lab Manager ///Workspace. ///</summmary> static string CheckoutDeployConfiguration( string version) { // //** Check out a configuration and deploy it to the Workspace string srcconfig = "ProofOfBuild-R2"; //** Configuration name System.DateTime time = System.DateTime.Now; string configname = version+"-"+ time.ToString().Replace(" ", "_").Replace("/","-"); // //** Bind to Lab Manager SOAP Web service // LabManagerSoap.LabManagerSOAPinterface binding = GetLMAPI(); // //** Get configuration information -- Configuration object // LabManagerSoap.Configuration config = binding.GetSingleConfigurationByName(srcconfig); Console.WriteLine("Checkout configuratioin "+ srcconfig); // //** Check configuration out of Configuration Library and //** name it(configname) // int newCheckoutID = binding.ConfigurationCheckout(config.id, configname); Console.WriteLine("Deploy configuratioin "+ srcconfig); // //** Deploy Configuration //** false = Do not run images from ESX host //** 1 = Fenced mode, traffic blocked in and out // binding.ConfigurationDeploy(newCheckoutID, false, 1); Console.WriteLine("Deploy is completed"); return configname; } ///<summary> /// The CaptureUndeployConfiguration() method saves the configuration /// to the Lab Manager Library and undeploys it from the workspace. ///</summary> VMware, Inc. 17 Lab Manager SOAP API リ フ ァ レ ン ス static void CaptureUndeployConfiguration(string configname) { // //** Bind to Lab Manager SOAP Web Service // LabManagerSoap.LabManagerSOAPinterface binding = GetLMAPI(); LabManagerSoap.Configuration config = binding.GetSingleConfigurationByName(configname); if ( perform_capture.Equals("Yes") ) { Console.WriteLine("Capture configuration "+ configname); int newConfigCaptureID = binding.ConfigurationCapture(config.id, configname); } Console.WriteLine("Undeploy configuration "+ configname); binding.ConfigurationUndeploy(config.id); Console.WriteLine("Undeploy is completed"); } /// <summary> ///The GetLMAPI() method creates a new binding to the Lab Manager API ///and sets up authentication and other basic parameters.This method ///returns a CertificateAcceptor object. /// </summary> static LabManagerSoap.LabManagerSOAPinterface GetLMAPI() { // //** Bind to SOAP interface // LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); // //**Allocate caller login object // binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.Url = binding.Url.Replace("https://qa240.VMware.com", "https:/demo44.VMware.com"); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "vlm"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); return binding; //** return binding reference } } /// /// /// /// /// <summary> The CertificateAccepter class automatically accepts the SSL certificate sent by Lab Manager with each API call from a client application. </summary> public class CertificateAccepter :System.Net.ICertificatePolicy { public CertificateAccepter() {} public bool CheckValidationResult( System.Net.ServicePoint servicePoint, System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Net.WebRequest webRequest, int iProblem) { return true; } }//end CertificateAccepter class declaration }//end namespace declaration 18 VMware, Inc. 3 Lab Manager の API デー タ 型 3 こ の章では、 Lab Manager の API デー タ 型に関す る詳細情報を提供 し ます。 こ こ では、 以下の ト ピ ッ ク について説明 し ます。 「プ リ ミ テ ィ ブ XML デー タ 型」 (P. 19) 「Lab Manager のデー タ 型」 (P. 19) 「AuthenticationHeader」 (P. 20) 「Configuration」 (P. 21) 「Machine」 (P. 21) プ リ ミ テ ィ ブ XML デー タ 型 Lab Manager の SOAP API デー タ 型は、テーブル 3-1 に示すプ リ ミ テ ィ ブ XML デー タ 型に基づいてい ます。 こ れ ら のプ リ ミ テ ィ ブ デー タ 型は、 Lab Manager の API 呼び出 し に使用 さ れ る Lab Manager デー タ 型の構 成要素です。 表 3-1. Lab Manager SOAP API のプ リ ミ テ ィ ブ XML デー タ 型 値 説明 xsd:Boolean true、 false、 0、 お よ び 1 を取 る 論理値。 xsd:date 日付値。 xsd:dateTime 日付 / 時刻値 ( タ イ ム ス タ ンプ )。 xsd:double 標準の IEEE 754-1985 で定義 さ れてい る IEEE 倍精度 64 ビ ッ ト 浮動小数点数型に対応す る 数値。 xsd:int -2147483648 ~ 2147483647 の数値。 xsd:string 任意の文字デー タ 。 Lab Manager のデー タ 型 ク ラ イ ア ン ト アプ リ ケーシ ョ ン を記述す る と き には、使用す る プ ロ グ ラ ミ ン グ言語お よ び開発環境向けに定 義 さ れたデー タ 型指定規則に従っ て く だ さ い。プ ロ グ ラ ミ ン グ言語で型指定 し たデー タ は、開発ツールに よ っ て上記の SOAP デー タ 型にマ ッ ピ ン グ さ れます。 Lab Manager のデー タ 型は、Lab Manager WSDL フ ァ イ ルで定義 さ れます。詳細については、「Lab Manager の SOAP API デー タ 型」 (P. 20) を参照 し て く だ さ い。 VMware, Inc. 19 Lab Manager SOAP API リ フ ァ レ ン ス 表 3-2. Lab Manager の SOAP API デー タ 型 デー タ 型 説明 AuthenticationHeader 呼び出 し 元のユーザー名、 パス ワー ド 、 組織、 お よ びワー ク スペース名を格納 し ます。 こ のデー タ 型は、Lab Manager Web サービ ス メ ソ ッ ド のすべての SOAP ヘ ッ ダーの一部 です。 Configuration 構成オブジ ェ ク ト 。 Machine マシ ン オブジ ェ ク ト 。 AuthenticationHeader こ のデー タ 型は、 呼び出 し 元の ユーザー名、 パ ス ワ ー ド 、 組織、 お よ び ワ ー ク ス ペー ス 名 を、 すべ て の Lab Manager SOAP API メ ソ ッ ド に渡 し ます。 サポー ト さ れてい る API 呼び出 し こ のデー タ 型は、 すべての API 呼び出 し をサポー ト し ます。 フ ィ ール ド 表 3-3. AuthenticationHeader フ ィ ール ド フ ィ ール ド デー タ 型 説明 organizationname string Lab Manager の組織の名前。 password string Lab Manager のア カ ウ ン ト のパ ス ワ ー ド 。 username string Lab Manager のア カ ウ ン ト のユーザー名。 workspacename string Lab Manager の ワー ク スペース の名前。 C# サン プル コ ー ド /** ** Visual Studio Console application in C# ** LMsoap = Web reference name for LM Web service ** Set up login code for all LM Web service method calls ** **/ try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue =new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "hedley"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 20 VMware, Inc. 章 3 Lab Manager の API デー タ 型 Configuration こ のデー タ 型は、 Lab Manager の構成 ラ イ ブ ラ リ ま たは ワ ー ク スペー ス の構成ご と に存在 し ます。 構成は、 仮想マシ ン と そのオペレーテ ィ ン グ シ ス テ ム、 アプ リ ケーシ ョ ン、お よ びデー タ のグループで、Lab Manager に よ っ て 1 つの単位 と し て制御 さ れます。 整数の ID フ ィ ール ド は、 構成を一意に識別 し ます。 構成名は、 必ず し も 一意ではあ り ません。 表 3-4. Configuration フ ィ ール ド フ ィ ール ド デー タ 型 説明 dateCreated dateTime 構成の作成日。 description string 構成の説明。 fenceMode int 1 = フ ェ ン スな し。 2 = フ ェ ン ス あ り 。 送受信 ト ラ フ ィ ッ ク をブ ロ ッ ク し ます。 3 = フ ェ ン ス あ り 。 送信 ト ラ フ ィ ッ ク のみを許可 し ます。 4 = フ ェ ン ス あ り 。 送受信 ト ラ フ ィ ッ ク を許可 し ます。 id int 構成 ID。 isDeployed boolean デプ ロ イ さ れてい る 場合は true。 デプ ロ イ さ れていない場合 は false。 isPublic boolean 他のユーザーが表示お よ びア ク セ ス で き る 場合は true。 で き ない場合は false。 name string 構成名。 owner string 所有者のユーザー名。 type int 構成 タ イ プ。 1 = ワー ク スペース構成。 2 = キ ャ プチ ャ ラ イ ブ ラ リ 構成。 3 = ゴール ド マ ス タ キ ャ プチ ャ ラ イ ブ ラ リ 構成。 4 = アーカ イ ブ ラ イ ブ ラ リ 構成。 autoDeleteInMiliSeco nds double 構成が削除 さ れ る ま での時間。 0 を入力 し た場合、 構成はい つま で も 削除 さ れません。 bucketName string 構成が ワー ク スペース に存在す る 場合は ワー ク スペース名を 表示 し 、 構成が ラ イ ブ ラ リ に存在す る 場合は組織名を表示 し ます。 mustBeFenced SOAPUtils.SOAPMustBeFe nced 「フ ェ ン ス あ り 」 ま たは 「フ ェ ン ス な し 」 のいずれかの場合は NotSpecified。 True = 「フ ェ ン ス あ り 」 のみの場合。 False = 「フ ェ ン ス な し 」 のみの場合。 autoDeleteDateTime dateTime 構成が削除 さ れ る ま での時間。 Machine こ のデー タ 型は、 Lab Manager の構成 ラ イ ブ ラ リ ま たは ワー ク スペース の仮想マシ ン ご と に存在 し ます。 整 数の ID フ ィ ール ド は、 マシ ン を一意に識別 し ます。 マシ ン名は、 構成内を除いて必ず し も 一意ではあ り ま せん。 . 表 3-5. Machine フ ィ ール ド フ ィ ール ド デー タ 型 説明 configID int 仮想マシ ンが属 し てい る 構成の ID。 DatastoreNameResidesOn string 仮想マシ ンが格納 さ れてい る デー タ ス ト アの名前。 description string マシ ンの説明。 externalIP string フ ェ ン ス内にあ る と き の一時的な IP ア ド レ ス。 VMware, Inc. 21 Lab Manager SOAP API リ フ ァ レ ン ス 表 3-5. Machine フ ィ ール ド (続き) フ ィ ール ド デー タ 型 説明 HostNameDeployedOn string 仮想マシ ンがデプ ロ イ さ れてい る ESX ホ ス ト の名前。 仮想マシ ン がデプ ロ イ さ れていない場合、 こ の フ ィ ール ド は空です。 id int マシ ン ID。 internalIP string 固定で割 り 当て ら れてい る IP ア ド レ ス。 isDeployed boolean デプ ロ イ さ れてい る 場合は true。 macAddress string プ ラ イ マ リ NIC に割 り 当て ら れてい る MAC ア ド レ ス。 memory int メ モ リ サ イ ズ (MB 単位 ) name string マシ ン名。 OwnerFullName string 仮想マシ ンの所有者の フルネーム。 status int 1 = オ フ。 2 = オン。 3 = サ スペン ド 。 4 = 停止。 128 = 無効。 22 VMware, Inc. 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ンス 4 テーブル 4-1 は、 vCenter Lab Manager SOAP API メ ソ ッ ド の一覧です。 メ ソ ッ ド についての詳細お よ び C# .NET コ ー ド サン プルを使用 し て こ れ ら の メ ソ ッ ド を呼び出す方法については、 個別の リ ン ク を ク リ ッ ク し て く だ さ い。 表 4-1. Lab Manager SOAP API メ ソ ッ ド メソッド 説明 「ConfigurationCapture」 (P. 24) ワー ク スペース の構成を取得 し 、 指定 さ れた Lab Manager のデー タ ス ト アに保存 し ます。 「ConfigurationCheckout」 (P. 25) 構成 ラ イ ブ ラ リ か ら 構成をチ ェ ッ ク ア ウ ト し 、 それを ワー ク スペース に移動 し ます。 「ConfigurationClone」 (P. 26) ワー ク スペース でア ク テ ィ ブな構成の ク ロ ーン を作成 し 、 それを ス ト レージに保存 し ます。 「ConfigurationDelete」 (P. 27) 構成を ワー ク スペース か ら 削除 し ます。 「ConfigurationDeploy」 (P. 28) 構成を ワー ク スペース にデプ ロ イ し ます。 「ConfigurationPerformAction」 (P. 29) 構成に対 し て ア ク シ ョ ン を実行 し ます。 「ConfigurationSetPublicPrivate」 (P. 30) 構成の状態をパブ リ ッ ク ま たはプ ラ イ ベー ト に設定 し ます。 パブ リ ッ ク な構成は、 他のユーザー も ア ク セ ス し て使用で き ます。 プ ラ イ ベー ト な構成は、 所有者だけが使用で き ます。 「ConfigurationUndeploy」 (P. 31) ワー ク スペース の構成を ア ンデプ ロ イ し て、 その状態を破棄 し ます。 「GetConfiguration」 (P. 32) 構成 ID に一致す る Configuration オブジ ェ ク ト を返 し ます。 「GetConfigurationByName」 (P. 33) 構成名に一致す る Configuration オブジ ェ ク ト を返 し ます。 構成名 は、 必ず し も 一意ではあ り ません。 「GetCurrentOrganizationName」 (P. 34) 現在の組織の名前を返 し ます。 「GetCurrentWorkspaceName」 (P. 35) 現在の ワー ク スペース の名前を返 し ます。 「GetMachine」 (P. 35) マシ ン ID に一致す る Machine オブジ ェ ク ト を返 し ます。 「GetMachineByName」 (P. 37) マシ ン名に一致す る Machine オブジ ェ ク ト を返 し ます。 「GetSingleConfigurationByName」 (P. 38) 構成名に一致す る 1 つの Configuration オブジ ェ ク ト を返 し ます。 「ListConfigurations」 (P. 39) ワー ク スペース内ま たは構成 ラ イ ブ ラ リ 内の Configuration オブジ ェ ク ト の配列を返 し ます。 「ListMachines」 (P. 40) 構成の数値 ID に対応す る Machine オブジ ェ ク ト の配列を返 し ます。 「LiveLink」 (P. 41) 電子 メ ールで送信で き 、 ク リ ッ ク し て構成を再作成で き る 、 構成への URL を作成 し ます。 「MachinePerformAction」 (P. 42) マシ ンに対 し て ア ク シ ョ ン を実行 し ます。 「SetCurrentOrganizationByName」 (P. 43) 以降の各 ロ グ イ ンに使用す る 組織を設定 し ます。 「SetCurrentWorkspaceByName」 (P. 44) 以降の各 ロ グ イ ンに使用す る ワ ー ク スペース を設定 し ます。 VMware, Inc. 23 Lab Manager SOAP API リ フ ァ レ ン ス ConfigurationCapture こ の メ ソ ッ ド は、 ワー ク スペース の構成を取得 し て保存 し ます。 構文 int newConfigId = ConfigurationCapture(10, “Config10Capture” ); 引数 フ ィ ール ド デー タ 型 説明 configurationID int 構成 ID。 newLibraryName string 取得名。 応答 フ ィ ール ド デー タ 型 説明 configurationID int 新 し い取得の構成 ID。 C# サン プル コ ー ド try { //** //** LabManagerSoap is the name of the Web reference in Visual Studio //** LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Config26"); //** Get configuration identifier and deployed status from object int configurationId = Config.id; bool deployed = Config.isDeployed; //** Capture configuration if it’s deployed if (deployed) { //** Save capture with date and time stamp string captureName=Config.name + DateTime.Now.ToString(); string LMStorageServer = "LM Server"; binding.ConfigurationCapture(configurationId, captureName); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 24 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス ConfigurationCheckout こ の メ ソ ッ ド は、 構成を ラ イ ブ ラ リ か ら チェ ッ ク ア ウ ト し 、 それを別の名前で ワーク スペースに移動し ます。 構文 int result = ConfigurationCheckout(7, “Config7May10”); 引数 フ ィ ール ド デー タ 型 説明 configurationID int 構成 ラ イ ブ ラ リ 内の構成の数値 ID。 workspaceName string チ ェ ッ ク ア ウ ト す る 構成の名前。 フ ィ ール ド デー タ 型 説明 configurationID int ワ ー ク スペース内の構成の数値 ID。 応答 C# サン プル コ ー ド try { // //** LMSoap is the name of the Web reference in Visual Studio. // LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); // //** Create login // binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; binding.Url = "https://demo18.LabManager.com/LabManager/SOAP/LabManager.asmx"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); // //** Get Configuration object // LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Win2K3Exchange"); int configurationId = Config.id; // //** Timestamp library configuration name as new Workspace name // string checkoutName=Config.name + DateTime.Now.ToString(); // //** Check out and move to Workspace // int newConfigID = binding.ConfigurationCheckout(Config.id, checkoutName); Console.WriteLine("New Config ID=" + newConfigID.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error="+e.Message); Console.ReadLine(); } VMware, Inc. 25 Lab Manager SOAP API リ フ ァ レ ン ス ConfigurationClone こ の メ ソ ッ ド は、 ワー ク スペース構成の ク ロ ーン を作成 し 、 それをデー タ ス ト アに保存 し て、 新 し い名前を 使用 し て ワー ク スペース内で参照で き る よ う に し ます。 構文 int result = ConfigurationClone(6, “Config6Clone” ); 引数 フ ィ ール ド デー タ 型 説明 configurationId int 構成 ラ イ ブ ラ リ 内の構成の数値 ID。 newWorkspaceName string 新 し い ワー ク スペース構成の名前。 フ ィ ール ド デー タ 型 説明 configurationID int 新 し い ワー ク スペース構成の数値 ID。 応答 C# サン プル コ ー ド try { //** //** LabManagerSoap is the name of the Web reference in Visual Studio //** LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Clone Configuration int newConfigId = binding.ConfigurationClone(24, "ClonedConfig24"); Console.WriteLine("New Config ID=" + newConfigId.ToString()); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 26 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス ConfigurationDelete こ の メ ソ ッ ド は、 構成を ワー ク スペース か ら 削除 し ます。 デプ ロ イ さ れてい る構成は削除で き ません。 構文 ConfigurationDelete(6); 引数 フ ィ ール ド デー タ 型 説明 configurationID int ワー ク スペース構成の数値 ID。 応答 応答はあ り ません。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config=binding.GetSingleConfigurationByName( "Config24"); //** Get configuration identifier and deployed status from object int configurationId = Config.id; bool deployed = Config.isDeployed; //** Delete configuration if it isn’t deployed if (!deployed) { binding.ConfigurationDelete(configurationId); } else { //** //** Must undeploy configuration before deleting it //** binding.ConfigurationUndeploy(configurationId); binding.ConfigurationDelete(configurationId); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 27 Lab Manager SOAP API リ フ ァ レ ン ス ConfigurationDeploy こ の メ ソ ッ ド を使用す る と 、 ワー ク スペース内に存在す る ア ンデプ ロ イ さ れた構成をデプ ロ イ で き ます。 構文 ConfigurationDeploy(6, false, 1); 引数 フ ィ ール ド デー タ 型 説明 configurationID int ワ ー ク スペース内の構成の数値 ID。 isCached boolean 常に false 値に設定 し ます。 fenceMode int 1 = Nonfenced 2 = FenceBlockInAndOut 3 = FenceAllowOutOnly 4 = FenceAllowInAndOut 応答 応答はあ り ません。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Config24"); //** Get configuration identifier and deployed status from object int configurationId = Config.id; bool deployed = Config.isDeployed; //** Deploy configuration if it isn’t already. if (!deployed) { //** Deploy in fenced mode and run from ESX hosts binding.ConfigurationDeploy(configurationId, false, 1); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 28 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス ConfigurationPerformAction こ の メ ソ ッ ド は、 ア ク シ ョ ン ID で指定 さ れてい る 次のいずれかの構成ア ク シ ョ ン を実行 し ます。 1 = パ ワ ーオン。 構成をオンに し ます。 2 = パ ワ ーオ フ。 構成をオ フ に し ます。 何 も 保存 さ れません。 3 = サ スペン ド 。 CPU お よ び構成の状態を フ リ ーズ し ます。 4 = レ ジ ュ ーム。 サ スペン ド し てい る 構成を レ ジ ュ ーム し ます。 5 = リ セ ッ ト 。 構成を再起動 し ます。 6 = ス ナ ッ プシ ョ ッ ト 。 特定の時点での構成の状態を保存 し ます。 7 = 復元。 構成を ス ナ ッ プシ ョ ッ ト の状態に復元 し ます。 8 = シ ャ ッ ト ダ ウ ン。 オ フ にす る 前に構成を シ ャ ッ ト ダ ウ ン し ます。 構文 ConfigurationPerformAction(int configurationID, int action); 引数 フ ィ ール ド デー タ 型 説明 action int 構成で実行す る ア ク シ ョ ン。 configurationID int 構成 ID。 応答 応答はあ り ません。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); int configurationType = 1; //** Get workspace configuration //** //** Get array of all configurations //** LabManagerSoap.Configuration [] configurations = binding.ListConfigurations(configurationType); //** //** Loop through all configurations. //** for (int j=0; j < configurations.Length; j++) { binding.ConfigurationPerformAction(configurations[j].id,4/*Resume*/); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 29 Lab Manager SOAP API リ フ ァ レ ン ス ConfigurationSetPublicPrivate こ の メ ソ ッ ド は、 構成の状態をパブ リ ッ ク ま たはプ ラ イ ベー ト に設定 し ます。 構成の状態がパブ リ ッ ク の場 合は、 すべての組織のすべての Lab Manager ユーザーが こ の構成にア ク セ ス で き ます (読み取 り のみ)。 構成 がプ ラ イ ベー ト の場合は、 所有者 と 管理者のみがその構成を表示で き ます。 構文 ConfigurationSetPublicPrivate(10, false); 引数 フ ィ ール ド デー タ 型 説明 configurationID int 構成 ID。 isPublic boolean true = パブ リ ッ ク 、 false = プ ラ イ ベー ト 。 応答 応答はあ り ません。 C# サン プル コ ー ド try { // //** LabManagerSoap is the name of the Web reference in Visual Studio // LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Config24"); //** Get configuration identifier and shared status from object bool shared = Config.isPublic; //** Make configuration public if it isn’t already. if (!shared) { binding.ConfigurationSetPublicPrivate(Config.id, true); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 30 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス ConfigurationUndeploy ワー ク スペース の構成を ア ンデプ ロ イ し て、 その状態を破棄 し ます。 構文 ConfigurationUndeploy(10); 引数 フ ィ ール ド デー タ 型 説明 configurationID int 構成の数値 ID。 応答 応答はあ り ません。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.Url = "https://demo18.LabManager.com/LabManager/SOAP/LabManager.asmx"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; // //* Get configurations in Workspace, not Library // int configurationType= 1; LabManagerSoap.Configuration[] configurations = binding.ListConfigurations(configurationType); // //** Undeploy all deployed configurations I own // for (int i=0; i < configurations.Length; i++) { if (configurations[i].owner.Equals("jaya")) { binding.ConfigurationUndeploy(configurations[i].id); } } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 31 Lab Manager SOAP API リ フ ァ レ ン ス GetConfiguration こ の メ ソ ッ ド は、 渡 さ れた構成 ID に一致す る Configuration 型のオブジ ェ ク ト を返 し ます。 構文 Configuration config = GetConfiguration(10); フ ィ ール ド デー タ 型 説明 configurationID int 構成 ID。 フ ィ ール ド デー タ 型 説明 configuration Configuration 渡 さ れた構成 ID に一致す る Configuration オブジ ェ ク ト 。 応答 C# サン プル コ ー ド try { //** LabManagerSoap is the name of the Web reference in Visual Studio LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetConfiguration(26); //** Write to the console configuration properties Console.WriteLine("Config name = " + Config.name); Console.WriteLine("Config id = " + Config.id.ToString()); Console.WriteLine("Config description = " + Config.description); Console.WriteLine("Config isPublic = " + Config.isPublic.ToString()); Console.WriteLine("Config isDeployed = " + Config.isDeployed.ToString()); Console.WriteLine("Config fenceMode = " + Config.fenceMode.ToString()); Console.WriteLine("Config type = " + Config.type.ToString()); Console.WriteLine("Config owner = " + Config.owner); Console.WriteLine("Config dateCreated = " + Config.dateCreated.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 32 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス GetConfigurationByName こ の メ ソ ッ ド は、 構成の名前を受け取 り 、 その名前に一致す る構成の配列を返 し ます。 ワー ク スペース の構 成名は一意です。 指定 さ れた名前で複数の構成が存在す る場合があ り ます。 指定 さ れた名前の構成が存在 し ない場合、 空の配列を返 し ます。 構文 Configuration [] config = GetConfigurationByName( “Config9” ); 引数 フ ィ ール ド デー タ 型 説明 name string 構成名。 フ ィ ール ド デー タ 型 説明 configuration[] Configuration 同 じ 名前の Configuration オブジ ェ ク ト の配列。 応答 C# サン プル コ ー ド try { // //** LabManagerSoap is the name of the Web reference in Visual Studio // LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); // //** Get Configuration objects // LabManagerSoap.Configuration [] Configs = binding.GetConfigurationByName("Config24Capture"); // //** Write to the console all configurations and their properties. // for (int i=0; i < Configs.Length; i++) { Console.WriteLine("Config name = " + Configs[i].name); Console.WriteLine("id = " + Configs[i].id.ToString()); Console.WriteLine("description = " + Configs[i].description); Console.WriteLine("isPublic = " + Configs[i].isPublic.ToString()); Console.WriteLine("isDeployed = " + Configs[i].isDeployed.ToString()); Console.WriteLine("fenceMode = " + Configs[i].fenceMode.ToString()); Console.WriteLine("type = " + Configs[i].type.ToString()); Console.WriteLine("owner = " + Configs[i].owner); Console.WriteLine("dateCreated = " + Configs[i].dateCreated.ToString()); VMware, Inc. 33 Lab Manager SOAP API リ フ ァ レ ン ス Console.WriteLine(); Console.ReadLine(); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } GetCurrentOrganizationName こ の メ ソ ッ ド は、 現在の組織の名前を返 し ます。 構文 string organizationName = GetCurrentOrganizationName(); 応答 フ ィ ール ド デー タ 型 説明 organization name string 現在の組織の名前を返 し ます。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); string organizationName = binding.GetCurrentOrganizationName(); Console.WriteLine("Current organization I am logged in:" + organizationName); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 34 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス GetCurrentWorkspaceName こ の メ ソ ッ ド は、 現在の ワー ク スペース の名前を返 し ます。 構文 string workspaceName = GetCurrentWorkspaceName(); 応答 フ ィ ール ド デー タ 型 説明 workspace name string 現在の ワー ク スペース の名前を返 し ます。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname; ServicePointManager.CertificatePolicy = new CertificateAccepter(); string workspaceName = binding.GetCurrentWorkspaceName(); Console.WriteLine("Current workspace I am logged in:" + workspaceName); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } GetMachine こ の メ ソ ッ ド は、 マシ ンの数値 ID を受け取 り 、 対応す る Machine オブジ ェ ク ト を返 し ます。 構文 Machine mach = GetMachine(10); 引数 フ ィ ール ド デー タ 型 説明 machineID int マシ ン ID。 フ ィ ール ド デー タ 型 説明 machine Machine マシ ン ID に一致す る Machine オブ ジェ ク ト 。 応答 VMware, Inc. 35 Lab Manager SOAP API リ フ ァ レ ン ス C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); LabManagerSoap.Machine machine = binding.GetMachine(35); //** Write to the console all machines in configuration. Console.WriteLine("Machine = " + machine.name); Console.WriteLine("id = " + machine.id.ToString()); Console.WriteLine("description = " + machine.description); Console.WriteLine("internalIP = " + machine.internalIP); Console.WriteLine("externalIP = " + machine.externalIP); Console.WriteLine("status = " + machine.status.ToString()); Console.WriteLine("isDeployed = " + machine.isDeployed.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 36 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス GetMachineByName こ の メ ソ ッ ド は、 構成 ID と マシ ン名を受け取 り 、 一致す る Machine オブジ ェ ク ト を返 し ます。 構文 Machine mach = GetMachineByName(10, “Config9VM1” ); 引数 フ ィ ール ド デー タ 型 説明 configurationId int 構成 ID。 name string マシ ン名。 フ ィ ール ド デー タ 型 説明 machine Machine Machine オブジ ェ ク ト 。 応答 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); LabManagerSoap.Machine machine = binding.GetMachineByName(10, "Config9VM1"); //** Write to the console all machines fields Console.WriteLine("Machine = " + machine.name); Console.WriteLine("id = " + machine.id.ToString()); Console.WriteLine("description = " + machine.description); Console.WriteLine("internalIP = " + machine.internalIP); Console.WriteLine("externalIP = " + machine.externalIP); Console.WriteLine("status = " + machine.status.ToString()); Console.WriteLine("isDeployed = " + machine.isDeployed.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 37 Lab Manager SOAP API リ フ ァ レ ン ス GetSingleConfigurationByName こ の メ ソ ッ ド は、 構成名を受け取 り 、 構成 ラ イ ブ ラ リ と ワー ク スペース の両方でそれを検索 し て、 対応す る Configuration オブジ ェ ク ト を返 し ます。 構文 Configuration config = GetSingleConfigurationByName( “Config9” ); 引数 フ ィ ール ド デー タ 型 説明 name string 構成名。 応答 フ ィ ール ド デー タ 型 説明 configuration Configuration 構成オブジ ェ ク ト 。 C# サン プル コ ー ド try { //** LabManagerSoap is the name of the Web reference in Visual Studio LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Config24Capture"); //** Write to the console configuration properties. Console.WriteLine("Config name = " + Config.name); Console.WriteLine("Config id = " + Config.id.ToString()); Console.WriteLine("Config description = " + Config.description); Console.WriteLine("Config isPublic = " + Config.isPublic.ToString()); Console.WriteLine("Config isDeployed = " + Config.isDeployed.ToString()); Console.WriteLine("Config fenceMode = " + Config.fenceMode.ToString()); Console.WriteLine("Config type = " + Config.type.ToString()); Console.WriteLine("Config owner = " + Config.owner); Console.WriteLine("Config dateCreated = " + Config.dateCreated.ToString()); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 38 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス ListConfigurations こ の メ ソ ッ ド は、 Configuration 型の配列を返 し ま す。 要求 さ れた構成 タ イ プに応 じ て、 構成 ラ イ ブ ラ リ 内 の各構成ま たは ワー ク スペース内の各構成に対 し て 1 つのオブジ ェ ク ト を返 し ます。 構文 Configuration [] config = ListConfigurations(1); 引数 フ ィ ール ド デー タ 型 説明 configurationType int 1 = ワー ク スペース構成、 2 = ラ イ ブ ラ リ 構成。 フ ィ ール ド デー タ 型 説明 configurations[] Configuration Array Configuration オブジ ェ ク ト の配列。 応答 C# サン プル コ ー ド try { //** //** LabManagerSoap is the name of the Web reference in Visual Studio. //** LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configurations in Workspace. int configurationType = 1; //** 1=Workspace LabManagerSoap.Configuration [] WSconfigurations = binding.ListConfigurations(configurationType); //** Write to the console all configurations for (int i=0; i < WSconfigurations.Length; i++) { Console.WriteLine("Configuration name = " + WSconfigurations[i].name); Console.WriteLine("id = " + WSconfigurations[i].id.ToString()); Console.WriteLine("description = " +WSconfigurations[i].description); Console.WriteLine("isPublic = " + WSconfigurations[i].isPublic.ToString()); Console.WriteLine("isDeployed = "+ WSconfigurations[i].isDeployed.ToString()); Console.WriteLine("fenceMode = " + WSconfigurations[i].fenceMode.ToString()); Console.WriteLine("type = " + WSconfigurations[i].type.ToString()); Console.WriteLine("owner = " + WSconfigurations[i].owner); Console.WriteLine("dateCreated = " + WSconfigurations[i].dateCreated.ToString()); Console.WriteLine(); } Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 39 Lab Manager SOAP API リ フ ァ レ ン ス ListMachines こ の メ ソ ッ ド は、 Machine 型の配列を返 し ます。 構成内の仮想マシ ン ご と に 1 つの Machine オブジ ェ ク ト を 返 し ます。 構文 Machine [] machines = ListMachines(1); 引数 フ ィ ール ド デー タ 型 説明 configurationID int 構成の数値 ID。 フ ィ ール ド デー タ 型 説明 machine[] Machine array Machine オブジ ェ ク ト の配列。 応答 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.Url = "https://demo18.LabManager.com/LabManager/SOAP/LabManager.asmx"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; int configurationType = 1; //** Get workspace configuration LabManagerSoap.Configuration [] configurations = binding.ListConfigurations(configurationType); for (int j=0; j < configurations.Length; j++) { Console.WriteLine("Configuration = " + configurations[j].name.ToString()); LabManagerSoap.Machine [] machines = binding.ListMachines(configurations[j].id); //** Write to the console all machines in configuration for (int i=0; i < machines.Length; i++) { Console.WriteLine("Machine = " + machines[i].name); Console.WriteLine("id = " + machines[i].id.ToString()); Console.WriteLine("description = " + machines[i].description); Console.WriteLine("internalIP = " + machines[i].internalIP); Console.WriteLine("externalIP = " + machines[i].externalIP); Console.WriteLine("status = " + machines[i].status.ToString()); Console.WriteLine("isDeployed = " + machines[i].isDeployed.ToString()); Console.WriteLine(); } Console.ReadLine(); } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 40 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス LiveLink こ の メ ソ ッ ド を使用す る と 、 ラ イ ブ ラ リ の構成に対す る LiveLink URL を作成で き ます。 構文 string url = LiveLink( “LiveLinkWin2K” ); 引数 フ ィ ール ド デー タ 型 説明 configurationName string ラ イ ブ ラ リ 構成の名前。 フ ィ ール ド デー タ 型 説明 URL string ラ イ ブ ラ リ 内の構成の URL を含む文 字列。 URL を電子 メ ールで送信で き ます。 その URL を ク リ ッ ク す る と 構 成が再作成 さ れます。 応答 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); //** Create login binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; binding.Url = "https://demo18.LabManager.com/LabManager/SOAP/LabManager.asmx"; binding.Timeout = 10 * 60 * 1000; // 10 minutes ServicePointManager.CertificatePolicy = new CertificateAccepter(); //** Get Configuration object LabManagerSoap.Configuration Config = binding.GetSingleConfigurationByName("Win2kBEA"); //** If configuration is deployed, livelink it if (Config.isDeployed) { string captureName= "Win2kBEA" + DateTime.Now.ToString(); string url = binding.LiveLink(Config.name); Console.WriteLine("LiveLink URL="+url); Console.ReadLine(); } } catch (Exception e) { Console.WriteLine("Error="+e.Message); Console.ReadLine(); } VMware, Inc. 41 Lab Manager SOAP API リ フ ァ レ ン ス MachinePerformAction こ の メ ソ ッ ド は、 ア ク シ ョ ン ID で指定 さ れてい る 次のいずれかのマシ ン ア ク シ ョ ン を実行 し ます。 1 = パ ワ ーオン。 マシ ン をオンに し ます。 2 = パ ワ ーオ フ。 マシ ン をオ フ に し ます。 何 も 保存 さ れません。 3 = サ スペン ド 。 マシ ンの CPU と 状態を フ リ ーズ し ます。 4 = レ ジ ュ ーム。 サ スペン ド し てい る マシ ン を レ ジ ュ ーム し ます。 5 = リ セ ッ ト 。 マシ ン を再起動 し ます。 6 = ス ナ ッ プシ ョ ッ ト 。 特定の時点でのマシ ンの状態を保存 し ます。 7 = 復元。 マシ ン を ス ナ ッ プシ ョ ッ ト の状態に復元 し ます。 8 = シ ャ ッ ト ダ ウ ン。 オ フ にす る 前にマシ ン を シ ャ ッ ト ダ ウ ン し ます。 構文 MachinePerformAction(1, 3); 引数 フ ィ ール ド デー タ 型 説明 action int マシ ンで実行す る ア ク シ ョ ン。 machineID int マシ ン ID。 応答 応答はあ り ません。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; binding.AuthenticationHeaderValue.organizationname = "MyOrg"; binding.AuthenticationHeaderValue.workspacename = "MyWorkspace"; ServicePointManager.CertificatePolicy = new CertificateAccepter(); int configurationType = 1; //** Get workspace configuration //** //** Get array of all configurations //** LabManagerSoap.Configuration [] configurations = binding.ListConfigurations(configurationType); //** //** Loop through all configurations. //** for (int j=0; j < configurations.Length; j++) { //** //** Get array of all machines in configurations //** LabManagerSoap.Machine [] machines = 42 VMware, Inc. 章 4 Lab Manager API メ ソ ッ ド リ フ ァ レ ン ス binding.ListMachines(configurations[j].id); //** //** Loop through all machines //** for (int i=0; i < machines.Length; i++) { //** //** Check statusóif machine is suspended, then resume it //** if (machines[i].status == 3) { binding.MachinePerformAction(machines[i].id, 4); } } } } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } SetCurrentOrganizationByName 以降の各 ロ グ イ ンに使用す る 組織を設定 し ます。 こ の メ ソ ッ ド は、 許可ヘ ッ ダーで組織名が空の と き に機能 し ます。 構文 SetCurrentOrganizationByName( “MyOrganization” ); 引数 フ ィ ール ド デー タ 型 説明 orgName string ユーザーが メ ンバであ る 組織。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; // This field must be empty for SetCurrentOrganization to work binding.AuthenticationHeaderValue.organizationname = ""; ServicePointManager.CertificatePolicy = new CertificateAccepter(); SetCurrentOrganizationByName(“MyOrganization”); string organizationName = GetCurrentOrganizationName(); Console.WriteLine("Current organization I am logged in:" + organizationName); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } VMware, Inc. 43 Lab Manager SOAP API リ フ ァ レ ン ス SetCurrentWorkspaceByName 以降の各 ロ グ イ ンに使用す る ワー ク スペース を設定 し ます。 こ の メ ソ ッ ド は、 許可ヘ ッ ダーで ワー ク スペー ス名が空の と き に機能 し ます。 構文 SetCurrentWorkspaceByName( “MyOrganization “, “MyWorkspace” ); 引数 フ ィ ール ド デー タ 型 説明 orgName string ユーザーが メ ンバであ る 組織。 workspaceName string ユーザーが メ ンバであ る ワー ク スペース。 C# サン プル コ ー ド try { LabManagerSoap.LabManagerSOAPinterface binding = new LabManagerSoap.LabManagerSOAPinterface(); binding.AuthenticationHeaderValue = new LabManagerSoap.AuthenticationHeader(); binding.AuthenticationHeaderValue.username = "jaya"; binding.AuthenticationHeaderValue.password = "Lab Manager"; // The following authorization header fields must be empty or absent // for the SetCurrentOrganization and SetCurrentWorkspace to work binding.AuthenticationHeaderValue.organizationname = ""; binding.AuthenticationHeaderValue.workspacename = ""; ServicePointManager.CertificatePolicy = new CertificateAccepter(); SetCurrentOrganizationByName(“MyOrganization”); SetCurrentWorkspaceByName(“MyOrganization”, “MyWorkspace”); string organizationName = GetCurrentOrganizationName(); string workspaceName = GetCurrentWorkspaceName(); Console.WriteLine("Current organization I am logged in:" + organizationName); Console.WriteLine("Current workspace I am logged in:" + workspaceName); Console.ReadLine(); } catch (Exception e) { Console.WriteLine("Error:" + e.Message); Console.ReadLine(); } 44 VMware, Inc. 索引 C そ CaptureUndeployConfiguration, 18 CertificateAccepter(), 18 CheckoutDeployConfiguration, 17 操作、 サポー ト 対象 , 10 G GetLMAPI(), 18 て デー タ 型 Lab Manager 用 , 19 Machine, 21 でーたがた AuthenticationHeader, 20 プ リ ミ テ ィ ブ XML, 19 構成 , 21 L Lab Manager SOAP API、 定義 , 9 R ゆ RunQCTestset(), 16 ユーザー、 認証 , 10 S SOAP API メ ソ ッ ド ConfigurationCapture, 24 ConfigurationCheckout, 25 ConfigurationClone, 26 ConfigurationDelete, 27 ConfigurationDeploy, 28 ConfigurationPerformAction, 29 ConfigurationSetPublicPrivate, 30 ConfigurationUndeploy, 31 GetConfiguration, 32 GetConfigurationByName, 33 GetCurrentOrganizationName, 34 GetCurrentWorkspaceName, 35 GetMachine, 23, 35 GetMachineByName, 37 GetSingleConfigurationByName, 38 ListConfigurations, 39 ListMachines, 40 LiveLink, 41 MachinePerformAction, 42 SetCurrentOrganizationByName, 43 SetCurrentWorkspaceByName, 44 SOAP API、 WSDL フ ァ イルの取得 , 11 か 開発環境、 サポー ト 対象 , 9 こ 言語、 サポー ト 対象 , 9 せ セキ ュ リ テ ィ 、 SSL の使用 , 10 VMware, Inc. 45 Lab Manager SOAP API リ フ ァ レ ン ス 46 VMware, Inc.