2

我熟悉使用 PowerCLI 中提供的 VMware.Vim.dll 在 C# 中使用 VMware VIM API。现在我希望能够使用 Java 使用这个 API 进行编程,但是我找不到它的等价物。vSphere SDK 中的 com.vmware.vim.jar 似乎没有 API 参考中提到的所有类:

http://www.vmware.com/support/developer/vc-sdk/

具体来说,在 Java 中,我不知道如何获取 VirtualMachine 实例。在 C# 中,我可以通过执行以下操作在独立的管理程序上获取所有虚拟机:

        String serviceUrl = "https://192.168.1.100/sdk/vimService";
        String username = "root";
        String password = "MyPassword";

        VimClient client = new VimClient();
        client.Connect(serviceUrl);
        client.Login(username, password);

        var virtualMachines = client.FindEntityViews(typeof(VirtualMachine), client.ServiceContent.RootFolder, null, null).OfType<VirtualMachine>();

我怎样才能使用Java得到这个?

4

2 回答 2

2

我发现 VMware Infrastructure (vSphere) Java API 可以做到这一点:

http://sourceforge.net/projects/vijava/files/vijava/

于 2013-11-17T21:07:41.400 回答
2

使用 VMware Infrastructure (vSphere) Java API 即 vijava 下面的代码可以找到库存中的所有 VM。

    String serviceUrl = "https://Your IP Address/sdk";
    String username = "root";
    String password = "MyPassword";      
    ServiceInstance si = new ServiceInstance(new URL(serviceUrl), username , password     ,     true);
    Folder rootFolder = si.getRootFolder();
    ManagedEntity[] entities = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");

    for (ManagedEntity e : entities) {

        vm = (VirtualMachine) e;
        System.out.println("vm=" + vm.getName());
    }

或者

http://sourceforge.net/p/vijava/discussion/826592/thread/a6c44685#5b30 ---集群环境

于 2014-04-24T08:36:23.933 回答