Package ganeti :: Module constants
[hide private]
[frames] | no frames]

Source Code for Module ganeti.constants

  1  # 
  2  # 
  3   
  4  # Copyright (C) 2006, 2007 Google Inc. 
  5  # 
  6  # This program is free software; you can redistribute it and/or modify 
  7  # it under the terms of the GNU General Public License as published by 
  8  # the Free Software Foundation; either version 2 of the License, or 
  9  # (at your option) any later version. 
 10  # 
 11  # This program is distributed in the hope that it will be useful, but 
 12  # WITHOUT ANY WARRANTY; without even the implied warranty of 
 13  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 14  # General Public License for more details. 
 15  # 
 16  # You should have received a copy of the GNU General Public License 
 17  # along with this program; if not, write to the Free Software 
 18  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
 19  # 02110-1301, USA. 
 20   
 21   
 22  """Module holding different constants.""" 
 23   
 24  import re 
 25   
 26  from ganeti import _autoconf 
 27   
 28  # various versions 
 29  PROTOCOL_VERSION = 20 
 30  RELEASE_VERSION = _autoconf.PACKAGE_VERSION 
 31  OS_API_VERSION = 10 
 32  EXPORT_VERSION = 0 
 33  RAPI_VERSION = 2 
 34   
 35   
 36  # Format for CONFIG_VERSION: 
 37  #   01 03 0123 = 01030123 
 38  #   ^^ ^^ ^^^^ 
 39  #   |  |  + Configuration version/revision 
 40  #   |  + Minor version 
 41  #   + Major version 
 42  # 
 43  # It stored as an integer. Make sure not to write an octal number. 
 44   
 45  # BuildVersion and SplitVersion must be in here because we can't import other 
 46  # modules. The cfgupgrade tool must be able to read and write version numbers 
 47  # and thus requires these functions. To avoid code duplication, they're kept in 
 48  # here. 
 49   
50 -def BuildVersion(major, minor, revision):
51 """Calculates int version number from major, minor and revision numbers. 52 53 Returns: int representing version number 54 55 """ 56 assert isinstance(major, int) 57 assert isinstance(minor, int) 58 assert isinstance(revision, int) 59 return (1000000 * major + 60 10000 * minor + 61 1 * revision)
62 63
64 -def SplitVersion(version):
65 """Splits version number stored in an int. 66 67 Returns: tuple; (major, minor, revision) 68 69 """ 70 assert isinstance(version, int) 71 72 (major, remainder) = divmod(version, 1000000) 73 (minor, revision) = divmod(remainder, 10000) 74 75 return (major, minor, revision)
76 77 78 CONFIG_MAJOR = int(_autoconf.VERSION_MAJOR) 79 CONFIG_MINOR = int(_autoconf.VERSION_MINOR) 80 CONFIG_REVISION = 0 81 CONFIG_VERSION = BuildVersion(CONFIG_MAJOR, CONFIG_MINOR, CONFIG_REVISION) 82 83 # file paths 84 DATA_DIR = _autoconf.LOCALSTATEDIR + "/lib/ganeti" 85 RUN_DIR = _autoconf.LOCALSTATEDIR + "/run" 86 RUN_GANETI_DIR = RUN_DIR + "/ganeti" 87 BDEV_CACHE_DIR = RUN_GANETI_DIR + "/bdev-cache" 88 DISK_LINKS_DIR = RUN_GANETI_DIR + "/instance-disks" 89 RUN_DIRS_MODE = 0755 90 SOCKET_DIR = RUN_GANETI_DIR + "/socket" 91 SOCKET_DIR_MODE = 0700 92 # keep RUN_GANETI_DIR first here, to make sure all get created when the node 93 # daemon is started (this takes care of RUN_DIR being tmpfs) 94 SUB_RUN_DIRS = [ RUN_GANETI_DIR, BDEV_CACHE_DIR, DISK_LINKS_DIR ] 95 LOCK_DIR = _autoconf.LOCALSTATEDIR + "/lock" 96 SSCONF_LOCK_FILE = LOCK_DIR + "/ganeti-ssconf.lock" 97 CLUSTER_CONF_FILE = DATA_DIR + "/config.data" 98 SSL_CERT_FILE = DATA_DIR + "/server.pem" 99 RAPI_CERT_FILE = DATA_DIR + "/rapi.pem" 100 WATCHER_STATEFILE = DATA_DIR + "/watcher.data" 101 INSTANCE_UPFILE = RUN_GANETI_DIR + "/instance-status" 102 SSH_KNOWN_HOSTS_FILE = DATA_DIR + "/known_hosts" 103 RAPI_USERS_FILE = DATA_DIR + "/rapi_users" 104 QUEUE_DIR = DATA_DIR + "/queue" 105 ETC_HOSTS = "/etc/hosts" 106 DEFAULT_FILE_STORAGE_DIR = _autoconf.FILE_STORAGE_DIR 107 108 MASTER_SOCKET = SOCKET_DIR + "/ganeti-master" 109 110 # PID files 111 MASTERD_PID = "ganeti-masterd" 112 NODED_PID = "ganeti-noded" 113 RAPI_PID = "ganeti-rapi" 114 115 NODE_INITD_SCRIPT = _autoconf.SYSCONFDIR + "/init.d/ganeti" 116 DEFAULT_NODED_PORT = 1811 117 FIRST_DRBD_PORT = 11000 118 LAST_DRBD_PORT = 14999 119 MASTER_SCRIPT = "ganeti-master" 120 121 LOG_DIR = _autoconf.LOCALSTATEDIR + "/log/ganeti/" 122 LOG_OS_DIR = LOG_DIR + "os" 123 LOG_NODESERVER = LOG_DIR + "node-daemon.log" 124 LOG_WATCHER = LOG_DIR + "watcher.log" 125 LOG_MASTERDAEMON = LOG_DIR + "master-daemon.log" 126 LOG_RAPISERVER = LOG_DIR + "rapi-daemon.log" 127 LOG_COMMANDS = LOG_DIR + "commands.log" 128 LOG_BURNIN = LOG_DIR + "burnin.log" 129 130 OS_SEARCH_PATH = _autoconf.OS_SEARCH_PATH 131 EXPORT_DIR = _autoconf.EXPORT_DIR 132 133 EXPORT_CONF_FILE = "config.ini" 134 135 XEN_KERNEL = _autoconf.XEN_KERNEL 136 XEN_INITRD = _autoconf.XEN_INITRD 137 138 KVM_PATH = _autoconf.KVM_PATH 139 SOCAT_PATH = _autoconf.SOCAT_PATH 140 KVM_MIGRATION_PORT = _autoconf.KVM_MIGRATION_PORT 141 142 VALUE_DEFAULT = "default" 143 VALUE_AUTO = "auto" 144 VALUE_GENERATE = "generate" 145 VALUE_NONE = "none" 146 VALUE_TRUE = "true" 147 VALUE_FALSE = "false" 148 149 # External script validation mask 150 EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$") 151 152 # hooks-related constants 153 HOOKS_BASE_DIR = _autoconf.SYSCONFDIR + "/ganeti/hooks" 154 HOOKS_PHASE_PRE = "pre" 155 HOOKS_PHASE_POST = "post" 156 HOOKS_NAME_CFGUPDATE = "config-update" 157 HOOKS_VERSION = 2 158 159 # hooks subject type (what object type does the LU deal with) 160 HTYPE_CLUSTER = "CLUSTER" 161 HTYPE_NODE = "NODE" 162 HTYPE_INSTANCE = "INSTANCE" 163 164 HKR_SKIP = 0 165 HKR_FAIL = 1 166 HKR_SUCCESS = 2 167 168 # disk template types 169 DT_DISKLESS = "diskless" 170 DT_PLAIN = "plain" 171 DT_DRBD8 = "drbd" 172 DT_FILE = "file" 173 174 # the set of network-mirrored disk templates 175 DTS_NET_MIRROR = frozenset([DT_DRBD8]) 176 177 # the set of non-lvm-based disk templates 178 DTS_NOT_LVM = frozenset([DT_DISKLESS, DT_FILE]) 179 180 # logical disk types 181 LD_LV = "lvm" 182 LD_DRBD8 = "drbd8" 183 LD_FILE = "file" 184 LDS_BLOCK = frozenset([LD_LV, LD_DRBD8]) 185 186 # drbd constants 187 DRBD_HMAC_ALG = "md5" 188 DRBD_NET_PROTOCOL = "C" 189 190 # file backend driver 191 FD_LOOP = "loop" 192 FD_BLKTAP = "blktap" 193 194 # the set of drbd-like disk types 195 LDS_DRBD = frozenset([LD_DRBD8]) 196 197 # disk access mode 198 DISK_RDONLY = "ro" 199 DISK_RDWR = "rw" 200 DISK_ACCESS_SET = frozenset([DISK_RDONLY, DISK_RDWR]) 201 202 # disk replacement mode 203 REPLACE_DISK_PRI = "replace_on_primary" # replace disks on primary 204 REPLACE_DISK_SEC = "replace_on_secondary" # replace disks on secondary 205 REPLACE_DISK_CHG = "replace_new_secondary" # change secondary node 206 207 # lock recalculate mode 208 LOCKS_REPLACE = 'replace' 209 LOCKS_APPEND = 'append' 210 211 # instance creation modes 212 INSTANCE_CREATE = "create" 213 INSTANCE_IMPORT = "import" 214 215 DISK_TEMPLATES = frozenset([DT_DISKLESS, DT_PLAIN, 216 DT_DRBD8, DT_FILE]) 217 218 FILE_DRIVER = frozenset([FD_LOOP, FD_BLKTAP]) 219 220 # import/export config options 221 INISECT_EXP = "export" 222 INISECT_INS = "instance" 223 224 # dynamic device modification 225 226 DDM_ADD = 'add' 227 DDM_REMOVE = 'remove' 228 229 # common exit codes 230 EXIT_SUCCESS = 0 231 EXIT_FAILURE = 1 232 EXIT_NOTCLUSTER = 5 233 EXIT_NOTMASTER = 11 234 EXIT_NODESETUP_ERROR = 12 235 EXIT_CONFIRMATION = 13 # need user confirmation 236 237 # tags 238 TAG_CLUSTER = "cluster" 239 TAG_NODE = "node" 240 TAG_INSTANCE = "instance" 241 MAX_TAG_LEN = 128 242 MAX_TAGS_PER_OBJ = 4096 243 244 # others 245 DEFAULT_BRIDGE = "xen-br0" 246 SYNC_SPEED = 60 * 1024 247 LOCALHOST_IP_ADDRESS = "127.0.0.1" 248 TCP_PING_TIMEOUT = 10 249 GANETI_RUNAS = "root" 250 DEFAULT_VG = "xenvg" 251 BIND_ADDRESS_GLOBAL = "0.0.0.0" 252 MIN_VG_SIZE = 20480 253 DEFAULT_MAC_PREFIX = "aa:00:00" 254 LVM_STRIPECOUNT = _autoconf.LVM_STRIPECOUNT 255 256 # RPC constants 257 (RPC_ENCODING_NONE, 258 RPC_ENCODING_ZLIB_BASE64) = range(2) 259 260 # os related constants 261 OS_VALID_STATUS = "VALID" 262 OS_SCRIPT_CREATE = 'create' 263 OS_SCRIPT_IMPORT = 'import' 264 OS_SCRIPT_EXPORT = 'export' 265 OS_SCRIPT_RENAME = 'rename' 266 OS_SCRIPTS = frozenset([OS_SCRIPT_CREATE, OS_SCRIPT_IMPORT, 267 OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME]) 268 269 # ssh constants 270 SSH_INITD_SCRIPT = _autoconf.SSH_INITD_SCRIPT 271 SSH_CONFIG_DIR = "/etc/ssh/" 272 SSH_HOST_DSA_PRIV = SSH_CONFIG_DIR + "ssh_host_dsa_key" 273 SSH_HOST_DSA_PUB = SSH_HOST_DSA_PRIV + ".pub" 274 SSH_HOST_RSA_PRIV = SSH_CONFIG_DIR + "ssh_host_rsa_key" 275 SSH_HOST_RSA_PUB = SSH_HOST_RSA_PRIV + ".pub" 276 SSH = "ssh" 277 SCP = "scp" 278 279 # reboot types 280 INSTANCE_REBOOT_SOFT = "soft" 281 INSTANCE_REBOOT_HARD = "hard" 282 INSTANCE_REBOOT_FULL = "full" 283 284 REBOOT_TYPES = frozenset([INSTANCE_REBOOT_SOFT, 285 INSTANCE_REBOOT_HARD, 286 INSTANCE_REBOOT_FULL]) 287 288 VTYPE_STRING = 'string' 289 VTYPE_BOOL = 'bool' 290 VTYPE_SIZE = 'size' # size, in MiBs 291 VTYPE_INT = 'int' 292 ENFORCEABLE_TYPES = frozenset([ 293 VTYPE_STRING, 294 VTYPE_BOOL, 295 VTYPE_SIZE, 296 VTYPE_INT, 297 ]) 298 299 # HV parameter names (global namespace) 300 HV_BOOT_ORDER = "boot_order" 301 HV_CDROM_IMAGE_PATH = "cdrom_image_path" 302 HV_NIC_TYPE = "nic_type" 303 HV_DISK_TYPE = "disk_type" 304 HV_VNC_BIND_ADDRESS = "vnc_bind_address" 305 HV_VNC_TLS = "vnc_tls" 306 HV_VNC_X509 = "vnc_x509_path" 307 HV_VNC_X509_VERIFY = "vnc_x509_verify" 308 HV_ACPI = "acpi" 309 HV_PAE = "pae" 310 HV_KERNEL_ARGS = "kernel_args" 311 HV_KERNEL_PATH = "kernel_path" 312 HV_INITRD_PATH = "initrd_path" 313 HV_ROOT_PATH = "root_path" 314 HV_SERIAL_CONSOLE = "serial_console" 315 HV_USB_MOUSE = "usb_mouse" 316 HV_DEVICE_MODEL = "device_model" 317 318 HVS_PARAMETER_TYPES = { 319 HV_BOOT_ORDER: VTYPE_STRING, 320 HV_CDROM_IMAGE_PATH: VTYPE_STRING, 321 HV_NIC_TYPE: VTYPE_STRING, 322 HV_DISK_TYPE: VTYPE_STRING, 323 HV_VNC_BIND_ADDRESS: VTYPE_STRING, 324 HV_VNC_TLS: VTYPE_BOOL, 325 HV_VNC_X509: VTYPE_STRING, 326 HV_VNC_X509_VERIFY: VTYPE_BOOL, 327 HV_ACPI: VTYPE_BOOL, 328 HV_PAE: VTYPE_BOOL, 329 HV_KERNEL_PATH: VTYPE_STRING, 330 HV_KERNEL_ARGS: VTYPE_STRING, 331 HV_INITRD_PATH: VTYPE_STRING, 332 HV_ROOT_PATH: VTYPE_STRING, 333 HV_SERIAL_CONSOLE: VTYPE_BOOL, 334 HV_USB_MOUSE: VTYPE_STRING, 335 HV_DEVICE_MODEL: VTYPE_STRING, 336 } 337 338 HVS_PARAMETERS = frozenset(HVS_PARAMETER_TYPES.keys()) 339 340 # BE parameter names 341 BE_MEMORY = "memory" 342 BE_VCPUS = "vcpus" 343 BE_AUTO_BALANCE = "auto_balance" 344 345 BES_PARAMETER_TYPES = { 346 BE_MEMORY: VTYPE_SIZE, 347 BE_VCPUS: VTYPE_INT, 348 BE_AUTO_BALANCE: VTYPE_BOOL, 349 } 350 351 BES_PARAMETERS = frozenset(BES_PARAMETER_TYPES.keys()) 352 353 # BE GROUP 354 BEGR_DEFAULT = "default" 355 356 # Hypervisor constants 357 HT_XEN_PVM = "xen-pvm" 358 HT_FAKE = "fake" 359 HT_XEN_HVM = "xen-hvm" 360 HT_KVM = "kvm" 361 HYPER_TYPES = frozenset([HT_XEN_PVM, HT_FAKE, HT_XEN_HVM, HT_KVM]) 362 HTS_REQ_PORT = frozenset([HT_XEN_HVM, HT_KVM]) 363 HTS_COPY_VNC_PASSWORD = frozenset([HT_XEN_HVM]) 364 365 VNC_BASE_PORT = 5900 366 VNC_PASSWORD_FILE = _autoconf.SYSCONFDIR + "/ganeti/vnc-cluster-password" 367 VNC_DEFAULT_BIND_ADDRESS = '0.0.0.0' 368 369 # NIC types 370 HT_NIC_RTL8139 = "rtl8139" 371 HT_NIC_NE2K_PCI = "ne2k_pci" 372 HT_NIC_NE2K_ISA = "ne2k_isa" 373 HT_NIC_I82551 = "i82551" 374 HT_NIC_I85557B = "i82557b" 375 HT_NIC_I8259ER = "i82559er" 376 HT_NIC_PCNET = "pcnet" 377 HT_NIC_E1000 = "e1000" 378 HT_NIC_PARAVIRTUAL = HT_DISK_PARAVIRTUAL = "paravirtual" 379 380 HT_HVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI, 381 HT_NIC_NE2K_ISA, HT_NIC_PARAVIRTUAL]) 382 HT_KVM_VALID_NIC_TYPES = frozenset([HT_NIC_RTL8139, HT_NIC_NE2K_PCI, 383 HT_NIC_NE2K_ISA, HT_NIC_I82551, 384 HT_NIC_I85557B, HT_NIC_I8259ER, 385 HT_NIC_PCNET, HT_NIC_E1000, 386 HT_NIC_PARAVIRTUAL]) 387 # Disk types 388 HT_DISK_IOEMU = "ioemu" 389 HT_DISK_IDE = "ide" 390 HT_DISK_SCSI = "scsi" 391 HT_DISK_SD = "sd" 392 HT_DISK_MTD = "mtd" 393 HT_DISK_PFLASH = "pflash" 394 395 HT_HVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IOEMU]) 396 HT_KVM_VALID_DISK_TYPES = frozenset([HT_DISK_PARAVIRTUAL, HT_DISK_IDE, 397 HT_DISK_SCSI, HT_DISK_SD, HT_DISK_MTD, 398 HT_DISK_PFLASH]) 399 400 # Mouse types: 401 HT_MOUSE_MOUSE = "mouse" 402 HT_MOUSE_TABLET = "tablet" 403 404 HT_KVM_VALID_MOUSE_TYPES = frozenset([HT_MOUSE_MOUSE, HT_MOUSE_TABLET]) 405 406 # Boot order 407 HT_BO_CDROM = "cdrom" 408 HT_BO_DISK = "disk" 409 HT_BO_NETWORK = "network" 410 411 HT_KVM_VALID_BO_TYPES = frozenset([HT_BO_CDROM, HT_BO_DISK, HT_BO_NETWORK]) 412 413 # Cluster Verify steps 414 VERIFY_NPLUSONE_MEM = 'nplusone_mem' 415 VERIFY_OPTIONAL_CHECKS = frozenset([VERIFY_NPLUSONE_MEM]) 416 417 # Node verify constants 418 NV_FILELIST = "filelist" 419 NV_HVINFO = "hvinfo" 420 NV_HYPERVISOR = "hypervisor" 421 NV_INSTANCELIST = "instancelist" 422 NV_LVLIST = "lvlist" 423 NV_NODELIST = "nodelist" 424 NV_NODENETTEST = "node-net-test" 425 NV_VERSION = "version" 426 NV_VGLIST = "vglist" 427 NV_DRBDLIST = "drbd-list" 428 429 # Allocator framework constants 430 IALLOCATOR_VERSION = 2 431 IALLOCATOR_DIR_IN = "in" 432 IALLOCATOR_DIR_OUT = "out" 433 IALLOCATOR_MODE_ALLOC = "allocate" 434 IALLOCATOR_MODE_RELOC = "relocate" 435 IALLOCATOR_SEARCH_PATH = _autoconf.IALLOCATOR_SEARCH_PATH 436 IARUN_NOTFOUND = 1 437 IARUN_FAILURE = 2 438 IARUN_SUCCESS = 3 439 440 # Job queue 441 JOB_QUEUE_VERSION = 1 442 JOB_QUEUE_LOCK_FILE = QUEUE_DIR + "/lock" 443 JOB_QUEUE_VERSION_FILE = QUEUE_DIR + "/version" 444 JOB_QUEUE_SERIAL_FILE = QUEUE_DIR + "/serial" 445 JOB_QUEUE_ARCHIVE_DIR = QUEUE_DIR + "/archive" 446 JOB_QUEUE_DRAIN_FILE = QUEUE_DIR + "/drain" 447 JOB_QUEUE_SIZE_HARD_LIMIT = 5000 448 JOB_QUEUE_SIZE_SOFT_LIMIT = JOB_QUEUE_SIZE_HARD_LIMIT * 0.8 449 450 JOB_ID_TEMPLATE = r"\d+" 451 452 # unchanged job return 453 JOB_NOTCHANGED = "nochange" 454 455 # Job status 456 JOB_STATUS_QUEUED = "queued" 457 JOB_STATUS_WAITLOCK = "waiting" 458 JOB_STATUS_CANCELING = "canceling" 459 JOB_STATUS_RUNNING = "running" 460 JOB_STATUS_CANCELED = "canceled" 461 JOB_STATUS_SUCCESS = "success" 462 JOB_STATUS_ERROR = "error" 463 464 # OpCode status 465 # not yet finalized 466 OP_STATUS_QUEUED = "queued" 467 OP_STATUS_WAITLOCK = "waiting" 468 OP_STATUS_CANCELING = "canceling" 469 OP_STATUS_RUNNING = "running" 470 # finalized 471 OP_STATUS_CANCELED = "canceled" 472 OP_STATUS_SUCCESS = "success" 473 OP_STATUS_ERROR = "error" 474 OPS_FINALIZED = frozenset([OP_STATUS_CANCELED, 475 OP_STATUS_SUCCESS, 476 OP_STATUS_ERROR]) 477 478 # Execution log types 479 ELOG_MESSAGE = "message" 480 ELOG_PROGRESS = "progress" 481 482 RAPI_PORT = 5080 483 484 # max dynamic devices 485 MAX_NICS = 8 486 MAX_DISKS = 16 487 488 # SSCONF keys 489 SS_CLUSTER_NAME = "cluster_name" 490 SS_CLUSTER_TAGS = "cluster_tags" 491 SS_FILE_STORAGE_DIR = "file_storage_dir" 492 SS_MASTER_CANDIDATES = "master_candidates" 493 SS_MASTER_IP = "master_ip" 494 SS_MASTER_NETDEV = "master_netdev" 495 SS_MASTER_NODE = "master_node" 496 SS_NODE_LIST = "node_list" 497 SS_OFFLINE_NODES = "offline_nodes" 498 SS_ONLINE_NODES = "online_nodes" 499 SS_INSTANCE_LIST = "instance_list" 500 SS_RELEASE_VERSION = "release_version" 501 502 # cluster wide default parameters 503 DEFAULT_ENABLED_HYPERVISOR = HT_XEN_PVM 504 505 HVC_DEFAULTS = { 506 HT_XEN_PVM: { 507 HV_KERNEL_PATH: "/boot/vmlinuz-2.6-xenU", 508 HV_INITRD_PATH: '', 509 HV_ROOT_PATH: '/dev/sda1', 510 HV_KERNEL_ARGS: 'ro', 511 }, 512 HT_XEN_HVM: { 513 HV_BOOT_ORDER: "cd", 514 HV_CDROM_IMAGE_PATH: '', 515 HV_NIC_TYPE: HT_NIC_RTL8139, 516 HV_DISK_TYPE: HT_DISK_PARAVIRTUAL, 517 HV_VNC_BIND_ADDRESS: '0.0.0.0', 518 HV_ACPI: True, 519 HV_PAE: True, 520 HV_KERNEL_PATH: "/usr/lib/xen/boot/hvmloader", 521 HV_DEVICE_MODEL: "/usr/lib/xen/bin/qemu-dm", 522 }, 523 HT_KVM: { 524 HV_KERNEL_PATH: "/boot/vmlinuz-2.6-kvmU", 525 HV_INITRD_PATH: '', 526 HV_KERNEL_ARGS: 'ro', 527 HV_ROOT_PATH: '/dev/vda1', 528 HV_ACPI: True, 529 HV_SERIAL_CONSOLE: True, 530 HV_VNC_BIND_ADDRESS: '', 531 HV_VNC_TLS: False, 532 HV_VNC_X509: '', 533 HV_VNC_X509_VERIFY: False, 534 HV_CDROM_IMAGE_PATH: '', 535 HV_BOOT_ORDER: HT_BO_DISK, 536 HV_NIC_TYPE: HT_NIC_PARAVIRTUAL, 537 HV_DISK_TYPE: HT_DISK_PARAVIRTUAL, 538 HV_USB_MOUSE: '', 539 }, 540 HT_FAKE: { 541 }, 542 } 543 544 BEC_DEFAULTS = { 545 BE_MEMORY: 128, 546 BE_VCPUS: 1, 547 BE_AUTO_BALANCE: True, 548 } 549 550 MASTER_POOL_SIZE_DEFAULT = 10 551