vSphere SDK for Java 示例

使用库:yavijava

yavijava依赖库:

dependencies {
    compile 'org.apache.directory.studio:org.dom4j.dom4j:1.6.1'
    compile 'log4j:log4j:1.2.17'
    compile 'org.apache.httpcomponents:httpclient:4.3.5'
    testCompile 'org.mockito:mockito-all:1.9.5'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

示例代码:

package com.vmware.event.connect;

import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import java.util.Calendar;

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



public class Connect {

    public static ServiceInstance serviceInstance;

    public ServiceInstance initialization() throws RemoteException, MalformedURLException {

        ServiceInstance si = new ServiceInstance(new URL(
                "https://172.16.65.241/sdk"), "administrator@vsphere.local", "VMware1!", true);
        return si;
    }


    public void searchVmByName(String name){

    }

    public void searchHostByName(String name){

    }

    public void searchVnicByName(String name){

    }

    public void getInfoByEvent(Event event){
        Integer eventKey = event.getKey();
        Class<? extends Event> eventType = event.getClass();
        String hostName = event.getHost().getName();
        String virtualMachineName = event.getVm().getName();
    }



    public static void main(String[] args) throws RemoteException {
        Connect connect = new Connect();
        try {
            serviceInstance = connect.initialization();
        } catch (RemoteException | MalformedURLException e) {
            e.printStackTrace();
        }

        
        Folder rootFolder = serviceInstance.getRootFolder();

// get dataCenter
     String dcName = "DC";
        Datacenter datacenter = (Datacenter) new InventoryNavigator(rootFolder).searchManagedEntity("Datacenter", dcName);
        System.out.println("Data center Name::" + datacenter.getName());
        ManagedEntity[] dcenters = new InventoryNavigator(rootFolder).searchManagedEntities("Datacenter");
        System.out.println("Number of Datacenters in vCenter::" + dcenters.length);

        // get host
        String hostName = "esxi.dev-pso.com";
        HostSystem host = (HostSystem) new InventoryNavigator(rootFolder).searchManagedEntity("HostSystem", hostName);
        System.out.println("Host Name::" + host.getName());
        ManagedEntity[] hosts = new InventoryNavigator(rootFolder).searchManagedEntities("HostSystem");
        System.out.println("Number of hosts in vCenter ::" + hosts.length);

        // get cluster
        String clusterName = "Cluster";
        ClusterComputeResource cluster = (ClusterComputeResource) new InventoryNavigator(rootFolder)
                .searchManagedEntity("ClusterComputeResource", clusterName);
        System.out.println("Cluster Name::" + cluster);
        ManagedEntity[] clusters = new InventoryNavigator(rootFolder).searchManagedEntities("ClusterComputeResource");
        System.out.println("Number of clusters in vCenter ::" + clusters.length);


        // get dataStore
        String dataStore = "VMFS01";
        Datastore datastore = (Datastore) new InventoryNavigator(rootFolder).searchManagedEntity("Datastore", dataStore);
        System.out.println("Datastore Name::" + datastore);
        ManagedEntity[] datastores = new InventoryNavigator(rootFolder).searchManagedEntities("Datastore");
        System.out.println("Number of datastores in vCenter ::"+ datastores.length);


    }

}
原文地址:https://www.cnblogs.com/vincenshen/p/10606859.html