2012-01-10 214 views
-1

使用vmware web服務SDK和Axis 1.4,ESXi 4.1作爲服務器我能夠設置java環境。 我已經安裝了ESXi 4.1的工作站 上我編這是在PDF用於通過web服務管理ESXi的java程序SDK

給我下載的PDF從網站http://www.vmware.com/support/developer/vc-sdk/visdk400pubs/sdk40programmingguide.pdf 我成功編譯並通過在命令提示符下運行示例程序SimpleClient.java示例程序,

我想創建一些任務,並向我的教授展示這些任務可以像雲服務一樣行事。

這些任務也在gettingstartedguide.pdf中給出,pdf表示任務可以完成。

的PDF是繳費與上寫着「VMware的gettingstartedguide.pdf Web服務SDK」

google搜索這些都是必須要在ESXi 4.1 1,創建虛擬機執行的任務。 2.啓動虛擬機。 3.關閉虛擬機。 4.暫停虛擬機 5。恢復虛擬機

曾經,如果我能夠做到上述任務,那麼我可以使這些任務爲網絡環境。

我對vmware瞭解不多。 我想執行我們需要連接服務器上面的任務(這節目也是可用的編緝在gettingstartedGuide.pdf)

我無法繼續辦理與任務掛鉤(如上面的5個任務可以一旦我們能夠連接服務器執行)。

我不理解沒有用esxi創建會話我們如何創建虛擬機。

我對流程如何管理上述任務也有點混淆。

請幫幫我。

任何建議對我來說是富有成效的一步。

感謝你

回答

1

我會建議你使用,用於執行上述任務VMWare的VI的Java API。它相對簡單易用。我還建議您瀏覽博客doublecloud.org以獲取更多信息。

+0

海....我只是在想一些doubts..could你幫我... – user533 2012-02-21 13:22:14

+0

當你看到這message..please迴應.. – user533 2012-02-21 13:22:42

+0

是請上 – sttaq 2012-02-21 13:57:04

1
/*================================================================================ 
Copyright (c) 2008 VMware, Inc. All Rights Reserved. 

Redistribution and use in source and binary forms, with or without modification, 
are permitted provided that the following conditions are met: 

* Redistributions of source code must retain the above copyright notice, 
this list of conditions and the following disclaimer. 

* Redistributions in binary form must reproduce the above copyright notice, 
this list of conditions and the following disclaimer in the documentation 
and/or other materials provided with the distribution. 

* Neither the name of VMware, Inc. nor the names of its contributors may be used 
to endorse or promote products derived from this software without specific prior 
written permission. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE. 
================================================================================*/ 

package com.vmware.vim25.mo.samples.vm; 

import java.net.URL; 

import com.vmware.vim25.mo.Folder; 
import com.vmware.vim25.mo.InventoryNavigator; 
import com.vmware.vim25.mo.ServiceInstance; 
import com.vmware.vim25.mo.Task; 
import com.vmware.vim25.mo.VirtualMachine; 

/** 
* http://vijava.sf.net 
* @author Steve Jin 
*/ 

public class VMpowerOps 
{ 
    public static void main(String[] args) throws Exception 
    { 
    if(args.length!=5) 
    { 
     System.out.println("Usage: java VMpowerOps <url> " + 
      "<username> <password> <vmname> <op>"); 
     System.out.println("op - reboot|poweron|poweroff" + 
      "|reset|standby|suspend|shutdown"); 
     System.exit(0); 
    } 

    String vmname = args[3]; 
    String op = args[4]; 

    ServiceInstance si = new ServiceInstance(
     new URL(args[0]), args[1], args[2], true); 

    Folder rootFolder = si.getRootFolder(); 
    VirtualMachine vm = (VirtualMachine) new InventoryNavigator(
     rootFolder).searchManagedEntity("VirtualMachine", vmname); 

    if(vm==null) 
    { 
     System.out.println("No VM " + vmname + " found"); 
     si.getServerConnection().logout(); 
     return; 
    } 

    if("reboot".equalsIgnoreCase(op)) 
    { 
     vm.rebootGuest(); 
     System.out.println(vmname + " guest OS rebooted"); 
    } 
    else if("poweron".equalsIgnoreCase(op)) 
    { 
     Task task = vm.powerOnVM_Task(null); 
     if(task.waitForMe()==Task.SUCCESS) 
     { 
     System.out.println(vmname + " powered on"); 
     } 
    } 
    else if("poweroff".equalsIgnoreCase(op)) 
    { 
     Task task = vm.powerOffVM_Task(); 
     if(task.waitForMe()==Task.SUCCESS) 
     { 
     System.out.println(vmname + " powered off"); 
     } 
    } 
    else if("reset".equalsIgnoreCase(op)) 
    { 
     Task task = vm.resetVM_Task(); 
     if(task.waitForMe()==Task.SUCCESS) 
     { 
     System.out.println(vmname + " reset"); 
     } 
    } 
    else if("standby".equalsIgnoreCase(op)) 
    { 
     vm.standbyGuest(); 
     System.out.println(vmname + " guest OS stoodby"); 
    } 
    else if("suspend".equalsIgnoreCase(op)) 
    { 
     Task task = vm.suspendVM_Task(); 
     if(task.waitForMe()==Task.SUCCESS) 
     { 
     System.out.println(vmname + " suspended"); 
     } 
    } 
    else if("shutdown".equalsIgnoreCase(op)) 
    { 
     Task task = vm.suspendVM_Task(); 
     if(task.waitForMe()==Task.SUCCESS) 
     { 
     System.out.println(vmname + " suspended"); 
     } 
    } 
    else 
    { 
     System.out.println("Invalid operation. Exiting..."); 
    } 
    si.getServerConnection().logout(); 
    } 
} 
+0

這個例子來自http://vijava.sourceforge.net/ – Matthias 2015-11-05 14:51:58