DEFAULT_ENABLED_HYPERVISOR = _constants.DEFAULT_ENABLED_HYPERVISOR
-HVC_DEFAULTS = {
- HT_XEN_PVM: {
- HV_USE_BOOTLOADER: False,
- HV_BOOTLOADER_PATH: XEN_BOOTLOADER,
- HV_BOOTLOADER_ARGS: "",
- HV_KERNEL_PATH: XEN_KERNEL,
- HV_INITRD_PATH: "",
- HV_ROOT_PATH: "/dev/xvda1",
- HV_KERNEL_ARGS: "ro",
- HV_MIGRATION_PORT: 8002,
- HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
- HV_BLOCKDEV_PREFIX: "sd",
- HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
- HV_CPU_MASK: CPU_PINNING_ALL,
- HV_CPU_CAP: 0,
- HV_CPU_WEIGHT: 256,
- HV_VIF_SCRIPT: "",
- HV_XEN_CMD: XEN_CMD_XM,
- HV_XEN_CPUID: "",
- HV_SOUNDHW: "",
- },
- HT_XEN_HVM: {
- HV_BOOT_ORDER: "cd",
- HV_CDROM_IMAGE_PATH: "",
- HV_NIC_TYPE: HT_NIC_RTL8139,
- HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
- HV_VNC_BIND_ADDRESS: IP4_ADDRESS_ANY,
- HV_VNC_PASSWORD_FILE: pathutils.VNC_PASSWORD_FILE,
- HV_ACPI: True,
- HV_PAE: True,
- HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader",
- HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm",
- HV_MIGRATION_PORT: 8002,
- HV_MIGRATION_MODE: HT_MIGRATION_NONLIVE,
- HV_USE_LOCALTIME: False,
- HV_BLOCKDEV_PREFIX: "hd",
- HV_PASSTHROUGH: "",
- HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
- HV_CPU_MASK: CPU_PINNING_ALL,
- HV_CPU_CAP: 0,
- HV_CPU_WEIGHT: 256,
- HV_VIF_TYPE: HT_HVM_VIF_IOEMU,
- HV_VIF_SCRIPT: "",
- HV_VIRIDIAN: False,
- HV_XEN_CMD: XEN_CMD_XM,
- HV_XEN_CPUID: "",
- HV_SOUNDHW: "",
- },
- HT_KVM: {
- HV_KVM_PATH: KVM_PATH,
- HV_KERNEL_PATH: KVM_KERNEL,
- HV_INITRD_PATH: "",
- HV_KERNEL_ARGS: "ro",
- HV_ROOT_PATH: "/dev/vda1",
- HV_ACPI: True,
- HV_SERIAL_CONSOLE: True,
- HV_SERIAL_SPEED: 38400,
- HV_VNC_BIND_ADDRESS: "",
- HV_VNC_TLS: False,
- HV_VNC_X509: "",
- HV_VNC_X509_VERIFY: False,
- HV_VNC_PASSWORD_FILE: "",
- HV_KVM_SPICE_BIND: "",
- HV_KVM_SPICE_IP_VERSION: IFACE_NO_IP_VERSION_SPECIFIED,
- HV_KVM_SPICE_PASSWORD_FILE: "",
- HV_KVM_SPICE_LOSSLESS_IMG_COMPR: "",
- HV_KVM_SPICE_JPEG_IMG_COMPR: "",
- HV_KVM_SPICE_ZLIB_GLZ_IMG_COMPR: "",
- HV_KVM_SPICE_STREAMING_VIDEO_DETECTION: "",
- HV_KVM_SPICE_AUDIO_COMPR: True,
- HV_KVM_SPICE_USE_TLS: False,
- HV_KVM_SPICE_TLS_CIPHERS: OPENSSL_CIPHERS,
- HV_KVM_SPICE_USE_VDAGENT: True,
- HV_KVM_FLOPPY_IMAGE_PATH: "",
- HV_CDROM_IMAGE_PATH: "",
- HV_KVM_CDROM2_IMAGE_PATH: "",
- HV_BOOT_ORDER: HT_BO_DISK,
- HV_NIC_TYPE: HT_NIC_PARAVIRTUAL,
- HV_DISK_TYPE: HT_DISK_PARAVIRTUAL,
- HV_KVM_CDROM_DISK_TYPE: "",
- HV_USB_MOUSE: "",
- HV_KEYMAP: "",
- HV_MIGRATION_PORT: 8102,
- HV_MIGRATION_BANDWIDTH: 32, # MiB/s
- HV_MIGRATION_DOWNTIME: 30, # ms
- HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
- HV_USE_LOCALTIME: False,
- HV_DISK_CACHE: HT_CACHE_DEFAULT,
- HV_SECURITY_MODEL: HT_SM_NONE,
- HV_SECURITY_DOMAIN: "",
- HV_KVM_FLAG: "",
- HV_VHOST_NET: False,
- HV_KVM_USE_CHROOT: False,
- HV_MEM_PATH: "",
- HV_REBOOT_BEHAVIOR: INSTANCE_REBOOT_ALLOWED,
- HV_CPU_MASK: CPU_PINNING_ALL,
- HV_CPU_TYPE: "",
- HV_CPU_CORES: 0,
- HV_CPU_THREADS: 0,
- HV_CPU_SOCKETS: 0,
- HV_SOUNDHW: "",
- HV_USB_DEVICES: "",
- HV_VGA: "",
- HV_KVM_EXTRA: "",
- HV_KVM_MACHINE_VERSION: "",
- HV_VNET_HDR: True,
- },
- HT_FAKE: {
- HV_MIGRATION_MODE: HT_MIGRATION_LIVE,
- },
- HT_CHROOT: {
- HV_INIT_SCRIPT: "/ganeti-chroot",
- },
- HT_LXC: {
- HV_CPU_MASK: "",
- },
- }
+# HVC_DEFAULTS contains one value 'HV_VNC_PASSWORD_FILE' which is not
+# a constant because it depends on an environment variable that is
+# used for VClusters. Therefore, it cannot be automatically generated
+# by Haskell at compilation time (given that this environment variable
+# might be different at runtime).
+HVC_DEFAULTS = _constants.HVC_DEFAULTS
+HVC_DEFAULTS[HT_XEN_HVM][HV_VNC_PASSWORD_FILE] = pathutils.VNC_PASSWORD_FILE
HVC_GLOBALS = _constants.HVC_GLOBALS
defaultEnabledHypervisor :: String
defaultEnabledHypervisor = htXenPvm
+hvcDefaults :: Map Hypervisor (Map String PyValueEx)
+hvcDefaults =
+ Map.fromList
+ [ (XenPvm, Map.fromList
+ [ (hvUseBootloader, PyValueEx False)
+ , (hvBootloaderPath, PyValueEx xenBootloader)
+ , (hvBootloaderArgs, PyValueEx "")
+ , (hvKernelPath, PyValueEx xenKernel)
+ , (hvInitrdPath, PyValueEx "")
+ , (hvRootPath, PyValueEx "/dev/xvda1")
+ , (hvKernelArgs, PyValueEx "ro")
+ , (hvMigrationPort, PyValueEx (8002 :: Int))
+ , (hvMigrationMode, PyValueEx htMigrationLive)
+ , (hvBlockdevPrefix, PyValueEx "sd")
+ , (hvRebootBehavior, PyValueEx instanceRebootAllowed)
+ , (hvCpuMask, PyValueEx cpuPinningAll)
+ , (hvCpuCap, PyValueEx (0 :: Int))
+ , (hvCpuWeight, PyValueEx (256 :: Int))
+ , (hvVifScript, PyValueEx "")
+ , (hvXenCmd, PyValueEx xenCmdXm)
+ , (hvXenCpuid, PyValueEx "")
+ , (hvSoundhw, PyValueEx "")
+ ])
+ , (XenHvm, Map.fromList
+ [ (hvBootOrder, PyValueEx "cd")
+ , (hvCdromImagePath, PyValueEx "")
+ , (hvNicType, PyValueEx htNicRtl8139)
+ , (hvDiskType, PyValueEx htDiskParavirtual)
+ , (hvVncBindAddress, PyValueEx ip4AddressAny)
+ , (hvAcpi, PyValueEx True)
+ , (hvPae, PyValueEx True)
+ , (hvKernelPath, PyValueEx "/usr/lib/xen/boot/hvmloader")
+ , (hvDeviceModel, PyValueEx "/usr/lib/xen/bin/qemu-dm")
+ , (hvMigrationPort, PyValueEx (8002 :: Int))
+ , (hvMigrationMode, PyValueEx htMigrationNonlive)
+ , (hvUseLocaltime, PyValueEx False)
+ , (hvBlockdevPrefix, PyValueEx "hd")
+ , (hvPassthrough, PyValueEx "")
+ , (hvRebootBehavior, PyValueEx instanceRebootAllowed)
+ , (hvCpuMask, PyValueEx cpuPinningAll)
+ , (hvCpuCap, PyValueEx (0 :: Int))
+ , (hvCpuWeight, PyValueEx (256 :: Int))
+ , (hvVifType, PyValueEx htHvmVifIoemu)
+ , (hvVifScript, PyValueEx "")
+ , (hvViridian, PyValueEx False)
+ , (hvXenCmd, PyValueEx xenCmdXm)
+ , (hvXenCpuid, PyValueEx "")
+ , (hvSoundhw, PyValueEx "")
+ ])
+ , (Kvm, Map.fromList
+ [ (hvKvmPath, PyValueEx kvmPath)
+ , (hvKernelPath, PyValueEx kvmKernel)
+ , (hvInitrdPath, PyValueEx "")
+ , (hvKernelArgs, PyValueEx "ro")
+ , (hvRootPath, PyValueEx "/dev/vda1")
+ , (hvAcpi, PyValueEx True)
+ , (hvSerialConsole, PyValueEx True)
+ , (hvSerialSpeed, PyValueEx (38400 :: Int))
+ , (hvVncBindAddress, PyValueEx "")
+ , (hvVncTls, PyValueEx False)
+ , (hvVncX509, PyValueEx "")
+ , (hvVncX509Verify, PyValueEx False)
+ , (hvVncPasswordFile, PyValueEx "")
+ , (hvKvmSpiceBind, PyValueEx "")
+ , (hvKvmSpiceIpVersion, PyValueEx ifaceNoIpVersionSpecified)
+ , (hvKvmSpicePasswordFile, PyValueEx "")
+ , (hvKvmSpiceLosslessImgCompr, PyValueEx "")
+ , (hvKvmSpiceJpegImgCompr, PyValueEx "")
+ , (hvKvmSpiceZlibGlzImgCompr, PyValueEx "")
+ , (hvKvmSpiceStreamingVideoDetection, PyValueEx "")
+ , (hvKvmSpiceAudioCompr, PyValueEx True)
+ , (hvKvmSpiceUseTls, PyValueEx False)
+ , (hvKvmSpiceTlsCiphers, PyValueEx opensslCiphers)
+ , (hvKvmSpiceUseVdagent, PyValueEx True)
+ , (hvKvmFloppyImagePath, PyValueEx "")
+ , (hvCdromImagePath, PyValueEx "")
+ , (hvKvmCdrom2ImagePath, PyValueEx "")
+ , (hvBootOrder, PyValueEx htBoDisk)
+ , (hvNicType, PyValueEx htNicParavirtual)
+ , (hvDiskType, PyValueEx htDiskParavirtual)
+ , (hvKvmCdromDiskType, PyValueEx "")
+ , (hvUsbMouse, PyValueEx "")
+ , (hvKeymap, PyValueEx "")
+ , (hvMigrationPort, PyValueEx (8102 :: Int))
+ , (hvMigrationBandwidth, PyValueEx (32 :: Int))
+ , (hvMigrationDowntime, PyValueEx (30 :: Int))
+ , (hvMigrationMode, PyValueEx htMigrationLive)
+ , (hvUseLocaltime, PyValueEx False)
+ , (hvDiskCache, PyValueEx htCacheDefault)
+ , (hvSecurityModel, PyValueEx htSmNone)
+ , (hvSecurityDomain, PyValueEx "")
+ , (hvKvmFlag, PyValueEx "")
+ , (hvVhostNet, PyValueEx False)
+ , (hvKvmUseChroot, PyValueEx False)
+ , (hvMemPath, PyValueEx "")
+ , (hvRebootBehavior, PyValueEx instanceRebootAllowed)
+ , (hvCpuMask, PyValueEx cpuPinningAll)
+ , (hvCpuType, PyValueEx "")
+ , (hvCpuCores, PyValueEx (0 :: Int))
+ , (hvCpuThreads, PyValueEx (0 :: Int))
+ , (hvCpuSockets, PyValueEx (0 :: Int))
+ , (hvSoundhw, PyValueEx "")
+ , (hvUsbDevices, PyValueEx "")
+ , (hvVga, PyValueEx "")
+ , (hvKvmExtra, PyValueEx "")
+ , (hvKvmMachineVersion, PyValueEx "")
+ , (hvVnetHdr, PyValueEx True)])
+ , (Fake, Map.fromList [(hvMigrationMode, PyValueEx htMigrationLive)])
+ , (Chroot, Map.fromList [(hvInitScript, PyValueEx "/ganeti-chroot")])
+ , (Lxc, Map.fromList [(hvCpuMask, PyValueEx "")])
+ ]
+
hvcGlobals :: FrozenSet String
hvcGlobals =
ConstantUtils.mkSet [hvMigrationBandwidth,