我正在开发一个Web界面,用于管理vsphere Esx 5.5上的虚拟机。我的程序是用.net web表单(不是MVC)开发的。
我关注jeffpaton帖子(使用VMware.Vim)帮助了我(感谢你,杰夫)https://communities.vmware.com/thread/434579。
但现在我冻结了这个话题。克隆虚拟机后,我不知道如何等待任务。我的网站使用vmware.vim向Vsphere Esx发出vsphere命令。我需要知道vpshere什么时候完成他的工作才能发起另一条指令。
我尝试使用PropertyCollector,但我不知道如何使用它:
我发了这篇文章,但没有成功:
这是我的代码的一部分尝试但我被阻止了。我使用jeffpaton函数。
PrincipalContext
我需要一些帮助。如果有人有建议开始...
谢谢大家。
答案 0 :(得分:0)
这可能为时已晚,但现在可以了。
VimClient有一个WaitForTask方法;
client.WaitForTask(cloneTask_MoRef);
或者,您可以获得任务并查看其进度;
var task = (Task) client.GetView(cloneTask_MoRef, null);
while (task.Info.State != TaskInfoState.success)
{
Thread.Sleep(5000);
task.UpdateViewData();
if (task.Info.State == TaskInfoState.error)
throw new Exception($"The clone failed: {task.Info.Error.LocalizedMessage}");
Console.WriteLine(task.Info.Progress);
}