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

Source Code for Module ganeti.constants

 1  # 
 2  # 
 3   
 4  # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Google Inc. 
 5  # All rights reserved. 
 6  # 
 7  # Redistribution and use in source and binary forms, with or without 
 8  # modification, are permitted provided that the following conditions are 
 9  # met: 
10  # 
11  # 1. Redistributions of source code must retain the above copyright notice, 
12  # this list of conditions and the following disclaimer. 
13  # 
14  # 2. Redistributions in binary form must reproduce the above copyright 
15  # notice, this list of conditions and the following disclaimer in the 
16  # documentation and/or other materials provided with the distribution. 
17  # 
18  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
19  # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 
20  # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
21  # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
22  # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
23  # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
24  # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
25  # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
26  # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
27  # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
28  # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
29   
30   
31  """Module holding different constants.""" 
32   
33  # pylint: disable=W0401,W0614 
34  # 
35  # The modules 'ganeti._constants' and 'ganeti._vcsversion' are meant 
36  # to be re-exported but pylint complains because the imported names 
37  # are not actually used in this module. 
38   
39  import re 
40  import socket 
41   
42  from ganeti._constants import * 
43  from ganeti._vcsversion import * 
44  from ganeti import compat 
45  from ganeti import pathutils 
46   
47  ALLOCATABLE_KEY = "allocatable" 
48  FAILED_KEY = "failed" 
49   
50  DAEMONS_LOGFILES = \ 
51      dict((daemon, pathutils.GetLogFilename(DAEMONS_LOGBASE[daemon])) 
52           for daemon in DAEMONS_LOGBASE) 
53   
54  DAEMONS_EXTRA_LOGFILES = \ 
55    dict((daemon, dict((extra, 
56         pathutils.GetLogFilename(DAEMONS_EXTRA_LOGBASE[daemon][extra])) 
57         for extra in DAEMONS_EXTRA_LOGBASE[daemon])) 
58           for daemon in DAEMONS_EXTRA_LOGBASE) 
59   
60  # When the Xen toolstack used is "xl", live migration requires the source host 
61  # to connect to the target host via ssh (xl runs this command). We need to pass 
62  # the command xl runs some extra info so that it can use Ganeti's key 
63  # verification and not fail. Note that this string is incomplete: it must be 
64  # filled with the cluster name before being used. 
65  XL_SSH_CMD = ("ssh -l %s -oGlobalKnownHostsFile=%s" 
66                " -oUserKnownHostsFile=/dev/null" 
67                " -oCheckHostIp=no -oStrictHostKeyChecking=yes" 
68                " -oHostKeyAlias=%%s") % (SSH_LOGIN_USER, 
69                                          pathutils.SSH_KNOWN_HOSTS_FILE) 
70   
71  IE_MAGIC_RE = re.compile(r"^[-_.a-zA-Z0-9]{5,100}$") 
72   
73  # External script validation mask 
74  EXT_PLUGIN_MASK = re.compile("^[a-zA-Z0-9_-]+$") 
75   
76  JOB_ID_TEMPLATE = r"\d+" 
77  JOB_FILE_RE = re.compile(r"^job-(%s)$" % JOB_ID_TEMPLATE) 
78   
79  # HVC_DEFAULTS contains one value 'HV_VNC_PASSWORD_FILE' which is not 
80  # a constant because it depends on an environment variable that is 
81  # used for VClusters.  Therefore, it cannot be automatically generated 
82  # by Haskell at compilation time (given that this environment variable 
83  # might be different at runtime). 
84  HVC_DEFAULTS[HT_XEN_HVM][HV_VNC_PASSWORD_FILE] = pathutils.VNC_PASSWORD_FILE 
85   
86  # Do not re-export imported modules 
87  del re, socket, pathutils, compat 
88