System.out.println("Usage: java EsxAccountManager <url> "
+ "<username> <password>");
return;
}
ServiceInstance si = new ServiceInstance(
new URL(args[0]), args[1], args[2], true);
HostLocalAccountManager hlam = si.getAccountManager();
if(hlam==null)
{
System.out.println("This sample works ONLY with ESX. "
+ "Please try it again.");
}
//create a new POSIX account
HostPosixAccountSpec has = new HostPosixAccountSpec();
has.setId("vimaster");
has.setDescription("The POSIX account for VI Master");
has.setPassword("password");
has.setShellAccess(true);
hlam.createUser(has);
//create a new group called masters
HostAccountSpec grpSpec = new HostAccountSpec();
grpSpec.setId("masters");
// DON'T CALL the following two lines! NOT supported.
// grpSpec.setDescription("The Group for VI Masters");
// grpSpec.setPassword("grppass");
hlam.createGroup(grpSpec);
//assign the new user to the new group
hlam.assignUserToGroup("vimaster", "masters");
//let's check their existence
UserDirectory ud = si.getUserDirectory();
UserSearchResult[] usrs = ud.retrieveUserGroups(
null, // only local machine is searched
"master", // search string
null, null,
false, //not exact match for the search
true, // include users
true // include groups
);
// print out the results
for(int i=0; usrs!=null && i < usrs.length; i++)
{
System.out.println("\n===============================");
System.out.println("Full name: " + usrs[i].getFullName());
System.out.println("IsGroup:" + usrs[i].isGroup());
System.out.println("Principal: " + usrs[i].getPrincipal());
}
//delete the new user and group
//Note: you have to delete the user before delete the group
hlam.removeUser("vimaster");
hlam.removeGroup("masters");
si.getServerConnection().logout();
}