网站首页 > 网络编程教程 > Java教程 > 过VMWare的Webservice API创建ESX\ESXi用户的JAVA源码

过VMWare的Webservice API创建ESX\ESXi用户的JAVA源码

  • 作者:互联网
  • 时间:2009-12-30 18:33:25

参考VMWare的Webservice API的文档,实现创建ESX|ESXi用户并给用户赋予用户组。

版本: ESX|ESXi 4.0

JAVA代码如下:

view plaincopy to clipboardprint?
import ja***net.URL;  
 
import co***mware.vim25.HostAccountSpec;  
import co***mware.vim25.ManagedObjectReference;  
import co***mware.vim25.Permission;  
import co***mware.vim25.ServiceContent;  
import co***mware.vim25.VimPortType;  
import co***mware.vim25.VimServiceLocator;  
import com.vmware.security.credstore.*;  
 
/** 
*

  
* 创建ESX or ESXi用户(非vCenter) 
*

 
* @author forandever 
* @date 2009-12-31 
*/ 
public class CreateUser {  
 
    /** 
     * 创建用户 
     * @param hostName 主机IP地址。例如: 20***01.1.121 ;
     * @param userName 连接用户名。例如: root 
     * @param password 连接密码。例如:123456 
     * @throws Exception 
     */ 
   private void createUser(String hostName, String userName, String password) throws Exception {  
       ServerConn conn = new ServerConn();  
       co***prepare(hostName, userName, password);  
         
      ManagedObjectReference hostLocalAccountManager =   
          co***get_sic().getAccountManager();  
           
           
      ManagedObjectReference hostAuthorizationManager =  
          co***get_sic().getAuthorizationManager();        
        
      String new_userName = generateUserName();  
      String new_password = generatePassword();  
        
      HostAccountSpec hostAccountSpec = new HostAccountSpec();  
      ho***ccountSpec.setId(new_userName);  
      ho***ccountSpec.setPassword(new_password);  
      ho***ccountSpec.setDescription("这是通过API新创建的用户");    
                    
      co***get_service().createUser(hostLocalAccountManager,  
                                                 hostAccountSpec);  
 
      Sy***m.out.println(new_userName + "  " + new_password);  
        
      ManagedObjectReference rootFolder =   
          co***get_sic().getRootFolder();  
 
      // 设置权限组  
      Permission per = new Permission();  
      pe***etGroup(false);  
      pe***etPrincipal(new_userName);  
      pe***etRoleId(-1);  
      pe***etPropagate(true);  
      pe***etEntity(rootFolder);  
      co***get_service().setEntityPermissions(hostAuthorizationManager,  
                                                           rootFolder,  
                                                           new Permission [] {per});  
 
//      CredentialStore csObj = Cr***ntialStoreFactory.getCredentialStore();  
//      cs***.addPassword(getServerName(),userName,pa***ord.toCharArray());  
      Sy***m.out.println("新用户创建成功");  
   }  
 
   public static void main(String [] args) throws Exception {  
       CreateUser createUser = new CreateUser();  
       cr***eUser.createUser("202.101.1.121", "root", "123456");  
   }  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/forandever/archive/2009/12/30/5105408.aspx