• 获取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

  • 相关阅读:
    oracle11g2下载安装笔记
    eclipse的下载安装配置
    实现图片的缩放 添加鼠标滑轮事件
    MySQL5.7.21非图形化下载、安装、连接问题记录
    python学习登录接口
    python学习计算器
    python学习简单购物商城的实现
    python学习三级菜单
    ios学习之UISwipeGestureRecognizer手势识别
    ”isEqual“ ”isEqalToString“ 和“==”三者区别
  • 原文地址:https://www.cnblogs.com/yuefei/p/3641033.html
Copyright © 2020-2023  润新知