• vmware获取主机、数据中心等对象ManagedObjectReference


    在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。

  • 相关阅读:
    Spring Boot 2.x基础教程:配置元数据的应用
    目前用下来最溜的MacOS微信多开工具!
    在IDEA中通过Module管理多个项目
    JAR冲突问题的解决以及运行状态下如何查看加载的类
    完美解决方案-雪花算法ID到前端之后精度丢失问题
    精讲响应式WebClient第5篇-请求超时设置与异常处理
    精讲响应式WebClient第4篇-文件上传与下载
    精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用
    精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
    精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
  • 原文地址:https://www.cnblogs.com/yuefei/p/3635342.html
Copyright © 2020-2023  润新知