Index: start.template ================================================================== --- start.template +++ start.template @@ -22,11 +22,11 @@ {drive} \ {cdrom}$CDROM \ {net} \ {usb} \ {sound} \ --chardev socket,server,nowait,path=/home/vitus/asta.monitor,id=monitor \ +-chardev socket,server,nowait,path=monitor,id=monitor \ -mon chardev=monitor,mode=readline \ -vga qxl \ -spice port=$SPICE_PORT,$SPICE_AUTH \ -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent \ -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \ ADDED vwscreate Index: vwscreate ================================================================== --- vwscreate +++ vwscreate @@ -0,0 +1,75 @@ +#!/usr/bin/python +import os,sys +from argparse import ArgumentParser +libdir="/usr/local/lib/vws" +drivename="drive0.qcow2" +args = ArgumentParser() + +args.add_argument("--no-usb",help="Disable USB controller",action='store_const', const = False, default=True, dest="usb") +args.add_argument("--size",help="Size of primary disk images",dest="size",default="20G"); +args.add_argument("--arch",help="Emulated architecture",dest="arch",default='x86_64'); +args.add_argument("--no-sound",help="Disable sound card",action='store_const',const = False, default=True, dest="sound") +args.add_argument("--net",help="Network - 'user' or bridge name",dest='net',default="user") +args.add_argument("--mem",help="Size of memory",dest="mem",default="1024M") +args.add_argument("--diskif",help="Disk interface",dest="diskif",default="virtio") +args.add_argument('name',type=str,help='name of machine to create') +args.add_argument('--shared',help='Create shared VM instead of private one',action='store_const',const= True,dest='shared',default=False) +args.add_Argumnen('--image',help='Existing disk image to import',dest=image,default=None)) +parsed_args = args.parse_args(sys.argv[1:]) + +options={'qemubinary':'qemu-system-x86_64', +"accel":"-enable-kvm", +"memory":"1024M", +"drive":"-drive media=disk,index=0,if={interface},file={image}", +"cdrom":"-drive media=cdrom,index=2,if=ide", +"sound":"-soundhw hda", +"usb":"-usb"} + + +macaddr=":".join(map(lambda x: "%02x"%random.randrange(0,256),range(0,5))) + +if parsed_args.net != 'user': + options["net"]="-net nic,macaddr=%s -net bridge,br=%s"%(macaddr,parsed_args.net), +else: + options["net"]="-net nic,macaddr=%s -net user"%(macaddr,)) + +optons["qemubinary"] = 'qemu-system-'+parset_args.arch + +if not parsed_args.arch in ('i386','x86_64'): + print >>sys.stderr,"KVM acceleration disabled due to target architecture" + options.accel = '' +elif not os.access("/dev/kvm",os.W_OK): + print >>sys.stderr,"KVM acceleration disabled due to unavailability on the host system" + options.accel = '' + +if not parsed_args.usb: + options["usb"]='' + +if not parsed_args.sound: + options["sound"]='' + +options["memory"]=parsed_args.mem + + +# Creating directory for VM + +driveopts={"interface":parsed_args.diskif,"image":drivename} +if parsed_args.image: + # Copying image file + print >>sys.stderr,"Copying %s to %s"%(parsed_args.image,machinedir+"/"+drivename) + + chdir(machinedir) +else: + print >>sys.stderr,"Creating new image file" + os.chdir(machinedir) + os.system("qemu-img create -f qcow2 %s %s"%(drivename,parsed_args.size)) +options["drive"]=options["drive"].format(driveopts) +with open(libdir+"/start.template","r") as f: + template=f.read() +with open("start","w") as script: + print script,template.format(options), + +os.chmod(start,0755) + +# If installation media is specified vws start for new vm +