...

Lab Manager SOAP API

by user

on
Category: Documents
10

views

Report

Comments

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.
Fly UP