X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/1b48f7af13a72569696614a57526b49b37274f68..bf4daac98ca3ff323757cefa3e0b2eaa85612e66:/lib/constants.py diff --git a/lib/constants.py b/lib/constants.py index eeba79b..47849fc 100644 --- a/lib/constants.py +++ b/lib/constants.py @@ -21,10 +21,12 @@ """Module holding different constants.""" +import re + from ganeti import _autoconf # various versions -PROTOCOL_VERSION = 20 +PROTOCOL_VERSION = 30 RELEASE_VERSION = _autoconf.PACKAGE_VERSION OS_API_V10 = 10 OS_API_V15 = 15 @@ -104,6 +106,7 @@ INSTANCE_UPFILE = RUN_GANETI_DIR + "/instance-status" SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts" RAPI_USERS_FILE = DATA_DIR + "/rapi_users" QUEUE_DIR = DATA_DIR + "/queue" +DAEMON_UTIL = _autoconf.PKGLIBDIR + "/daemon-util" ETC_HOSTS = "/etc/hosts" DEFAULT_FILE_STORAGE_DIR = _autoconf.FILE_STORAGE_DIR SYSCONFDIR = _autoconf.SYSCONFDIR @@ -112,8 +115,6 @@ CONF_DIR = SYSCONFDIR + "/ganeti" MASTER_SOCKET = SOCKET_DIR + "/ganeti-master" -NODE_INITD_SCRIPT = SYSCONFDIR + "/init.d/ganeti" - NODED = "ganeti-noded" CONFD = "ganeti-confd" RAPI = "ganeti-rapi" @@ -154,6 +155,13 @@ LOG_WATCHER = LOG_DIR + "watcher.log" LOG_COMMANDS = LOG_DIR + "commands.log" LOG_BURNIN = LOG_DIR + "burnin.log" +# one of 'no', 'yes', 'only' +SYSLOG_USAGE = _autoconf.SYSLOG_USAGE +SYSLOG_NO = "no" +SYSLOG_YES = "yes" +SYSLOG_ONLY = "only" +SYSLOG_SOCKET = "/dev/log" + OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH EXPORT_DIR = _autoconf.EXPORT_DIR @@ -165,7 +173,8 @@ XEN_INITRD = _autoconf.XEN_INITRD KVM_PATH = _autoconf.KVM_PATH SOCAT_PATH = _autoconf.SOCAT_PATH -KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT +SOCAT_USE_ESCAPE = _autoconf.SOCAT_USE_ESCAPE +SOCAT_ESCAPE_CODE = "0x1d" VALUE_DEFAULT = "default" VALUE_AUTO = "auto" @@ -174,6 +183,9 @@ VALUE_NONE = "none" VALUE_TRUE = "true" VALUE_FALSE = "false" +# External script validation mask +EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$") + # hooks-related constants HOOKS_BASE_DIR = CONF_DIR + "/hooks" HOOKS_PHASE_PRE = "pre" @@ -250,6 +262,7 @@ LDS_BLOCK = frozenset([LD_LV, LD_DRBD8]) # drbd constants DRBD_HMAC_ALG = "md5" DRBD_NET_PROTOCOL = "C" +DRBD_BARRIERS = _autoconf.DRBD_BARRIERS # file backend driver FD_LOOP = "loop" @@ -320,7 +333,7 @@ DEFAULT_MAC_PREFIX = "aa:00:00" LVM_STRIPECOUNT = _autoconf.LVM_STRIPECOUNT # default maximum instance wait time, in seconds. DEFAULT_SHUTDOWN_TIMEOUT = 120 - +NODE_MAX_CLOCK_SKEW = 150 # RPC constants (RPC_ENCODING_NONE, @@ -338,7 +351,6 @@ OS_API_FILE = 'ganeti_api_version' OS_VARIANTS_FILE = 'variants.list' # ssh constants -SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT SSH_CONFIG_DIR = "/etc/ssh/" SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "ssh_host_dsa_key" SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub" @@ -390,6 +402,9 @@ HV_SERIAL_CONSOLE = "serial_console" HV_USB_MOUSE = "usb_mouse" HV_DEVICE_MODEL = "device_model" HV_INIT_SCRIPT = "init_script" +HV_MIGRATION_PORT = "migration_port" +HV_USE_LOCALTIME = "use_localtime" +HV_DISK_CACHE = "disk_cache" HVS_PARAMETER_TYPES = { HV_BOOT_ORDER: VTYPE_STRING, @@ -414,6 +429,9 @@ HVS_PARAMETER_TYPES = { HV_USB_MOUSE: VTYPE_STRING, HV_DEVICE_MODEL: VTYPE_STRING, HV_INIT_SCRIPT: VTYPE_STRING, + HV_MIGRATION_PORT: VTYPE_INT, + HV_USE_LOCALTIME: VTYPE_BOOL, + HV_DISK_CACHE: VTYPE_STRING, } HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys()) @@ -488,6 +506,15 @@ HT_DISK_SD = "sd" HT_DISK_MTD = "mtd" HT_DISK_PFLASH = "pflash" +HT_CACHE_DEFAULT = "default" +HT_CACHE_NONE = "none" +HT_CACHE_WTHROUGH = "writethrough" +HT_CACHE_WBACK = "writeback" +HT_VALID_CACHE_TYPES = frozenset([HT_CACHE_DEFAULT, + HT_CACHE_NONE, + HT_CACHE_WTHROUGH, + HT_CACHE_WBACK]) + HT_HVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IOEMU]) HT_KVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IDE, HT_DISK_SCSI, HT_DISK_SD, HT_DISK_MTD, @@ -523,6 +550,7 @@ NV_LVLIST = "lvlist" NV_PVLIST = "pvlist" NV_DRBDLIST = "drbd-list" NV_NODESETUP = "nodesetup" +NV_TIME = "time" # Allocator framework constants IALLOCATOR_VERSION = 2 @@ -530,6 +558,7 @@ IALLOCATOR_DIR_IN = "in" IALLOCATOR_DIR_OUT = "out" IALLOCATOR_MODE_ALLOC = "allocate" IALLOCATOR_MODE_RELOC = "relocate" +IALLOCATOR_MODE_MEVAC = "multi-evacuate" IALLOCATOR_SEARCH_PATH = _autoconf.IALLOCATOR_SEARCH_PATH # Job queue @@ -607,6 +636,7 @@ HVC_DEFAULTS = { HV_INITRD_PATH: '', HV_ROOT_PATH: '/dev/sda1', HV_KERNEL_ARGS: 'ro', + HV_MIGRATION_PORT: 8002, }, HT_XEN_HVM: { HV_BOOT_ORDER: "cd", @@ -619,6 +649,8 @@ HVC_DEFAULTS = { 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_USE_LOCALTIME: False, }, HT_KVM: { HV_KERNEL_PATH: "/boot/vmlinuz-2.6-kvmU", @@ -637,6 +669,9 @@ HVC_DEFAULTS = { HV_NIC_TYPE: HT_NIC_PARAVIRTUAL, HV_DISK_TYPE: HT_DISK_PARAVIRTUAL, HV_USB_MOUSE: '', + HV_MIGRATION_PORT: 8102, + HV_USE_LOCALTIME: False, + HV_DISK_CACHE: HT_CACHE_DEFAULT, }, HT_FAKE: { }, @@ -645,6 +680,10 @@ HVC_DEFAULTS = { }, } +HVC_GLOBALS = frozenset([ + HV_MIGRATION_PORT, + ]) + BEC_DEFAULTS = { BE_MEMORY: 128, BE_VCPUS: 1, @@ -674,6 +713,11 @@ CONFD_REQ_INSTANCES_IPS_LIST = 6 CONFD_REQQ_LINK = "0" CONFD_REQQ_IP = "1" CONFD_REQQ_IPLIST = "2" +CONFD_REQQ_FIELDS = "3" + +CONFD_REQFIELD_NAME = "0" +CONFD_REQFIELD_IP = "1" +CONFD_REQFIELD_MNODE_PIP = "2" CONFD_REQS = frozenset([ CONFD_REQ_PING, @@ -710,7 +754,7 @@ CONFD_ERROR_ARGUMENT = 3 # Each request is "salted" by the current timestamp. # This constants decides how many seconds of skew to accept. # TODO: make this a default and allow the value to be more configurable -CONFD_MAX_CLOCK_SKEW = 300 +CONFD_MAX_CLOCK_SKEW = 2 * NODE_MAX_CLOCK_SKEW # When we haven't reloaded the config for more than this amount of seconds, we # force a test to see if inotify is betraying us.