| Luke,
Here is an example pywbem script using kernel/ramdisk instead of
bootloader.  Something similar should work with the xm test ramdisk.
Jim
 #!/usr/bin/python
import sys
import pywbem
import time
# Connect to cimom
conn = pywbem.WBEMConnection('http://localhost', ('root', 'novell'))
# Get instance of Virtual System Management Service
print 'Looking for Virtual System Management Service...'
vsms = conn.EnumerateInstanceNames("Xen_VirtualSystemManagementService")
print 'Got Virtual System Management Service: %s' % str(vsms[0])
# Create virtual system settings for new VM
vssd = pywbem.CIMInstance('Xen_ComputerSystemSettingData',
        {'VirtualSystemIdentifier':'sles10_graphics',
         'VirtualSystemType':'xen-3.0-x86_32p',
         'Kernel':'/tests/kernels/vmlinuz-xenpae-sles10_sp1',
         'RAMDisk':'/tests/kernels/initrd-xenpae-sles10_sp1',
         'UUID':'20904d23-8a89-1d63-134c-d2606f2fcc47',
         'KernelOptions':'Term=xterm',
         'OnPoweroff':pywbem.Uint16(0),
         'OnReboot':pywbem.Uint16(1),
         'OnCrash':pywbem.Uint16(2)})
proc_rasd = pywbem.CIMInstance('Xen_ProcessorSettingData',
        {'ResourceType':pywbem.Uint16(3),
         'VirtualQuantity':pywbem.Uint64(2),
         'AllocationUnits':'Cores',
         'Weight':pywbem.Uint32(512),
         'Limit':pywbem.Uint64(100)})
mem_rasd = pywbem.CIMInstance('Xen_MemorySettingData',
        {'ResourceType':pywbem.Uint16(4), 
         'VirtualQuantity':pywbem.Uint64(512),
         'AllocationUnits':'MegaBytes'})
disk0_rasd = pywbem.CIMInstance('Xen_DiskSettingData',
         {'ResourceType':pywbem.Uint16(19),
         
'DiskConfigInfo':'file:/var/lib/xen/images/sles10_graphics/disk0,xvda,w'})
disk1_rasd = pywbem.CIMInstance('Xen_DiskSettingData',
        {'ResourceType':pywbem.Uint16(19),
         
'DiskConfigInfo':'file:/var/lib/xen/images/sles10_graphics/disk1,xvdb,w'})
nic_rasd = pywbem.CIMInstance('Xen_NetworkPortSettingData', 
        {'ResourceType':pywbem.Uint16(10), 
         'NICConfigInfo':'mac=00:16:3e:39:7a:f7'})
con_rasd = pywbem.CIMInstance('Xen_ConsoleSettingData', 
        {'ResourceType':pywbem.Uint16(24),
         'Protocol':pywbem.Uint16(1),
         'ConsoleConfigInfo':'vncunused=1'})
rasds = [proc_rasd, mem_rasd, disk0_rasd, disk1_rasd, nic_rasd, con_rasd]
in_params = {'SystemSettings': vssd, 'ResourceSettings': rasds}
# Invoke DefineSystem on Virtual System Management Serive to define a new VM,
# providing the new VM settings and its resource settings.
new_vm = None
try:
    print 'Calling DefineSystem to create a new VM ...'
    (rval, out_params) = conn.InvokeMethod('DefineSystem', vsms[0], **in_params)
    print 'Return Value of DefineSystem: %s' % rval
    print 'Output = %s' % out_params
    new_vm = out_params['ResultingSystem']
except pywbem.CIMError, arg:
    print 'Caught exception when calling InvokeMethod'
    if arg[0] != pywbem.CIM_ERR_NOT_SUPPORTED:
        print 'InvokeMethod(instancename): %s' % arg[1]
        sys.exit(1)
except ValueError, e:
    pass
# Get instances of Xen_ComputerSystem
print 'Enumerating instances of Xen_ComputerSystem:'
inst_names = conn.EnumerateInstanceNames('Xen_ComputerSystem')
for n in inst_names:
    inst = conn.GetInstance(n, LocalOnly=False)
    print 'Domain %s:  EnabledState %s' % (inst['Name'], inst['EnabledState'])
time.sleep(5)
print 'Activating newly defined VM ...'
try:
    # state 2 = enabled(running)
    (rval, out_params) = conn.InvokeMethod('RequestStateChange', new_vm, 
RequestedState='2')
except Exception, e:
    sys.stderr.write('Exception caught in starting VM: %s\n' % e)
    sys.exit(1)
    if rval == 0:
        print 'Successfully activated new vm'
    else:
        sys.stderr.write('Unable to start VM, return code: %s\n' % rval)
        sys.exit(1)
time.sleep(5)
print 'Enumerating instances of Xen_ComputerSystem:'
inst_names = conn.EnumerateInstanceNames('Xen_ComputerSystem')
for n in inst_names:
    inst = conn.GetInstance(n, LocalOnly=False)
    print 'Domain %s:  EnabledState %s' % (inst['Name'], inst['EnabledState'])
_______________________________________________
Xen-cim mailing list
Xen-cim@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-cim
 |