Add KVM machine version as hv param
[ganeti-local] / lib / constants.py
index 2501f0b..c036ba4 100644 (file)
@@ -420,6 +420,17 @@ DTS_FILEBASED = compat.UniqueFrozenset([
   DT_SHARED_FILE,
   ])
 
+# the set of disk templates that are supported by exclusive_storage
+DTS_EXCL_STORAGE = frozenset([DT_PLAIN])
+
+# templates for which we don't perform checks on free space
+DTS_NO_FREE_SPACE_CHECK = compat.UniqueFrozenset([
+  DT_FILE,
+  DT_SHARED_FILE,
+  DT_RBD,
+  DT_EXT,
+  ])
+
 # logical disk types
 LD_LV = "lvm"
 LD_DRBD8 = "drbd8"
@@ -737,6 +748,27 @@ ENFORCEABLE_TYPES = compat.UniqueFrozenset([
 # Constant representing that the user does not specify any IP version
 IFACE_NO_IP_VERSION_SPECIFIED = 0
 
+VALID_SERIAL_SPEEDS = compat.UniqueFrozenset([
+  75,
+  110,
+  300,
+  600,
+  1200,
+  1800,
+  2400,
+  4800,
+  9600,
+  14400,
+  19200,
+  28800,
+  38400,
+  57600,
+  115200,
+  230400,
+  345600,
+  460800,
+  ])
+
 # HV parameter names (global namespace)
 HV_BOOT_ORDER = "boot_order"
 HV_CDROM_IMAGE_PATH = "cdrom_image_path"
@@ -771,6 +803,7 @@ HV_KERNEL_PATH = "kernel_path"
 HV_INITRD_PATH = "initrd_path"
 HV_ROOT_PATH = "root_path"
 HV_SERIAL_CONSOLE = "serial_console"
+HV_SERIAL_SPEED = "serial_speed"
 HV_USB_MOUSE = "usb_mouse"
 HV_KEYMAP = "keymap"
 HV_DEVICE_MODEL = "device_model"
@@ -794,6 +827,14 @@ HV_REBOOT_BEHAVIOR = "reboot_behavior"
 HV_CPU_TYPE = "cpu_type"
 HV_CPU_CAP = "cpu_cap"
 HV_CPU_WEIGHT = "cpu_weight"
+HV_CPU_CORES = "cpu_cores"
+HV_CPU_THREADS = "cpu_threads"
+HV_CPU_SOCKETS = "cpu_sockets"
+HV_SOUNDHW = "soundhw"
+HV_USB_DEVICES = "usb_devices"
+HV_VGA = "vga"
+HV_KVM_EXTRA = "kvm_extra"
+HV_KVM_MACHINE_VERSION = "machine_version"
 
 
 HVS_PARAMETER_TYPES = {
@@ -830,6 +871,7 @@ HVS_PARAMETER_TYPES = {
   HV_INITRD_PATH: VTYPE_STRING,
   HV_ROOT_PATH: VTYPE_MAYBE_STRING,
   HV_SERIAL_CONSOLE: VTYPE_BOOL,
+  HV_SERIAL_SPEED: VTYPE_INT,
   HV_USB_MOUSE: VTYPE_STRING,
   HV_KEYMAP: VTYPE_STRING,
   HV_DEVICE_MODEL: VTYPE_STRING,
@@ -853,6 +895,14 @@ HVS_PARAMETER_TYPES = {
   HV_CPU_TYPE: VTYPE_STRING,
   HV_CPU_CAP: VTYPE_INT,
   HV_CPU_WEIGHT: VTYPE_INT,
+  HV_CPU_CORES: VTYPE_INT,
+  HV_CPU_THREADS: VTYPE_INT,
+  HV_CPU_SOCKETS: VTYPE_INT,
+  HV_SOUNDHW: VTYPE_STRING,
+  HV_USB_DEVICES: VTYPE_STRING,
+  HV_VGA: VTYPE_STRING,
+  HV_KVM_EXTRA: VTYPE_STRING,
+  HV_KVM_MACHINE_VERSION: VTYPE_STRING,
   }
 
 HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys())
@@ -1721,6 +1771,7 @@ QR_OS = "os"
 QR_JOB = "job"
 QR_EXPORT = "export"
 QR_NETWORK = "network"
+QR_EXTSTORAGE = "extstorage"
 
 #: List of resources which can be queried using L{opcodes.OpQuery}
 QR_VIA_OP = compat.UniqueFrozenset([
@@ -1731,6 +1782,7 @@ QR_VIA_OP = compat.UniqueFrozenset([
   QR_OS,
   QR_EXPORT,
   QR_NETWORK,
+  QR_EXTSTORAGE,
   ])
 
 #: List of resources which can be queried using Local UniX Interface
@@ -1874,6 +1926,7 @@ HVC_DEFAULTS = {
     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: "",
@@ -1914,6 +1967,14 @@ HVC_DEFAULTS = {
     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: "",
     },
   HT_FAKE: {},
   HT_CHROOT: {
@@ -2222,5 +2283,34 @@ RANDOM_UUID_FILE = "/proc/sys/kernel/random/uuid"
 # Regex string for verifying a UUID
 UUID_REGEX = "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"
 
+# Auto-repair tag prefixes
+AUTO_REPAIR_TAG_PREFIX = "ganeti:watcher:autorepair:"
+AUTO_REPAIR_TAG_ENABLED = AUTO_REPAIR_TAG_PREFIX
+AUTO_REPAIR_TAG_SUSPENDED = AUTO_REPAIR_TAG_ENABLED + "suspend:"
+AUTO_REPAIR_TAG_PENDING = AUTO_REPAIR_TAG_PREFIX + "pending:"
+AUTO_REPAIR_TAG_RESULT = AUTO_REPAIR_TAG_PREFIX + "result:"
+
+# Auto-repair levels
+AUTO_REPAIR_FIX_STORAGE = "fix-storage"
+AUTO_REPAIR_MIGRATE = "migrate"
+AUTO_REPAIR_FAILOVER = "failover"
+AUTO_REPAIR_REINSTALL = "reinstall"
+AUTO_REPAIR_ALL_TYPES = [
+  AUTO_REPAIR_FIX_STORAGE,
+  AUTO_REPAIR_MIGRATE,
+  AUTO_REPAIR_FAILOVER,
+  AUTO_REPAIR_REINSTALL,
+]
+
+# Auto-repair results
+AUTO_REPAIR_SUCCESS = "success"
+AUTO_REPAIR_FAILURE = "failure"
+AUTO_REPAIR_ENOPERM = "enoperm"
+AUTO_REPAIR_ALL_RESULTS = frozenset([
+    AUTO_REPAIR_SUCCESS,
+    AUTO_REPAIR_FAILURE,
+    AUTO_REPAIR_ENOPERM,
+])
+
 # Do not re-export imported modules
 del re, _vcsversion, _autoconf, socket, pathutils, compat