zoukankan      html  css  js  c++  java
  • 获取vmware虚拟机模板

    在我们通过克隆虚机,需要用到虚机模板。在数据中心的目录下面有文件夹、模板和虚拟机,那么这里需要做的是根据类型做递归查询。

     1 private void GetTemplate()
     2 {
     3     System.Text.StringBuilder sb = new System.Text.StringBuilder();
     4 
     5     ManagedObjectReference dcMor = util._svcUtil.getEntityByName("Datacenter", "dc");
     6     sb.AppendLine(string.Format("dc is {0}<br />", dcMor.Value));
     7 
     8     ManagedObjectReference folderMor = util.getServiceUtil().GetMoRefProp(dcMor, "vmFolder");
     9     ManagedObjectReference tpMor = GetTemplate(folderMor, "WINDOWS2008R2-CN-64");
    10     sb.AppendLine(string.Format("template is {0}<br />", tpMor.Value));
    11 
    12     Response.Write(sb.ToString());
    13 }

    在数据中心下面有vmFolder属性,而vmFolder有childEntity和childType成员,由此可以判断哪些是模板,当childEntity为folder我们再做递归。

     1 private ManagedObjectReference GetTemplate(ManagedObjectReference mor, string templateName)
     2 {
     3     ManagedObjectReference[] entityMors = (ManagedObjectReference[])util.getServiceUtil().GetDynamicProperty(mor, "childEntity");
     4     foreach (var item in entityMors)
     5     {
     6         if (item.type.Equals("VirtualMachine"))
     7         {
     8             ObjectContent[] vmOC = util.getServiceUtil().GetObjectProperties(null, item, new string[] { "config.name", "config.template" });
     9             DynamicProperty[] vmDPs = vmOC[0].propSet;
    10             if (vmDPs != null && ((string)vmDPs[0].val).Equals(templateName) && ((bool)vmDPs[1].val).Equals(true))
    11             {
    12                 return item;
    13             }
    14         }
    15         else if (item.type.Equals("Folder"))
    16         {
    17             ManagedObjectReference tpMor = GetTemplate(item, templateName);
    18             if (tpMor != null) return tpMor;
    19         }
    20     }
    21     return null;
    22 }

    下面为运行结果。

    1

    2

  • 相关阅读:
    HttpClient使用详解
    JBPM的.jpdl.xml文件中文出现乱码
    maven实现项目热部署
    基于Solr和Zookeeper的分布式搜索方案的配置
    MySQL5.7 多线程复制,配置和测试结果(转)
    重庆--上海手动切换容灾方案执行步骤
    elasticsearch Unassigned 分片解决办法
    基于docker使用elasticsearch-dump,es数据导入导出
    iperf3 测试linux服务器之间带宽
    elasticsearch重庆上海移动切换方案
  • 原文地址:https://www.cnblogs.com/yuefei/p/3641033.html
Copyright © 2011-2022 走看看