[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XENAPI] Add an example to start HVM guests via the Xen API.
# HG changeset patch # User Alastair Tse <atse@xxxxxxxxxxxxx> # Date 1169826141 0 # Node ID b8b75fdbd21f83b871bec32a7bb4a10e478394d0 # Parent bb2b1b6662fa5076663bcb9791fe00934492279e [XENAPI] Add an example to start HVM guests via the Xen API. Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx> --- tools/python/scripts/test_hvm_create.py | 173 ++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+) diff -r bb2b1b6662fa -r b8b75fdbd21f tools/python/scripts/test_hvm_create.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/python/scripts/test_hvm_create.py Fri Jan 26 15:42:21 2007 +0000 @@ -0,0 +1,173 @@ +#!/usr/bin/python + +vm_cfg = { + 'name_label': 'API_HVM', + 'user_version': 1, + 'is_a_template': False, + 'auto_power_on': False, # TODO + + 'memory_static_min': 64, + 'memory_static_max': 128, + #'memory_dynamic_min': 64, + #'memory_dynamic_max': 128, + + + 'VCPUs_policy': 'credit', + 'VCPUs_params': '', + 'VCPUs_number': 2, + 'VCPUs_features_required': '', + 'VCPUs_features_can_use': '', + 'VCPUs_features_force_on': '', + 'VCPUs_features_force_off': '', + + 'actions_after_shutdown': 'destroy', + 'actions_after_reboot': 'restart', + 'actions_after_suspend': 'destroy', + 'actions_after_crash': 'destroy', + + 'PV_bootloader': '', + 'PV_bootloader_args': '', + + 'PV_kernel': '', + 'PV_ramdisk': '', + 'PV_args': '', + + 'HVM_boot': 'cda', + 'platform_std_VGA': False, + 'platform_serial': '', + 'platform_localtime': False, + 'platform_clock_offset': False, + 'platform_enable_audio': False, + 'PCI_bus': '' +} + +local_vdi_cfg = { + 'name_label': 'gentoo.hvm', + 'name_description': '', + 'uri': 'file:/root/gentoo.amd64.hvm.img', + 'virtual_size': 0, + 'sector_size': 0, + 'type': 'system', + 'parent': '', + 'SR_name': 'Local', + 'sharable': False, + 'read_only': False, +} + +local_vbd_cfg = { + 'VDI': '', + 'VM': '', + 'device': 'hda', + 'mode': 'RW', + 'type': 'disk', + 'driver': 'ioemu', +} + +vif_cfg = { + 'name': 'API_VIF', + 'type': 'ioemu', + 'device': '', + 'network': '', + 'MAC': '', + 'MTU': 1500, +} + +import sys +import time +sys.path.append('/usr/lib/python') + +from xapi import connect, execute + +def test_vm_create(): + server, session = connect() + vm_uuid = None + local_vdi_uuid = None + local_vbd_uuid = None + vif_uuid = None + + # List all VMs + vm_list = execute(server, 'VM.get_all', (session,)) + vm_names = [] + for vm_uuid in vm_list: + vm_record = execute(server, 'VM.get_record', (session, vm_uuid)) + vm_names.append(vm_record['name_label']) + + # Get default SR + local_sr_list = execute(server, 'SR.get_by_name_label', + (session, local_vdi_cfg['SR_name'])) + local_sr_uuid = local_sr_list[0] + + # Get default network + net_list = execute(server, 'network.get_all', (session,)) + net_uuid = net_list[0] + + try: + # Create a new VM + print 'Create VM' + vm_uuid = execute(server, 'VM.create', (session, vm_cfg)) + + print 'Create VDI' + # Create a new VDI (Local) + local_vdi_cfg['SR'] = local_sr_uuid + local_vdi_uuid = execute(server, 'VDI.create', + (session, local_vdi_cfg)) + + print 'Create VBD' + # Create a new VBD (Local) + local_vbd_cfg['VM'] = vm_uuid + local_vbd_cfg['VDI'] = local_vdi_uuid + local_vbd_uuid = execute(server, 'VBD.create', + (session, local_vbd_cfg)) + + print 'Craete VIF' + # Create a new VIF + vif_cfg['network'] = net_uuid + vif_cfg['VM'] = vm_uuid + vif_uuid = execute(server, 'VIF.create', (session, vif_cfg)) + + # Start the VM + execute(server, 'VM.start', (session, vm_uuid, False)) + + time.sleep(30) + + test_suspend = False + if test_suspend: + print 'Suspending VM..' + execute(server, 'VM.suspend', (session, vm_uuid)) + print 'Suspended VM.' + time.sleep(5) + print 'Resuming VM ...' + execute(server, 'VM.resume', (session, vm_uuid, False)) + print 'Resumed VM.' + + # Wait for user to say we're good to shut it down + while True: + destroy = raw_input('destroy VM? ') + if destroy[0] in ('y', 'Y'): + break + + finally: + # Clean up + if vif_uuid: + execute(server, 'VIF.destroy', (session, vif_uuid)) + + if local_vbd_uuid: + execute(server, 'VBD.destroy', (session, local_vbd_uuid)) + if local_vdi_uuid: + execute(server, 'VDI.destroy', (session, local_vdi_uuid)) + + if vm_uuid: + try: + execute(server, 'VM.hard_shutdown', (session, vm_uuid)) + time.sleep(2) + except: + pass + try: + execute(server, 'VM.destroy', (session, vm_uuid)) + except: + pass + + +if __name__ == "__main__": + test_vm_create() + _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |