Hi, Would you give me a comment on this patch? If not, please apply it. > > Unless you can think of a compelling reason not to allow a user to do > > the above, I think we should not take this patch and leave the vcpu > > setting unbounded. However if you would like to send a patch that warns > > the user without imposing a hard limit, I think that would be reasonable. > > > I accepted your suggestion, and I made a patch again. > > This patch adds the option to warn when the number of virtual CPU is > more than the number of physical CPU. Signed-off-by: Masayuki Sunou <fj1826dm@xxxxxxxxxxxxxxxxx> Thanks, Masayuki Sunou =============================================================================== diff -r aec5777422c0 virt-install --- a/virt-install Wed Mar 21 13:46:29 2007 -0400 +++ b/virt-install Fri Mar 23 17:16:26 2007 +0900 @@ -89,12 +89,23 @@ def get_uuid(uuid, guest): except ValueError, e: print "ERROR: ", e -def get_vcpus(vcpus, guest): - if vcpus: - try: +def get_vcpus(vcpus, check_cpu, guest, conn): + while 1: + if check_cpu is None: + break + hostinfo = conn.getInfo() + cpu_num = hostinfo[4] * hostinfo[5] * hostinfo[6] * hostinfo[7] + if vcpus <= cpu_num: + break + res = prompt_for_input("Virtual CPU (%d) is more than physical CPU (%d). Would you like to attach virtual CPU more than physical CPU? (yes or no)" %(vcpus, cpu_num)) + try: + if yes_or_no(res): + break + vcpus = int(prompt_for_input("How many VCPUs should be attached?")) + except ValueError, e: + print "ERROR: ", e + if vcpus: guest.vcpus = vcpus - except ValueError, e: - print "ERROR: ", e def get_keymap(keymap, guest): if keymap: @@ -296,6 +307,8 @@ def parse_args(): help="UUID for the guest; if none is given a random UUID will be generated") parser.add_option("", "--vcpus", type="int", dest="vcpus", help="Number of vcpus to configure for your guest") + parser.add_option("", "--check-cpu", action="store_true", dest="check_cpu", + help="Check the maximum of physical CPU.") # disk options parser.add_option("-f", "--file", type="string", @@ -505,7 +518,7 @@ def main(): get_name(options.name, guest) get_memory(options.memory, guest) get_uuid(options.uuid, guest) - get_vcpus(options.vcpus, guest) + get_vcpus(options.vcpus, options.check_cpu, guest, conn) get_keymap(options.keymap, guest) # set up disks ===============================================================================