Hs2Py constants: add RPC timeout constants
[ganeti-local] / lib / constants.py
index 881bcc1..8319124 100644 (file)
@@ -24,7 +24,6 @@
 import re
 import socket
 
-from ganeti import _autoconf
 from ganeti import _constants
 from ganeti import _vcsversion
 from ganeti import compat
@@ -32,69 +31,28 @@ from ganeti import pathutils
 
 
 # various versions
-RELEASE_VERSION = _autoconf.PACKAGE_VERSION
-OS_API_V10 = 10
-OS_API_V15 = 15
-OS_API_V20 = 20
-OS_API_VERSIONS = compat.UniqueFrozenset([
-  OS_API_V10,
-  OS_API_V15,
-  OS_API_V20,
-  ])
+RELEASE_VERSION = _constants.RELEASE_VERSION
+OS_API_V10 = _constants.OS_API_V10
+OS_API_V15 = _constants.OS_API_V15
+OS_API_V20 = _constants.OS_API_V20
+OS_API_VERSIONS = _constants.OS_API_VERSIONS
 VCS_VERSION = _vcsversion.VCS_VERSION
 EXPORT_VERSION = 0
 RAPI_VERSION = 2
 
+VERSION_MAJOR = _constants.VERSION_MAJOR
+VERSION_MINOR = _constants.VERSION_MINOR
+VERSION_REVISION = _constants.VERSION_REVISION
 
-# Format for CONFIG_VERSION:
-#   01 03 0123 = 01030123
-#   ^^ ^^ ^^^^
-#   |  |  + Configuration version/revision
-#   |  + Minor version
-#   + Major version
-#
-# It is stored as an integer. Make sure not to write an octal number.
-
-# BuildVersion and SplitVersion must be in here because we can't import other
-# modules. The cfgupgrade tool must be able to read and write version numbers
-# and thus requires these functions. To avoid code duplication, they're kept in
-# here.
-
-def BuildVersion(major, minor, revision):
-  """Calculates int version number from major, minor and revision numbers.
-
-  Returns: int representing version number
-
-  """
-  assert isinstance(major, int)
-  assert isinstance(minor, int)
-  assert isinstance(revision, int)
-  return (1000000 * major +
-            10000 * minor +
-                1 * revision)
-
-
-def SplitVersion(version):
-  """Splits version number stored in an int.
+DIR_VERSION = _constants.DIR_VERSION
 
-  Returns: tuple; (major, minor, revision)
-
-  """
-  assert isinstance(version, int)
-
-  (major, remainder) = divmod(version, 1000000)
-  (minor, revision) = divmod(remainder, 10000)
-
-  return (major, minor, revision)
-
-
-CONFIG_MAJOR = int(_autoconf.VERSION_MAJOR)
-CONFIG_MINOR = int(_autoconf.VERSION_MINOR)
-CONFIG_REVISION = 0
-CONFIG_VERSION = BuildVersion(CONFIG_MAJOR, CONFIG_MINOR, CONFIG_REVISION)
+CONFIG_MAJOR = _constants.CONFIG_MAJOR
+CONFIG_MINOR = _constants.CONFIG_MINOR
+CONFIG_REVISION = _constants.CONFIG_REVISION
+CONFIG_VERSION = _constants.CONFIG_VERSION
 
 #: RPC protocol version
-PROTOCOL_VERSION = BuildVersion(CONFIG_MAJOR, CONFIG_MINOR, 0)
+PROTOCOL_VERSION = _constants.PROTOCOL_VERSION
 
 # user separation
 DAEMONS_GROUP = _constants.DAEMONS_GROUP
@@ -138,18 +96,18 @@ CPU_PINNING_ALL_XEN = "0-63"
 CPU_PINNING_ALL_KVM = 0xFFFFFFFF
 
 # Wipe
-DD_CMD = "dd"
-MAX_WIPE_CHUNK = 1024 # 1GB
-MIN_WIPE_CHUNK_PERCENT = 10
-
-RUN_DIRS_MODE = 0775
-SECURE_DIR_MODE = 0700
-SECURE_FILE_MODE = 0600
-ADOPTABLE_BLOCKDEV_ROOT = "/dev/disk/"
-ENABLE_CONFD = _autoconf.ENABLE_CONFD
-ENABLE_MOND = _autoconf.ENABLE_MOND
-ENABLE_SPLIT_QUERY = _autoconf.ENABLE_SPLIT_QUERY
-ENABLE_RESTRICTED_COMMANDS = _autoconf.ENABLE_RESTRICTED_COMMANDS
+DD_CMD = _constants.DD_CMD
+MAX_WIPE_CHUNK = _constants.MAX_WIPE_CHUNK
+MIN_WIPE_CHUNK_PERCENT = _constants.MIN_WIPE_CHUNK_PERCENT
+
+RUN_DIRS_MODE = _constants.RUN_DIRS_MODE
+SECURE_DIR_MODE = _constants.SECURE_DIR_MODE
+SECURE_FILE_MODE = _constants.SECURE_FILE_MODE
+ADOPTABLE_BLOCKDEV_ROOT = _constants.ADOPTABLE_BLOCKDEV_ROOT
+ENABLE_CONFD = _constants.ENABLE_CONFD
+ENABLE_MOND = _constants.ENABLE_MOND
+ENABLE_SPLIT_QUERY = _constants.ENABLE_SPLIT_QUERY
+ENABLE_RESTRICTED_COMMANDS = _constants.ENABLE_RESTRICTED_COMMANDS
 
 # SSH constants
 SSH = _constants.SSH
@@ -171,8 +129,8 @@ DEFAULT_CONFD_PORT = _constants.DEFAULT_CONFD_PORT
 DEFAULT_MOND_PORT = _constants.DEFAULT_MOND_PORT
 DEFAULT_RAPI_PORT = _constants.DEFAULT_RAPI_PORT
 
-FIRST_DRBD_PORT = 11000
-LAST_DRBD_PORT = 14999
+FIRST_DRBD_PORT = _constants.FIRST_DRBD_PORT
+LAST_DRBD_PORT = _constants.LAST_DRBD_PORT
 
 DAEMONS_LOGBASE = _constants.DAEMONS_LOGBASE
 
@@ -246,11 +204,11 @@ XL_SSH_CMD = ("ssh -l %s -oGlobalKnownHostsFile=%s"
               " -oHostKeyAlias=%%s") % (SSH_LOGIN_USER,
                                         pathutils.SSH_KNOWN_HOSTS_FILE)
 
-KVM_PATH = _autoconf.KVM_PATH
-KVM_KERNEL = _autoconf.KVM_KERNEL
-SOCAT_PATH = _autoconf.SOCAT_PATH
-SOCAT_USE_ESCAPE = _autoconf.SOCAT_USE_ESCAPE
-SOCAT_USE_COMPRESS = _autoconf.SOCAT_USE_COMPRESS
+KVM_PATH = _constants.KVM_PATH
+KVM_KERNEL = _constants.KVM_KERNEL
+SOCAT_PATH = _constants.SOCAT_PATH
+SOCAT_USE_ESCAPE = _constants.SOCAT_USE_ESCAPE
+SOCAT_USE_COMPRESS = _constants.SOCAT_USE_COMPRESS
 SOCAT_ESCAPE_CODE = "0x1d"
 
 #: Console as SSH command
@@ -563,18 +521,15 @@ LDS_DRBD = compat.UniqueFrozenset([DT_DRBD8])
 DISK_RDONLY = _constants.DISK_RDONLY
 DISK_RDWR = _constants.DISK_RDWR
 DISK_ACCESS_SET = _constants.DISK_ACCESS_SET
+DISK_USERSPACE = _constants.DISK_USERSPACE
+DISK_KERNELSPACE = _constants.DISK_KERNELSPACE
+DISK_VALID_ACCESS_MODES = _constants.DISK_VALID_ACCESS_MODES
 
-# disk replacement mode
-REPLACE_DISK_PRI = "replace_on_primary"    # replace disks on primary
-REPLACE_DISK_SEC = "replace_on_secondary"  # replace disks on secondary
-REPLACE_DISK_CHG = "replace_new_secondary" # change secondary node
-REPLACE_DISK_AUTO = "replace_auto"
-REPLACE_MODES = compat.UniqueFrozenset([
-  REPLACE_DISK_PRI,
-  REPLACE_DISK_SEC,
-  REPLACE_DISK_CHG,
-  REPLACE_DISK_AUTO,
-  ])
+REPLACE_DISK_PRI = _constants.REPLACE_DISK_PRI
+REPLACE_DISK_SEC = _constants.REPLACE_DISK_SEC
+REPLACE_DISK_CHG = _constants.REPLACE_DISK_CHG
+REPLACE_DISK_AUTO = _constants.REPLACE_DISK_AUTO
+REPLACE_MODES = _constants.REPLACE_MODES
 
 # Instance export mode
 EXPORT_MODE_LOCAL = _constants.EXPORT_MODE_LOCAL
@@ -667,12 +622,20 @@ MIN_VG_SIZE = 20480
 DEFAULT_MAC_PREFIX = "aa:00:00"
 # default maximum instance wait time, in seconds.
 DEFAULT_SHUTDOWN_TIMEOUT = 120
-NODE_MAX_CLOCK_SKEW = 150
+NODE_MAX_CLOCK_SKEW = _constants.NODE_MAX_CLOCK_SKEW
 # Time for an intra-cluster disk transfer to wait for a connection
 DISK_TRANSFER_CONNECT_TIMEOUT = 60
 # Disk index separator
-DISK_SEPARATOR = _autoconf.DISK_SEPARATOR
-IP_COMMAND_PATH = _autoconf.IP_PATH
+DISK_SEPARATOR = _constants.DISK_SEPARATOR
+IP_COMMAND_PATH = _constants.IP_COMMAND_PATH
+
+RPC_TMO_URGENT = _constants.RPC_TMO_URGENT
+RPC_TMO_FAST = _constants.RPC_TMO_FAST
+RPC_TMO_NORMAL = _constants.RPC_TMO_NORMAL
+RPC_TMO_SLOW = _constants.RPC_TMO_SLOW
+RPC_TMO_4HRS = _constants.RPC_TMO_4HRS
+RPC_TMO_1DAY = _constants.RPC_TMO_1DAY
+RPC_CONNECT_TIMEOUT = _constants.RPC_CONNECT_TIMEOUT
 
 #: Key for job IDs in opcode result
 JOB_IDS_KEY = "jobs"
@@ -692,17 +655,6 @@ RUNPARTS_STATUS = compat.UniqueFrozenset([
 (RPC_ENCODING_NONE,
  RPC_ENCODING_ZLIB_BASE64) = range(2)
 
-# Various time constants for the timeout table
-RPC_TMO_URGENT = 60 # one minute
-RPC_TMO_FAST = 5 * 60 # five minutes
-RPC_TMO_NORMAL = 15 * 60 # 15 minutes
-RPC_TMO_SLOW = 3600 # one hour
-RPC_TMO_4HRS = 4 * 3600
-RPC_TMO_1DAY = 86400
-
-# Timeout for connecting to nodes (seconds)
-RPC_CONNECT_TIMEOUT = 5
-
 # os related constants
 OS_SCRIPT_CREATE = "create"
 OS_SCRIPT_IMPORT = "import"
@@ -868,6 +820,7 @@ HV_KVM_PATH = "kvm_path"
 HV_VIF_TYPE = "vif_type"
 HV_VIF_SCRIPT = "vif_script"
 HV_XEN_CMD = "xen_cmd"
+HV_XEN_CPUID = "cpuid"
 HV_VNET_HDR = "vnet_hdr"
 HV_VIRIDIAN = "viridian"
 
@@ -942,6 +895,7 @@ HVS_PARAMETER_TYPES = {
   HV_VIF_TYPE: VTYPE_STRING,
   HV_VIF_SCRIPT: VTYPE_STRING,
   HV_XEN_CMD: VTYPE_STRING,
+  HV_XEN_CPUID: VTYPE_STRING,
   HV_VNET_HDR: VTYPE_BOOL,
   HV_VIRIDIAN: VTYPE_BOOL,
   }
@@ -1147,6 +1101,7 @@ LDP_DELAY_TARGET = "c-delay-target"
 LDP_MAX_RATE = "c-max-rate"
 LDP_MIN_RATE = "c-min-rate"
 LDP_POOL = "pool"
+LDP_ACCESS = "access"
 DISK_LD_TYPES = {
   LDP_RESYNC_RATE: VTYPE_INT,
   LDP_STRIPES: VTYPE_INT,
@@ -1163,6 +1118,7 @@ DISK_LD_TYPES = {
   LDP_MAX_RATE: VTYPE_INT,
   LDP_MIN_RATE: VTYPE_INT,
   LDP_POOL: VTYPE_STRING,
+  LDP_ACCESS: VTYPE_STRING,
   }
 DISK_LD_PARAMETERS = frozenset(DISK_LD_TYPES.keys())
 
@@ -1185,6 +1141,7 @@ DRBD_MAX_RATE = "c-max-rate"
 DRBD_MIN_RATE = "c-min-rate"
 LV_STRIPES = "stripes"
 RBD_POOL = "pool"
+RBD_ACCESS = "access"
 DISK_DT_TYPES = {
   DRBD_RESYNC_RATE: VTYPE_INT,
   DRBD_DATA_STRIPES: VTYPE_INT,
@@ -1203,6 +1160,7 @@ DISK_DT_TYPES = {
   DRBD_MIN_RATE: VTYPE_INT,
   LV_STRIPES: VTYPE_INT,
   RBD_POOL: VTYPE_STRING,
+  RBD_ACCESS: VTYPE_STRING,
   }
 
 DISK_DT_PARAMETERS = frozenset(DISK_DT_TYPES.keys())
@@ -1594,11 +1552,6 @@ VALID_IALLOCATOR_MODES = _constants.VALID_IALLOCATOR_MODES
 IALLOCATOR_SEARCH_PATH = _constants.IALLOCATOR_SEARCH_PATH
 DEFAULT_IALLOCATOR_SHORTCUT = _constants.DEFAULT_IALLOCATOR_SHORTCUT
 
-IALLOCATOR_NEVAC_PRI = _constants.IALLOCATOR_NEVAC_PRI
-IALLOCATOR_NEVAC_SEC = _constants.IALLOCATOR_NEVAC_SEC
-IALLOCATOR_NEVAC_ALL = _constants.IALLOCATOR_NEVAC_ALL
-IALLOCATOR_NEVAC_MODES = _constants.IALLOCATOR_NEVAC_MODES
-
 # Node evacuation
 NODE_EVAC_PRI = _constants.NODE_EVAC_PRI
 NODE_EVAC_SEC = _constants.NODE_EVAC_SEC
@@ -1842,6 +1795,8 @@ HVC_DEFAULTS = {
     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",
@@ -1867,6 +1822,8 @@ HVC_DEFAULTS = {
     HV_VIF_SCRIPT: "",
     HV_VIRIDIAN: False,
     HV_XEN_CMD: XEN_CMD_XM,
+    HV_XEN_CPUID: "",
+    HV_SOUNDHW: "",
     },
   HT_KVM: {
     HV_KVM_PATH: KVM_PATH,
@@ -1970,8 +1927,8 @@ NDC_GLOBALS = compat.UniqueFrozenset([
 DISK_LD_DEFAULTS = {
   DT_DRBD8: {
     LDP_RESYNC_RATE: CLASSIC_DRBD_SYNC_SPEED,
-    LDP_BARRIERS: _autoconf.DRBD_BARRIERS,
-    LDP_NO_META_FLUSH: _autoconf.DRBD_NO_META_FLUSH,
+    LDP_BARRIERS: _constants.DRBD_BARRIERS,
+    LDP_NO_META_FLUSH: _constants.DRBD_NO_META_FLUSH,
     LDP_DEFAULT_METAVG: DEFAULT_VG,
     LDP_DISK_CUSTOM: "",
     LDP_NET_CUSTOM: "",
@@ -1990,13 +1947,14 @@ DISK_LD_DEFAULTS = {
     LDP_MIN_RATE: 4 * 1024, # KiB/s
     },
   DT_PLAIN: {
-    LDP_STRIPES: _autoconf.LVM_STRIPECOUNT
+    LDP_STRIPES: _constants.LVM_STRIPECOUNT
     },
   DT_FILE: {},
   DT_SHARED_FILE: {},
   DT_BLOCK: {},
   DT_RBD: {
-    LDP_POOL: "rbd"
+    LDP_POOL: "rbd",
+    LDP_ACCESS: DISK_KERNELSPACE,
     },
   DT_EXT: {},
   }
@@ -2031,7 +1989,8 @@ DISK_DT_DEFAULTS = {
   DT_SHARED_FILE: {},
   DT_BLOCK: {},
   DT_RBD: {
-    RBD_POOL: DISK_LD_DEFAULTS[DT_RBD][LDP_POOL]
+    RBD_POOL: DISK_LD_DEFAULTS[DT_RBD][LDP_POOL],
+    RBD_ACCESS: DISK_LD_DEFAULTS[DT_RBD][LDP_ACCESS],
     },
   DT_EXT: {},
   }
@@ -2088,94 +2047,79 @@ PART_MARGIN = .01
 # Space reserved when creating instance disks
 PART_RESERVED = .02
 
-CONFD_PROTOCOL_VERSION = 1
+CONFD_PROTOCOL_VERSION = _constants.CONFD_PROTOCOL_VERSION
 
-CONFD_REQ_PING = 0
-CONFD_REQ_NODE_ROLE_BYNAME = 1
-CONFD_REQ_NODE_PIP_BY_INSTANCE_IP = 2
-CONFD_REQ_CLUSTER_MASTER = 3
-CONFD_REQ_NODE_PIP_LIST = 4
-CONFD_REQ_MC_PIP_LIST = 5
-CONFD_REQ_INSTANCES_IPS_LIST = 6
-CONFD_REQ_NODE_DRBD = 7
-CONFD_REQ_NODE_INSTANCES = 8
+CONFD_REQ_PING = _constants.CONFD_REQ_PING
+CONFD_REQ_NODE_ROLE_BYNAME = _constants.CONFD_REQ_NODE_ROLE_BYNAME
+CONFD_REQ_NODE_PIP_BY_INSTANCE_IP = _constants.CONFD_REQ_NODE_PIP_BY_INSTANCE_IP
+CONFD_REQ_CLUSTER_MASTER = _constants.CONFD_REQ_CLUSTER_MASTER
+CONFD_REQ_NODE_PIP_LIST = _constants.CONFD_REQ_NODE_PIP_LIST
+CONFD_REQ_MC_PIP_LIST = _constants.CONFD_REQ_MC_PIP_LIST
+CONFD_REQ_INSTANCES_IPS_LIST = _constants.CONFD_REQ_INSTANCES_IPS_LIST
+CONFD_REQ_NODE_DRBD = _constants.CONFD_REQ_NODE_DRBD
+CONFD_REQ_NODE_INSTANCES = _constants.CONFD_REQ_NODE_INSTANCES
+CONFD_REQS = _constants.CONFD_REQS
 
 # Confd request query fields. These are used to narrow down queries.
 # These must be strings rather than integers, because json-encoding
 # converts them to strings anyway, as they're used as dict-keys.
-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 = compat.UniqueFrozenset([
-  CONFD_REQ_PING,
-  CONFD_REQ_NODE_ROLE_BYNAME,
-  CONFD_REQ_NODE_PIP_BY_INSTANCE_IP,
-  CONFD_REQ_CLUSTER_MASTER,
-  CONFD_REQ_NODE_PIP_LIST,
-  CONFD_REQ_MC_PIP_LIST,
-  CONFD_REQ_INSTANCES_IPS_LIST,
-  CONFD_REQ_NODE_DRBD,
-  ])
-
-CONFD_REPL_STATUS_OK = 0
-CONFD_REPL_STATUS_ERROR = 1
-CONFD_REPL_STATUS_NOTIMPLEMENTED = 2
-
-CONFD_REPL_STATUSES = compat.UniqueFrozenset([
-  CONFD_REPL_STATUS_OK,
-  CONFD_REPL_STATUS_ERROR,
-  CONFD_REPL_STATUS_NOTIMPLEMENTED,
-  ])
-
-(CONFD_NODE_ROLE_MASTER,
- CONFD_NODE_ROLE_CANDIDATE,
- CONFD_NODE_ROLE_OFFLINE,
- CONFD_NODE_ROLE_DRAINED,
- CONFD_NODE_ROLE_REGULAR,
- ) = range(5)
-
-# A few common errors for confd
-CONFD_ERROR_UNKNOWN_ENTRY = 1
-CONFD_ERROR_INTERNAL = 2
-CONFD_ERROR_ARGUMENT = 3
+CONFD_REQQ_LINK = _constants.CONFD_REQQ_LINK
+CONFD_REQQ_IP = _constants.CONFD_REQQ_IP
+CONFD_REQQ_IPLIST = _constants.CONFD_REQQ_IPLIST
+CONFD_REQQ_FIELDS = _constants.CONFD_REQQ_FIELDS
+
+# FIXME: perhaps update code that uses these constants to deal with
+# integers instead of strings
+CONFD_REQFIELD_NAME = str(_constants.CONFD_REQFIELD_NAME)
+CONFD_REQFIELD_IP = str(_constants.CONFD_REQFIELD_IP)
+CONFD_REQFIELD_MNODE_PIP = str(_constants.CONFD_REQFIELD_MNODE_PIP)
+
+CONFD_REPL_STATUS_OK = _constants.CONFD_REPL_STATUS_OK
+CONFD_REPL_STATUS_ERROR = _constants.CONFD_REPL_STATUS_ERROR
+CONFD_REPL_STATUS_NOTIMPLEMENTED = _constants.CONFD_REPL_STATUS_NOTIMPLEMENTED
+CONFD_REPL_STATUSES = _constants.CONFD_REPL_STATUSES
+
+CONFD_NODE_ROLE_MASTER = _constants.CONFD_NODE_ROLE_MASTER
+CONFD_NODE_ROLE_CANDIDATE = _constants.CONFD_NODE_ROLE_CANDIDATE
+CONFD_NODE_ROLE_OFFLINE = _constants.CONFD_NODE_ROLE_OFFLINE
+CONFD_NODE_ROLE_DRAINED = _constants.CONFD_NODE_ROLE_DRAINED
+CONFD_NODE_ROLE_REGULAR = _constants.CONFD_NODE_ROLE_REGULAR
+
+CONFD_ERROR_UNKNOWN_ENTRY = _constants.CONFD_ERROR_UNKNOWN_ENTRY
+CONFD_ERROR_INTERNAL = _constants.CONFD_ERROR_INTERNAL
+CONFD_ERROR_ARGUMENT = _constants.CONFD_ERROR_ARGUMENT
 
 # 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 = 2 * NODE_MAX_CLOCK_SKEW
+CONFD_MAX_CLOCK_SKEW = _constants.CONFD_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. Using a
 # prime number to ensure we get less chance of 'same wakeup' with
 # other processes.
-CONFD_CONFIG_RELOAD_TIMEOUT = 17
+CONFD_CONFIG_RELOAD_TIMEOUT = _constants.CONFD_CONFIG_RELOAD_TIMEOUT
 
 # If we receive more than one update in this amount of microseconds,
 # we move to polling every RATELIMIT seconds, rather than relying on
 # inotify, to be able to serve more requests.
-CONFD_CONFIG_RELOAD_RATELIMIT = 250000
+CONFD_CONFIG_RELOAD_RATELIMIT = _constants.CONFD_CONFIG_RELOAD_RATELIMIT
 
 # Magic number prepended to all confd queries.
 # This allows us to distinguish different types of confd protocols and handle
 # them. For example by changing this we can move the whole payload to be
 # compressed, or move away from json.
-CONFD_MAGIC_FOURCC = "plj0"
+CONFD_MAGIC_FOURCC = _constants.CONFD_MAGIC_FOURCC
 
 # By default a confd request is sent to the minimum between this number and all
 # MCs. 6 was chosen because even in the case of a disastrous 50% response rate,
 # we should have enough answers to be able to compare more than one.
-CONFD_DEFAULT_REQ_COVERAGE = 6
+CONFD_DEFAULT_REQ_COVERAGE = _constants.CONFD_DEFAULT_REQ_COVERAGE
 
 # Timeout in seconds to expire pending query request in the confd client
 # library. We don't actually expect any answer more than 10 seconds after we
 # sent a request.
-CONFD_CLIENT_EXPIRE_TIMEOUT = 10
+CONFD_CLIENT_EXPIRE_TIMEOUT = _constants.CONFD_CLIENT_EXPIRE_TIMEOUT
 
 # Maximum UDP datagram size.
 # On IPv4: 64K - 20 (ip header size) - 8 (udp header size) = 65507
@@ -2204,10 +2148,10 @@ VALID_ALLOC_POLICIES = _constants.VALID_ALLOC_POLICIES
 BLOCKDEV_DRIVER_MANUAL = _constants.BLOCKDEV_DRIVER_MANUAL
 
 # qemu-img path, required for ovfconverter
-QEMUIMG_PATH = _autoconf.QEMUIMG_PATH
+QEMUIMG_PATH = _constants.QEMUIMG_PATH
 
 # Whether htools was enabled at compilation time
-HTOOLS = _autoconf.HTOOLS
+HTOOLS = _constants.HTOOLS
 # The hail iallocator
 IALLOC_HAIL = "hail"
 
@@ -2295,14 +2239,22 @@ DISKSTATS_FILE = _constants.DISKSTATS_FILE
 
 # CPU load collector variables
 STAT_FILE = _constants.STAT_FILE
-CPUAVGLOAD_BUFFER_SIZE = 150
-CPUAVGLOAD_WINDOW_SIZE = 600
+CPUAVGLOAD_BUFFER_SIZE = _constants.CPUAVGLOAD_BUFFER_SIZE
+CPUAVGLOAD_WINDOW_SIZE = _constants.CPUAVGLOAD_WINDOW_SIZE
 
 # Mond's variable for periodical data collection
 MOND_TIME_INTERVAL = _constants.MOND_TIME_INTERVAL
 
+# MonD's latest API version
+MOND_LATEST_API_VERSION = 1
+
+# Timeouts for upgrades
+
+UPGRADE_QUEUE_DRAIN_TIMEOUT = _constants.UPGRADE_QUEUE_DRAIN_TIMEOUT
+UPGRADE_QUEUE_POLL_INTERVAL = _constants.UPGRADE_QUEUE_POLL_INTERVAL
+
 # Do not re-export imported modules
-del re, _vcsversion, _autoconf, _constants, socket, pathutils, compat
+del re, _vcsversion, _constants, socket, pathutils, compat
 
 
 ALLOCATABLE_KEY = "allocatable"