Revision a21dda8b

b/lib/hypervisor/hv_xen.py
357 357
    config.write("memory = %d\n" % instance.memory)
358 358
    config.write("vcpus = %d\n" % instance.vcpus)
359 359
    config.write("name = '%s'\n" % instance.name)
360
    config.write("pae = 1\n")
361
    config.write("acpi = 1\n")
360
    if instance.hvm_pae:
361
      config.write("pae = 1\n")
362
    else:
363
      config.write("pae = 0\n")
364
    if instance.hvm_acpi:
365
      config.write("acpi = 1\n")
366
    else:
367
      config.write("acpi = 0\n")
362 368
    config.write("apic = 1\n")
363 369
    arch = os.uname()[4]
364 370
    if '64' in arch:
......
373 379
    config.write("usb = 1\n");
374 380
    config.write("usbdevice = 'tablet'\n");
375 381
    config.write("vnc = 1\n")
376
    config.write("vnclisten = '0.0.0.0'\n")
382
    config.write("vnclisten = '%s'\n" % instance.vnc_bind_address)
377 383

  
378 384
    if instance.network_port > constants.HT_HVM_VNC_BASE_PORT:
379 385
      display = instance.network_port - constants.HT_HVM_VNC_BASE_PORT
......
407 413
      vif_data.append("'%s'" % nic_str)
408 414

  
409 415
    config.write("vif = [%s]\n" % ",".join(vif_data))
410
    iso = "'file:/srv/ganeti/iso/hvm-install.iso,hdc:cdrom,r'"
411
    config.write("disk = [%s, %s]\n" % (",".join(
412
                 cls._GetConfigFileDiskData(instance.disk_template,
413
                                            block_devices)), iso))
416
    disk_data = cls._GetConfigFileDiskData(instance.disk_template,
417
                                            block_devices)
418
    disk_data = [line.replace(",sd", ",ioemu:hd") for line in disk_data]
419
    if instance.hvm_cdrom_image_path is not None:
420
      iso = "'file:%s,hdc:cdrom,r'" % (instance.hvm_cdrom_image_path)
421
      disk_data.append(iso)
422

  
423
    config.write("disk = [%s]\n" % (",".join(disk_data)))
424

  
414 425
    config.write("on_poweroff = 'destroy'\n")
415 426
    config.write("on_reboot = 'restart'\n")
416 427
    config.write("on_crash = 'restart'\n")
......
437 448
    if instance.network_port is None:
438 449
      raise errors.OpExecError("no console port defined for %s"
439 450
                               % instance.name)
440
    else:
451
    elif instance.vnc_bind_address == constants.BIND_ADDRESS_GLOBAL:
441 452
      raise errors.OpExecError("no PTY console, connect to %s:%s via VNC"
442 453
                               % (instance.primary_node,
443 454
                                  instance.network_port))
455
    else:
456
      raise errors.OpExecError("no PTY console, connect to %s:%s via VNC"
457
                               % (instance.vnc_bind_address,
458
                                  instance.network_port))

Also available in: Unified diff