# 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"
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"
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 = {
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,
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())
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_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: {
# 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