2015-05-29 3 views
0

Я мало что знаю о vmware. Я нашел этот код для начала vm. но мне нужна информация о URL-адресе + имя пользователя + пароль. Как я могу получить эти данные?Запуск Vm, созданный на рабочей станции vmware из java-приложения

 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.ServiceIns 

tance; 
    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(); 
     } 
    } 

ответ

1

Код, который вы ссылаетесь для VMware ESX Vsphere (или VCENTER - корпоративных услуг) - не настольном на базе VMware Workstation.

Дополнительную информацию см. В URL-адресе, указанном в верхней части вашего примера: http://vijava.sourceforge.net/. Смотри также: https://developercenter.vmware.com/-/connect-to-vsphere-from-a-java-program-getting-started-.

Для рабочей станции VMware, похоже, вы должны использовать vmrun. Документация доступна для этого по адресу https://www.vmware.com/support/developer/vix-api/vix112_vmrun_command.pdf. Я также нашел еще одну запись в http://www.virtualizationadmin.com/articles-tutorials/vmware-esx-and-vsphere-articles/managing-workstation-and-vsphere-vmrun-command.html.