package org.zstack.header.vm; import org.zstack.header.allocator.HostAllocatorConstant; import org.zstack.header.message.APIEvent; import org.zstack.header.rest.RestResponse; import org.zstack.header.volume.VolumeInventory; import org.zstack.header.volume.VolumeState; import org.zstack.header.volume.VolumeStatus; import org.zstack.header.volume.VolumeType; import org.zstack.utils.data.SizeUnit; import java.sql.Timestamp; import static org.codehaus.groovy.runtime.InvokerHelper.asList; /** * @apiResult api event for message :ref:`APIAttachNicToVmMsg` * @example { * "org.zstack.header.vm.APIAttachNicToVmEvent": { * "inventory": { * "uuid": "94d991c631674b16be65bfdf28b9e84a", * "name": "TestVm", * "description": "Test", * "zoneUuid": "acadddc85a604db4b1b7358605cd6015", * "clusterUuid": "f6cd5db05a0d49d8b12721e0bf721b4c", * "imageUuid": "061141410a0449b6919b50e90d68b7cd", * "hostUuid": "908131845d284d7f821a74362fff3d19", * "lastHostUuid": "908131845d284d7f821a74362fff3d19", * "instanceOfferingUuid": "91cb47f1416748afa7e0d34f4d0731ef", * "rootVolumeUuid": "19aa7ec504a247d89b511b322ffa483c", * "type": "UserVm", * "hypervisorType": "KVM", * "createDate": "Apr 30, 2014 6:11:47 PM", * "lastOpDate": "Apr 30, 2014 6:11:47 PM", * "state": "Running", * "internalId": 1, * "vmNics": [ * { * "uuid": "6b58e6b2ba174ef4bce8a549de9560e8", * "vmInstanceUuid": "94d991c631674b16be65bfdf28b9e84a", * "usedIpUuid": "4ecc80a2d1d93d48b32680827542ddbb", * "l3NetworkUuid": "55f85b8fa9a647f1be251787c66550ee", * "ip": "10.12.140.148", * "mac": "fa:f0:08:8c:20:00", * "netmask": "255.0.0.0", * "gateway": "10.10.2.1", * "internalName": "vnic1.0", * "deviceId": 0, * "createDate": "Apr 30, 2014 6:11:47 PM", * "lastOpDate": "Apr 30, 2014 6:11:47 PM" * }, * { * "uuid": "889cfcab8c08409296c649611a4df50c", * "vmInstanceUuid": "94d991c631674b16be65bfdf28b9e84a", * "usedIpUuid": "8877537e11783ee0bfe8af0fcf7a6388", * "l3NetworkUuid": "c6134efd3af94db7b2928ddc5deba540", * "ip": "10.4.224.72", * "mac": "fa:e3:87:b1:71:01", * "netmask": "255.0.0.0", * "gateway": "10.0.0.1", * "internalName": "vnic1.1", * "deviceId": 1, * "createDate": "Apr 30, 2014 6:11:47 PM", * "lastOpDate": "Apr 30, 2014 6:11:47 PM" * }, * { * "uuid": "cba0da7a12d44b2e878dd5803d078337", * "vmInstanceUuid": "94d991c631674b16be65bfdf28b9e84a", * "usedIpUuid": "f90d01a098303956823ced02438ae3ab", * "l3NetworkUuid": "c7e9e14f2af742c29c3e25d58f16a45f", * "ip": "10.29.42.155", * "mac": "fa:2d:31:08:da:02", * "netmask": "255.0.0.0", * "gateway": "10.20.3.1", * "internalName": "vnic1.2", * "deviceId": 2, * "createDate": "Apr 30, 2014 6:11:47 PM", * "lastOpDate": "Apr 30, 2014 6:11:47 PM" * }, * { * "uuid": "f31e38309e2047beac588e111fa2051f", * "vmInstanceUuid": "94d991c631674b16be65bfdf28b9e84a", * "usedIpUuid": "4ce077085c7e355d988450f11ce767b7", * "l3NetworkUuid": "e438b93332ba40dcbb5d553c749a43ca", * "ip": "10.20.206.157", * "mac": "fa:a3:04:b2:6c:00", * "netmask": "255.0.0.0", * "gateway": "10.20.4.1", * "internalName": "vnic1.0", * "deviceId": 0, * "createDate": "Apr 30, 2014 6:11:48 PM", * "lastOpDate": "Apr 30, 2014 6:11:48 PM" * } * ], * "allVolumes": [ * { * "uuid": "19aa7ec504a247d89b511b322ffa483c", * "name": "ROOT-for-TestVm", * "description": "Root volume for VM[uuid:94d991c631674b16be65bfdf28b9e84a]", * "primaryStorageUuid": "24931b95b45e41fb8e41a640302d4c00", * "vmInstanceUuid": "94d991c631674b16be65bfdf28b9e84a", * "rootImageUuid": "061141410a0449b6919b50e90d68b7cd", * "installPath": "/opt/zstack/nfsprimarystorage/prim-24931b95b45e41fb8e41a640302d4c00/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-19aa7ec504a247d89b511b322ffa483c/19aa7ec504a247d89b511b322ffa483c.qcow2", * "type": "Root", * "hypervisorType": "KVM", * "size": 32212254720, * "deviceId": 0, * "state": "Enabled", * "status": "Ready", * "createDate": "Apr 30, 2014 6:11:47 PM", * "lastOpDate": "Apr 30, 2014 6:11:47 PM", * "backupStorageRefs": [] * } * ] * }, * "success": true * } * } * @since 0.1.0 */ @RestResponse(allTo = "inventory") public class APIAttachL3NetworkToVmEvent extends APIEvent { /** * @desc see :ref:`VmInstanceInventory` */ private VmInstanceInventory inventory; public APIAttachL3NetworkToVmEvent() { } public APIAttachL3NetworkToVmEvent(String apiId) { super(apiId); } public VmInstanceInventory getInventory() { return inventory; } public void setInventory(VmInstanceInventory inventory) { this.inventory = inventory; } public static APIAttachL3NetworkToVmEvent __example__() { APIAttachL3NetworkToVmEvent event = new APIAttachL3NetworkToVmEvent(); String defaultL3Uuid = uuid(); String rootVolumeUuid = uuid(); VmInstanceInventory vm = new VmInstanceInventory(); vm.setName("Test-VM"); vm.setUuid(uuid()); vm.setAllocatorStrategy(HostAllocatorConstant.LAST_HOST_PREFERRED_ALLOCATOR_STRATEGY_TYPE); vm.setClusterUuid(uuid()); vm.setCpuNum(1); vm.setCreateDate(new Timestamp(System.currentTimeMillis())); vm.setDefaultL3NetworkUuid(defaultL3Uuid); vm.setDescription("web server VM"); vm.setHostUuid(uuid()); vm.setHypervisorType("KVM"); vm.setImageUuid(uuid()); vm.setInstanceOfferingUuid(uuid()); vm.setLastHostUuid(uuid()); vm.setMemorySize(SizeUnit.GIGABYTE.toByte(8)); vm.setPlatform("Linux"); vm.setRootVolumeUuid(rootVolumeUuid); vm.setState(VmInstanceState.Running.toString()); vm.setType(VmInstanceConstant.USER_VM_TYPE); vm.setLastOpDate(new Timestamp(System.currentTimeMillis())); vm.setZoneUuid(uuid()); VolumeInventory vol = new VolumeInventory(); vol.setName(String.format("Root-Volume-For-VM-%s", vm.getUuid())); vol.setCreateDate(new Timestamp(System.currentTimeMillis())); vol.setLastOpDate(new Timestamp(System.currentTimeMillis())); vol.setType(VolumeType.Root.toString()); vol.setUuid(rootVolumeUuid); vol.setSize(SizeUnit.GIGABYTE.toByte(100)); vol.setActualSize(SizeUnit.GIGABYTE.toByte(20)); vol.setDeviceId(0); vol.setState(VolumeState.Enabled.toString()); vol.setFormat("qcow2"); vol.setDiskOfferingUuid(uuid()); vol.setInstallPath(String.format("/zstack_ps/rootVolumes/acct-36c27e8ff05c4780bf6d2fa65700f22e/vol-%s/%s.qcow2", rootVolumeUuid, rootVolumeUuid)); vol.setStatus(VolumeStatus.Ready.toString()); vol.setPrimaryStorageUuid(uuid()); vol.setVmInstanceUuid(vm.getUuid()); vol.setRootImageUuid(vm.getImageUuid()); vm.setAllVolumes(asList(vol)); VmNicInventory nic = new VmNicInventory(); nic.setVmInstanceUuid(vm.getUuid()); nic.setCreateDate(vm.getCreateDate()); nic.setLastOpDate(vm.getLastOpDate()); nic.setDeviceId(0); nic.setGateway("192.168.1.1"); nic.setIp("192.168.1.10"); nic.setL3NetworkUuid(defaultL3Uuid); nic.setNetmask("255.255.255.0"); nic.setMac("00:0c:29:bd:99:fc"); nic.setUsedIpUuid(uuid()); nic.setUuid(uuid()); vm.setVmNics(asList(nic)); event.setInventory(vm); return event; } }