0

vCenter サーバーでスケジュールされたタスクとして実行され、クラスター内の各ホストの現在の時刻を監視するアプリケーションを作成しようとしています。時間は NTP によって設定されますが、これらのホストで実行されている VM サーバーが最大 1 分で停止することがわかり、何が起こるかを監視する必要があります。

私のホストは ESXi v5.1 を実行しています

ドキュメント ( http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/vim.host.DateTimeSystem.html#queryDateTime ) によると、ホストの現在の DateTime を取得するメソッドがあります - QueryDateTime().

私はこれを機能させるのに苦労しています....私のサンプルコードは以下の通りです。メソッドが存在しないことについて常に文句を言いQueryDateTimeます!

これはSDKを理解していない可能性がありますが、これを理解することはできません.....

VimClient vimClient = new VimClient();
vimClient.Connect(vcenter.ServiceURL);
vimClient.Login(vcenter.Username, vcenter.Password); 

List<EntityViewBase> hosts = vimClient.FindEntityViews(typeof(VMware.Vim.HostSystem), null, null, null);

foreach (HostSystem host in hosts)
{
    Console.WriteLine(host.Config.Network.Vnic[0].Spec.Ip.IpAddress);

    HostConfigManager hostConfigManager = host.ConfigManager;

    HostDateTimeSystem hostDateTimeSystem = hostConfigManager.DateTimeSystem;

    DateTime hostDateTime = hostDateTimeSystem.QueryDateTime();
}
4

1 に答える 1

0

これを試してみてください。

foreach (HostSystem host in vmHosts)
{
HostConfigManager hostConfigManager = host.ConfigManager;
HostDateTimeSystem hostDateTimeSystem = (HostDateTimeSystem) vimClient.GetView(hostConfigManager.DateTimeSystem, null));
DateTime hostDateTime = hostDateTimeSystem.QueryDateTime();
}
于 2014-06-19T04:10:58.177 に答える