VMware-vSphere-SDK-5.0 实现快照还原(二)还原最新快照方法(完)

来源:互联网 发布:动态主题软件下载 编辑:程序博客网 时间:2024/05/22 00:42
/// <summary>        /// 快照还原        /// </summary>        /// <param name="hostIp">Esxi服务器IP地址</param>        /// <param name="vmname">虚拟机名字</param>        /// <param name="username">Esxi服务器用户名</param>        /// <param name="password">Esxi服务器密码</param>        /// <returns></returns>        public static bool RevertVm(string hostIp, string vmname,string username,string password)        {            Boolean res = false;            VMSnapshot obj = new VMSnapshot();            cb = AppUtil.AppUtil.initialize("VMSnapshot"                                    , VMSnapshot.constructOptions()                                   , new string[] { "--ignorecert", "ignorecert",  "--url", @"https://"+hostIp+"/sdk", "--vmname",                                        vmname, "--username", username, "--password",password,                                    "--operation", "revert"});            //Boolean valid = obj.customValidation();            cb.connect();            String vmName = cb.get_option("vmname");            ManagedObjectReference vmMor               = cb.getServiceUtil().GetDecendentMoRef(null, "VirtualMachine", vmName);            if (vmMor != null)            {                //获取最新快照信息                GetLastSnapname(getSnapshotInfo(vmMor, vmName).rootSnapshotList, vmMor);                //添加参数                cb.parseInput(new string[] { "--snapshotname", info.snapName });                String op = cb.get_option("operation");                               if (op.Equals("revert"))                {                    res = obj.revertSnapshot(vmMor); //还原快照                }                else                {                    cb.log.LogLine("Invalid operation" + op.ToString() + ". Valid Operations are [create|list|revert|remoeveall|remove]");                    cb.disConnect();                }                if (res)                {                    cb.log.LogLine("Operation " + op + " completed sucessfully");                }            }            else            {                cb.log.LogLine("No VM " + vmName + " found");            }            try            {                cb.disConnect();                cb.log.Close();            }            catch            {                //do something            }            return res;        }

1 0
原创粉丝点击