Statistics
| Branch: | Tag: | Revision:

root / test / py / mocks.py @ cd3b4ff4

History | View | Annotate | Download (3.2 kB)

1
#
2
#
3

    
4
# Copyright (C) 2006, 2007, 2010, 2011 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 implementing a fake ConfigWriter"""
23

    
24

    
25
import os
26

    
27
from ganeti import utils
28
from ganeti import netutils
29

    
30

    
31
FAKE_CLUSTER_KEY = ("AAAAB3NzaC1yc2EAAAABIwAAAQEAsuGLw70et3eApJ/ZEJkAVZogIrm"
32
                    "EYPQJvb1ll52Ti0nr80Wztxibaa8bYGzY22rQIAloIlePeTGcJceAYK"
33
                    "PZgm0I/Mp2EUGg2NVsQZIzasz6cW0vYuiUbF9GkVlROmvOAykT58RfM"
34
                    "L8RhPrjrQxZc+NXgZtgDugYSZcXHDLUyWM1xKUoYy0MqYG6ZXCC/Zno"
35
                    "RThhmjOJgEmvwrMcTWQjmzH3NeJAxaBsEHR8tiVZ/Y23C/ULWLyNT6R"
36
                    "fB+DE7IovsMQaS+83AK1Teg7RWNyQczachatf/JT8VjUqFYjJepPjMb"
37
                    "vYdB2nQds7/+Bf40C/OpbvnAxna1kVtgFHAo18cQ==")
38

    
39

    
40
class FakeConfig:
41
  """Fake configuration object"""
42

    
43
  def IsCluster(self):
44
    return True
45

    
46
  def GetNodeList(self):
47
    return ["a", "b", "c"]
48

    
49
  def GetRsaHostKey(self):
50
    return FAKE_CLUSTER_KEY
51

    
52
  def GetDsaHostKey(self):
53
    return FAKE_CLUSTER_KEY
54

    
55
  def GetClusterName(self):
56
    return "test.cluster"
57

    
58
  def GetMasterNode(self):
59
    return "a"
60

    
61
  def GetMasterNodeName(self):
62
    return netutils.Hostname.GetSysName()
63

    
64
  def GetDefaultIAllocator(Self):
65
    return "testallocator"
66

    
67
  def GetNodeName(self, node_uuid):
68
    if node_uuid in self.GetNodeList():
69
      return "node_%s.example.com" % (node_uuid,)
70
    else:
71
      return None
72

    
73
  def GetNodeNames(self, node_uuids):
74
    return map(self.GetNodeName, node_uuids)
75

    
76

    
77
class FakeProc:
78
  """Fake processor object"""
79

    
80
  def Log(self, msg, *args, **kwargs):
81
    pass
82

    
83
  def LogWarning(self, msg, *args, **kwargs):
84
    pass
85

    
86
  def LogInfo(self, msg, *args, **kwargs):
87
    pass
88

    
89
  def LogStep(self, current, total, message):
90
    pass
91

    
92

    
93
class FakeGLM:
94
  """Fake global lock manager object"""
95

    
96
  def list_owned(self, level):
97
    return set()
98

    
99

    
100
class FakeContext:
101
  """Fake context object"""
102

    
103
  def __init__(self):
104
    self.cfg = FakeConfig()
105
    self.glm = FakeGLM()
106

    
107

    
108
class FakeGetentResolver:
109
  """Fake runtime.GetentResolver"""
110

    
111
  def __init__(self):
112
    # As we nomally don't run under root we use our own uid/gid for all
113
    # fields. This way we don't run into permission denied problems.
114
    uid = os.getuid()
115
    gid = os.getgid()
116

    
117
    self.masterd_uid = uid
118
    self.masterd_gid = gid
119
    self.confd_uid = uid
120
    self.confd_gid = gid
121
    self.rapi_uid = uid
122
    self.rapi_gid = gid
123
    self.noded_uid = uid
124
    self.noded_gid = gid
125

    
126
    self.daemons_gid = gid
127
    self.admin_gid = gid
128

    
129
  def LookupUid(self, uid):
130
    return "user%s" % uid
131

    
132
  def LookupGid(self, gid):
133
    return "group%s" % gid