首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以获得VM创建的日期

以获得VM创建的日期
EN

Stack Overflow用户
提问于 2014-07-10 03:04:42
回答 2查看 3.7K关注 0票数 0

我是VMWare Sdk编程的新手,我需要获得虚拟机(VM)的部署日期。

我编写了下面的代码,以获得其他所需的详细信息。

代码语言:javascript
复制
package com.vmware.vim25.mo.samples;

import java.net.URL;

import com.vmware.vim25.*;
import com.vmware.vim25.mo.*; 


public class HelloVM {


     public static void main(String[] args) throws Exception
     {
     long start = System.currentTimeMillis();
     int i;
     ServiceInstance si = new ServiceInstance(new URL("https://bgl-clvs-vc.bgl.com/sdk"), "sbibi", "sibi_123", true);
     long end = System.currentTimeMillis();
     System.out.println("time taken:" + (end-start));
     Folder rootFolder = si.getRootFolder();
     String name = rootFolder.getName();
     System.out.println("root:" + name);
     ManagedEntity[] mes = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");


     System.out.println("No oF vm:" + mes.length);
     if(mes==null || mes.length ==0)
     {
         return;
     }
     for(i=0;i<mes.length; i++){

         VirtualMachine vm = (VirtualMachine) mes[i];

         VirtualMachineConfigInfo vminfo = vm.getConfig();
         VirtualMachineCapability vmc = vm.getCapability();
         vm.getResourcePool();
         System.out.println("VM Name " + vm.getName());
         System.out.println("GuestOS: " + vminfo.getGuestFullName());
         System.out.println("Multiple snapshot supported: " + vmc.isMultipleSnapshotsSupported());
         System.out.println("Summary: " + vminfo.getDatastoreUrl()); 
     }


     si.getServerConnection().logout();

     } 


}

有人能帮我如何得到VM创建的日期吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-16 03:25:47

我使用下面的代码找到了Vm创建日期。

代码语言:javascript
复制
EventFilterSpecByUsername uFilter =
new EventFilterSpecByUsername();
uFilter.setSystemUser(false);
uFilter.setUserList(new String[] {"administrator"});
Event[] events = evtMgr.queryEvents(efs);
// print each of the events
for(int i=0; events!=null && i<events.length; i++)  
{
      System.out.println("\nEvent #" + i); 
      printEvent(events[i]);
}

/**
* Only print an event as Event type.
*/
 static void printEvent(Event evt)
 {
    String typeName = evt.getClass().getName();
    int lastDot = typeName.lastIndexOf('.');
     if(lastDot != -1)
      {
           typeName = typeName.substring(lastDot+1);
       }
           System.out.println("Time:" + evt.getCreatedTime().getTime());
   }

希望这段代码能帮助到其他人。

票数 0
EN

Stack Overflow用户

发布于 2014-12-31 05:36:40

代码语言:javascript
复制
private DateTime GetVMCreatedDate(VirtualMachine vm)
    {
        var date = DateTime. Now;
        var userName = new EventFilterSpecByUsername ();
        userName . SystemUser = false;
        var filter = new EventFilterSpec ();
        filter . UserName = userName;
        filter . EventTypeId = ( new String [] { "VmCreatedEvent" , "VmBeingDeployedEvent" ,"VmRegisteredEvent" , "VmClonedEvent" });
        var collector = vm .GetEntityOnlyEventsCollectorView(filter);
        foreach (Event e in collector . ReadNextEvents(1 ))
        {
            Console .WriteLine(e . GetType(). ToString() + " :" + e. CreatedTime);
            date = e. CreatedTime;
        }

        Console .WriteLine( "---------------------------------------------------" );
        return date;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24666839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档