vSphere API事始め

Posted by ひつまぶし食べたい on Thursday, August 14, 2014

リファレンス

参考サイト

Overview

Types

4つのタイプがある。

vSphere APIの型普通のプログラミングとの類推
managed object typeプリミティブ型、複合型
data object type抽象データ型
enumerated type定数
Fault type例外型

1. Managed object types

Managed object typeとは

(サーバーサイドのオブジェクトモデルの基本的なデータを担っている。data objectも同じく。) managed objectには、大きく2つの種類がある。

  1. ManagedEntity を拡張したもので、仮想コンポーネントのインベントリとして使われている。 “managed entities"と呼ばれることもある。

    例えば以下のようなものがある。

     | HostSystem     | ホストシステムのインスタンス |
     | VirtualMachine | VM                     |
     | Datastore      | データストア              |
    
  2. システム全体のための、サービスを提供するもの。 例えば、以下のもの。

     | PerfomanceManager  | パフォーマンス管理         |
     | LicenseManager     | VMware製品のライセンス管理 |
     | VirtualDiskManager | 仮想ストレージの管理       |
    

Managed object typeの使い方

使いはじめるには、

  1. connect : サーバーに接続
  2. authenticate :認証を通す
  3. session : セッションを得る

というステップがある。

セッションを貼った後は、ServiceInstance という managed objectを得る。 ServiceInstance の下には、 Data object typesがぶら下がっている。 以下の図で、“MOR"というのは、 ManagedObjectRefarence の略で、 これは、server-side object へのリファレンスを与えるdata objectである。

※図はvmwareのドキュメントから。

ServiceInstance_TopLevel_Figure 凡例 legend_figures

managed obejectは、property と operation(method)を持っている。

2. Data object types

Data object typeとは

Javaでいう抽象データ型や、C++でいうstructデータ型のようなもの。 managed object typeが、プリミティブデータ型だったり、複合データ型だったりする。 (vSphere API的な意味での、プリミティブデータ型は、 XML Schemeプリミティブで書かれている。例えば、xsd:string とか。)

※図はvmwareのドキュメント から。

ServiceInstance_AboutInfo_Detail

Data object typeの例

data object説明
AlarmInfoAlarmSpecから継承するプロパティ + ManagedObjectReference(Alarm managed objectへのリファレンス)
ManagedObjectReferenceMOR, reference, MoRefとか呼ばれる。server-side managed objectのリファレンス

3. Enumerated types (enumeration)

予め定義されている値や予め定義されたオブジェクトが保管されているオブジェクト。 つまり、定数のように使われる。

| VirtualMachinePowerState | VMの起動状態を持っている。 poweredOff,poweredOn,suspended |

4. Fault types

サーバーによってあげられる例外。

Fault説明
NotSuported呼ばれたメソッドがサーバーでサポートされていなかったとき。vCetnerのメソッドをESXiで呼んだりとかの場合も。
NoPermissionclientユーザーの権限が足りないとき。権限が必要だった、MORを含んで返してくれる

comments powered by Disqus