Hs2Py constants: add 'hvcDefaults'
authorJose A. Lopes <jabolopes@google.com>
Thu, 24 Oct 2013 08:51:10 +0000 (10:51 +0200)
committerJose A. Lopes <jabolopes@google.com>
Mon, 28 Oct 2013 10:05:01 +0000 (11:05 +0100)
Add 'hvcDefaults' to the Haskell to Python constant generation.

Signed-off-by: Jose A. Lopes <jabolopes@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>

lib/constants.py
src/Ganeti/HsConstants.hs

index eea2bb2..52eff52 100644 (file)
@@ -1158,123 +1158,13 @@ SS_FILE_PERMS = _constants.SS_FILE_PERMS
 
 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
 
index 8845293..2e28ff5 100644 (file)
@@ -3473,6 +3473,118 @@ ssFilePerms = 0o444
 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,