Statistics
| Branch: | Tag: | Revision:

root / test / py / mocks.py @ 201ef8b4

History | View | Annotate | Download (3.1 kB)

1 2f31098c Iustin Pop
#
2 a8083063 Iustin Pop
#
3 a8083063 Iustin Pop
4 e8906f7d Iustin Pop
# Copyright (C) 2006, 2007, 2010, 2011 Google Inc.
5 a8083063 Iustin Pop
#
6 a8083063 Iustin Pop
# This program is free software; you can redistribute it and/or modify
7 a8083063 Iustin Pop
# it under the terms of the GNU General Public License as published by
8 a8083063 Iustin Pop
# the Free Software Foundation; either version 2 of the License, or
9 a8083063 Iustin Pop
# (at your option) any later version.
10 a8083063 Iustin Pop
#
11 a8083063 Iustin Pop
# This program is distributed in the hope that it will be useful, but
12 a8083063 Iustin Pop
# WITHOUT ANY WARRANTY; without even the implied warranty of
13 a8083063 Iustin Pop
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 a8083063 Iustin Pop
# General Public License for more details.
15 a8083063 Iustin Pop
#
16 a8083063 Iustin Pop
# You should have received a copy of the GNU General Public License
17 a8083063 Iustin Pop
# along with this program; if not, write to the Free Software
18 a8083063 Iustin Pop
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 a8083063 Iustin Pop
# 02110-1301, USA.
20 a8083063 Iustin Pop
21 a8083063 Iustin Pop
22 a8083063 Iustin Pop
"""Module implementing a fake ConfigWriter"""
23 a8083063 Iustin Pop
24 e60c73a1 René Nussbaumer
25 e60c73a1 René Nussbaumer
import os
26 e60c73a1 René Nussbaumer
27 89e1fc26 Iustin Pop
from ganeti import utils
28 a744b676 Manuel Franceschini
from ganeti import netutils
29 a8083063 Iustin Pop
30 75a5f456 Michael Hanselmann
31 75a5f456 Michael Hanselmann
FAKE_CLUSTER_KEY = ("AAAAB3NzaC1yc2EAAAABIwAAAQEAsuGLw70et3eApJ/ZEJkAVZogIrm"
32 75a5f456 Michael Hanselmann
                    "EYPQJvb1ll52Ti0nr80Wztxibaa8bYGzY22rQIAloIlePeTGcJceAYK"
33 75a5f456 Michael Hanselmann
                    "PZgm0I/Mp2EUGg2NVsQZIzasz6cW0vYuiUbF9GkVlROmvOAykT58RfM"
34 75a5f456 Michael Hanselmann
                    "L8RhPrjrQxZc+NXgZtgDugYSZcXHDLUyWM1xKUoYy0MqYG6ZXCC/Zno"
35 75a5f456 Michael Hanselmann
                    "RThhmjOJgEmvwrMcTWQjmzH3NeJAxaBsEHR8tiVZ/Y23C/ULWLyNT6R"
36 75a5f456 Michael Hanselmann
                    "fB+DE7IovsMQaS+83AK1Teg7RWNyQczachatf/JT8VjUqFYjJepPjMb"
37 75a5f456 Michael Hanselmann
                    "vYdB2nQds7/+Bf40C/OpbvnAxna1kVtgFHAo18cQ==")
38 75a5f456 Michael Hanselmann
39 75a5f456 Michael Hanselmann
40 a8083063 Iustin Pop
class FakeConfig:
41 2d91e6ae Michael Hanselmann
  """Fake configuration object"""
42 a8083063 Iustin Pop
43 2d91e6ae Michael Hanselmann
  def IsCluster(self):
44 2d91e6ae Michael Hanselmann
    return True
45 a8083063 Iustin Pop
46 2d91e6ae Michael Hanselmann
  def GetNodeList(self):
47 2d91e6ae Michael Hanselmann
    return ["a", "b", "c"]
48 a8083063 Iustin Pop
49 2d91e6ae Michael Hanselmann
  def GetHostKey(self):
50 2d91e6ae Michael Hanselmann
    return FAKE_CLUSTER_KEY
51 75a5f456 Michael Hanselmann
52 2d91e6ae Michael Hanselmann
  def GetClusterName(self):
53 2d91e6ae Michael Hanselmann
    return "test.cluster"
54 437138c9 Michael Hanselmann
55 2d91e6ae Michael Hanselmann
  def GetMasterNode(self):
56 1c3231aa Thomas Thrainer
    return "a"
57 1c3231aa Thomas Thrainer
58 1c3231aa Thomas Thrainer
  def GetMasterNodeName(self):
59 2d91e6ae Michael Hanselmann
    return netutils.Hostname.GetSysName()
60 437138c9 Michael Hanselmann
61 2d91e6ae Michael Hanselmann
  def GetDefaultIAllocator(Self):
62 2d91e6ae Michael Hanselmann
    return "testallocator"
63 bd5f214b Apollon Oikonomopoulos
64 1c3231aa Thomas Thrainer
  def GetNodeName(self, node_uuid):
65 1c3231aa Thomas Thrainer
    if node_uuid in self.GetNodeList():
66 1c3231aa Thomas Thrainer
      return "node_%s.example.com" % (node_uuid,)
67 1c3231aa Thomas Thrainer
    else:
68 1c3231aa Thomas Thrainer
      return None
69 1c3231aa Thomas Thrainer
70 1c3231aa Thomas Thrainer
  def GetNodeNames(self, node_uuids):
71 1c3231aa Thomas Thrainer
    return map(self.GetNodeName, node_uuids)
72 1c3231aa Thomas Thrainer
73 880478f8 Iustin Pop
74 2395c322 Iustin Pop
class FakeProc:
75 2d91e6ae Michael Hanselmann
  """Fake processor object"""
76 2395c322 Iustin Pop
77 2d91e6ae Michael Hanselmann
  def Log(self, msg, *args, **kwargs):
78 2d91e6ae Michael Hanselmann
    pass
79 7b4c1cb9 Michael Hanselmann
80 2d91e6ae Michael Hanselmann
  def LogWarning(self, msg, *args, **kwargs):
81 2d91e6ae Michael Hanselmann
    pass
82 2395c322 Iustin Pop
83 2d91e6ae Michael Hanselmann
  def LogInfo(self, msg, *args, **kwargs):
84 2d91e6ae Michael Hanselmann
    pass
85 f4555db2 Guido Trotter
86 2d91e6ae Michael Hanselmann
  def LogStep(self, current, total, message):
87 2d91e6ae Michael Hanselmann
    pass
88 c071c5b3 Michael Hanselmann
89 c071c5b3 Michael Hanselmann
90 e8906f7d Iustin Pop
class FakeGLM:
91 e8906f7d Iustin Pop
  """Fake global lock manager object"""
92 e8906f7d Iustin Pop
93 e8906f7d Iustin Pop
  def list_owned(self, level):
94 e8906f7d Iustin Pop
    return set()
95 e8906f7d Iustin Pop
96 e8906f7d Iustin Pop
97 f4555db2 Guido Trotter
class FakeContext:
98 2d91e6ae Michael Hanselmann
  """Fake context object"""
99 f4555db2 Guido Trotter
100 2d91e6ae Michael Hanselmann
  def __init__(self):
101 2d91e6ae Michael Hanselmann
    self.cfg = FakeConfig()
102 e8906f7d Iustin Pop
    self.glm = FakeGLM()
103 e60c73a1 René Nussbaumer
104 e60c73a1 René Nussbaumer
105 e60c73a1 René Nussbaumer
class FakeGetentResolver:
106 2d91e6ae Michael Hanselmann
  """Fake runtime.GetentResolver"""
107 2d91e6ae Michael Hanselmann
108 2d91e6ae Michael Hanselmann
  def __init__(self):
109 2d91e6ae Michael Hanselmann
    # As we nomally don't run under root we use our own uid/gid for all
110 2d91e6ae Michael Hanselmann
    # fields. This way we don't run into permission denied problems.
111 2d91e6ae Michael Hanselmann
    uid = os.getuid()
112 2d91e6ae Michael Hanselmann
    gid = os.getgid()
113 2d91e6ae Michael Hanselmann
114 2d91e6ae Michael Hanselmann
    self.masterd_uid = uid
115 2d91e6ae Michael Hanselmann
    self.masterd_gid = gid
116 2d91e6ae Michael Hanselmann
    self.confd_uid = uid
117 2d91e6ae Michael Hanselmann
    self.confd_gid = gid
118 2d91e6ae Michael Hanselmann
    self.rapi_uid = uid
119 2d91e6ae Michael Hanselmann
    self.rapi_gid = gid
120 2d91e6ae Michael Hanselmann
    self.noded_uid = uid
121 23b9930c Michael Hanselmann
    self.noded_gid = gid
122 2d91e6ae Michael Hanselmann
123 2d91e6ae Michael Hanselmann
    self.daemons_gid = gid
124 2d91e6ae Michael Hanselmann
    self.admin_gid = gid
125 601dfcbb Michael Hanselmann
126 601dfcbb Michael Hanselmann
  def LookupUid(self, uid):
127 601dfcbb Michael Hanselmann
    return "user%s" % uid
128 601dfcbb Michael Hanselmann
129 601dfcbb Michael Hanselmann
  def LookupGid(self, gid):
130 601dfcbb Michael Hanselmann
    return "group%s" % gid