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

  • 相关阅读:
    第四周查漏补缺20165307
    第四周作业 20165307
    第三周作业 20165307
    20165307 第一次测试总结
    20165307 预备作业3 Linux安装及学习
    20165307 学习基础和C语言基础调查
    20165307 我期望的师生关系
    第十周课下补做
    20165336 2016-2017-2 《Java程序设计》第9周学习总结
    20165336 实验三 敏捷开发与XP实践
  • 原文地址:https://www.cnblogs.com/yuefei/p/3641033.html
Copyright © 2011-2022 走看看