Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)
来源:互联网 发布:在linux中安装oracle 编辑:程序博客网 时间:2024/06/06 04:01
源代码:
package com.vmware.virtualmachine;import com.vmware.util.Session;import com.vmware.vim25.*;import com.vmware.vim25.mo.*;/** * Created by vixuan-008 on 2015/5/27. */public class VmCreate { public static void main(String[] args) { ServiceInstance serviceInstance=null; try { String vmname = "vm";//虚拟机名称 long diskSizeKB = 10*1024; //虚拟磁盘大小 // mode: persistent|independent_persistent, // independent_nonpersistent String diskMode = "persistent"; //虚拟磁盘类型 String datastoreName = "local05"; //存储器名称 serviceInstance = Session.getInstance("172.16.1.20", "root", "vmware"); Folder rootFolder = serviceInstance.getRootFolder(); VirtualMachine vm = (VirtualMachine) new InventoryNavigator( rootFolder).searchManagedEntity("VirtualMachine", vmname); if (vm == null) { System.out.println("No VM " + vmname + " found"); serviceInstance.getServerConnection().logout(); return; } // create vm config spec VirtualMachineConfigSpec vmSpec = new VirtualMachineConfigSpec(); // create virtual devices int cKey = 1000; VirtualDeviceConfigSpec diskSpec = createDiskSpec( datastoreName, cKey, diskSizeKB, diskMode); vmSpec.setDeviceChange(new VirtualDeviceConfigSpec[] {diskSpec}); // call the createVM_Task method on the vm folder getVirtualMachieDevice(vm); Task task = vm.reconfigVM_Task(vmSpec); String result = task.waitForMe(); if (result == Task.SUCCESS) { System.out.println("VM Created Sucessfully"); } else { System.out.println("VM could not be created. "); } } catch (Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); serviceInstance.getServerConnection().logout(); return; } } static VirtualDeviceConfigSpec createDiskSpec(String dsName, int cKey, long diskSizeKB, String diskMode) { VirtualDeviceConfigSpec diskSpec = new VirtualDeviceConfigSpec(); diskSpec.setOperation(VirtualDeviceConfigSpecOperation.add); diskSpec.setFileOperation( VirtualDeviceConfigSpecFileOperation.create); VirtualDisk vd = new VirtualDisk(); vd.setCapacityInKB(diskSizeKB); diskSpec.setDevice(vd); vd.setKey(-1); vd.setUnitNumber(-1); vd.setControllerKey(cKey); VirtualDiskFlatVer2BackingInfo diskfileBacking = new VirtualDiskFlatVer2BackingInfo(); String fileName = "["+ dsName +"]"+"111333333111222.vmk"; diskfileBacking.setFileName(fileName); diskfileBacking.setDiskMode(diskMode); diskfileBacking.setThinProvisioned(true); vd.setBacking(diskfileBacking); return diskSpec; } public static void getVirtualMachieDevice(VirtualMachine vm){ VirtualMachineConfigInfo vmConfig = (VirtualMachineConfigInfo)vm.getConfig(); VirtualDevice[] vds = vmConfig.getHardware().getDevice(); for(int k=0;k<vds.length;k++) { // if(vds[k] instanceof VirtualSCSIController ){ System.out.println("----------start------------"); System.out.println("name:"+vds[k].getDeviceInfo().getLabel()); System.out.println("key:"+vds[k].getKey()); System.out.println("----------end------------"); // } } }}
0 0
- Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)
- Vijava 学习笔记(指定虚拟机添加虚拟磁盘修订功能版本)
- Vijava 学习笔记之(Template 克隆虚拟机并修改Template 指定虚拟磁盘大小)
- Vijava 学习笔记之(VirtualMachine 移除指定虚拟磁盘)
- Vijava 学习笔记之(VirtualMachine 更改虚拟机系统磁盘大小)
- Vijava 学习笔记之(虚拟机可扩容CPU核数、内存大小和关联DataStore)
- Vijava 学习笔记之(Template 克隆虚拟机并指定自定义规范)
- Vijava 学习笔记之(HostSystem 关联VirtualMachine)
- Vijava 学习笔记之(ResourcePool 关联VirtualMachine)
- Vijava 学习笔记之(获取用户指定自定义规范)
- Vijava 学习笔记之(模板生成虚拟机)
- Vijava 学习笔记之 虚拟机连接
- Vijava 学习笔记之(Datacenter 关联集群、资源池和ESXI)
- Vijava 学习笔记之(Cluster 关联资源信息:CPU、内存、Datastore容量信息)
- Vijava 学习笔记之(VirtualMachineRelocateSpec类)
- Vijava 学习笔记 删除虚拟机(delete Virtual Machine)
- Vijava (更改虚拟机配置信息(内存、CPU和添加新磁盘)终极版本)
- Vijava 学习笔记之模板
- android-Service
- 用wpscan扫描website-contact-form-with-file-upload的问题
- 浅谈VC++工程的文件组织
- gets() scanf()
- 数据结构系列之快速排序详解
- Vijava学习笔记之(为指定的SCSI控制器,添加关联磁盘。主要针对虚拟机)
- 【MAC技术组】Mac忘记登录密码的4种解决方法
- 在windows系统制作mac os的U盘启动盘
- kettle5 eclipse中查看编译原码
- LeetCode中Valid Parentheses的JAVA实现
- Socket非阻塞连接过程
- 虚拟化之VMM了解
- 科技收藏
- 简单实现Shiro单点登录(自定义Token令牌)