WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [XENAPI] Add an example to start HVM gues

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [XENAPI] Add an example to start HVM guests via the Xen API.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 27 Jan 2007 13:00:21 -0800
Delivery-date: Sat, 27 Jan 2007 13:01:21 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [XENAPI] Add an example to start HVM guests via the Xen API., Xen patchbot-unstable <=