文章出處

在vmware的api中提供以下列表中的對象,稱作ManagedObjectReference,包括虛擬機信息、主機、數據中心等等一些信息,我們可以通過vcenter的web api得到。

下面我們來通過它的api獲取dc。

 1 List<String> arguments = new List<string>();
 2 arguments.AddRange(
 3     new string[]{
 4     "--url", "https://192.168.0.160/sdk",
 5     "--username", "administrator@vsphere.local", 
 6     "--password", "P@ssw0rd", 
 7     //"--datacentername","dc",
 8     //"--srcname", "", 
 9     //"--vmname", "",
10     //"--hostname","",
11     //"--storagename","",
12     //"--disksize","",
13     //"--privateip","",
14     //"--privatesubnetmask", "",
15     //"--cpunums","",
16     //"--memorymb","",
17     "--disablesso", "true",
18     "--ignorecert", "true"
19 });
20 try
21 {
22     System.Text.StringBuilder sb = new System.Text.StringBuilder();
23 
24     AppUtil.AppUtil util = AppUtil.AppUtil.initialize("SearchIndex", constructOptions(), arguments.ToArray());
25     util.connect();
26   
27     ManagedObjectReference hostMor = util._svcUtil.GetDecendentMoRef(null, "HostSystem", "192.168.0.161");
28     sb.AppendLine(string.Format("host is {0}<br />", hostMor.Value));
29     ManagedObjectReference dcMor = util._svcUtil.getEntityByName("Datacenter", "dc");
30     sb.AppendLine(string.Format("dc is {0}<br />", dcMor.Value));
31 
32     ManagedObjectReference sMor = new ManagedObjectReference();
33     sMor.type = "ServiceInstance";
34     sMor.Value = "ServiceInstance";
35     VimService service = new VimService();
36     service.Url = util.get_option("url");
37     service.CookieContainer = new System.Net.CookieContainer();
38     ServiceContent sc = service.RetrieveServiceContent(sMor);
39     service.Login(sc.sessionManager, util.get_option("username"), util.get_option("password"), null);
40 
41     ManagedObjectReference searchMor = sc.searchIndex;
42     ManagedObjectReference dcMor2 = service.FindByInventoryPath(searchMor, "dc");
43     sb.AppendLine(string.Format("dc2 is {0}<br />", dcMor2.Value));
44 
45     util.disConnect();
46     service.Dispose();
47 
48     Response.Write(sb.ToString());
49 
50 }
51 catch (Exception ex) { Response.Write(ex.ToString()); }

 

上述代碼中我們運用了兩種不同的代碼方式獲取數據中心對象,下面是它的運行結果,我們可以看到vcenter在內部用了別稱。

1

在vcenter server中封裝了http://ip/sdk的api,開發者可以直接調用。

每個實體下面具有一些屬性,文檔可以查詢Data Object ManagedObjectReference。

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()