Statistics
| Branch: | Tag: | Revision:

root / test / mocks.py @ 7578ab0a

History | View | Annotate | Download (2.8 kB)

1 2f31098c Iustin Pop
#
2 a8083063 Iustin Pop
#
3 a8083063 Iustin Pop
4 b705c7a6 Manuel Franceschini
# Copyright (C) 2006, 2007, 2010 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 a8083063 Iustin Pop
    """Fake configuration object"""
42 a8083063 Iustin Pop
43 a8083063 Iustin Pop
    def IsCluster(self):
44 a8083063 Iustin Pop
        return True
45 a8083063 Iustin Pop
46 a8083063 Iustin Pop
    def GetNodeList(self):
47 a8083063 Iustin Pop
        return ["a", "b", "c"]
48 a8083063 Iustin Pop
49 75a5f456 Michael Hanselmann
    def GetHostKey(self):
50 75a5f456 Michael Hanselmann
        return FAKE_CLUSTER_KEY
51 75a5f456 Michael Hanselmann
52 437138c9 Michael Hanselmann
    def GetClusterName(self):
53 437138c9 Michael Hanselmann
        return "test.cluster"
54 437138c9 Michael Hanselmann
55 437138c9 Michael Hanselmann
    def GetMasterNode(self):
56 b705c7a6 Manuel Franceschini
        return netutils.Hostname.GetSysName()
57 437138c9 Michael Hanselmann
58 bd5f214b Apollon Oikonomopoulos
    def GetDefaultIAllocator(Self):
59 bd5f214b Apollon Oikonomopoulos
        return "testallocator"
60 bd5f214b Apollon Oikonomopoulos
61 880478f8 Iustin Pop
62 2395c322 Iustin Pop
class FakeProc:
63 2395c322 Iustin Pop
    """Fake processor object"""
64 2395c322 Iustin Pop
65 7b4c1cb9 Michael Hanselmann
    def Log(self, msg, *args, **kwargs):
66 7b4c1cb9 Michael Hanselmann
        pass
67 7b4c1cb9 Michael Hanselmann
68 3fb4f740 Iustin Pop
    def LogWarning(self, msg, *args, **kwargs):
69 2395c322 Iustin Pop
        pass
70 2395c322 Iustin Pop
71 3fb4f740 Iustin Pop
    def LogInfo(self, msg, *args, **kwargs):
72 2395c322 Iustin Pop
        pass
73 f4555db2 Guido Trotter
74 c071c5b3 Michael Hanselmann
    def LogStep(self, current, total, message):
75 c071c5b3 Michael Hanselmann
        pass
76 c071c5b3 Michael Hanselmann
77 c071c5b3 Michael Hanselmann
78 f4555db2 Guido Trotter
class FakeContext:
79 f4555db2 Guido Trotter
    """Fake context object"""
80 f4555db2 Guido Trotter
81 f4555db2 Guido Trotter
    def __init__(self):
82 f4555db2 Guido Trotter
        self.cfg = FakeConfig()
83 f4555db2 Guido Trotter
        # TODO: decide what features a mock Ganeti Lock Manager must have
84 f4555db2 Guido Trotter
        self.GLM = None
85 e60c73a1 René Nussbaumer
86 e60c73a1 René Nussbaumer
87 e60c73a1 René Nussbaumer
class FakeGetentResolver:
88 e60c73a1 René Nussbaumer
    """Fake runtime.GetentResolver"""
89 e60c73a1 René Nussbaumer
90 e60c73a1 René Nussbaumer
    def __init__(self):
91 e60c73a1 René Nussbaumer
        # As we nomally don't run under root we use our own uid/gid for all
92 e60c73a1 René Nussbaumer
        # fields. This way we don't run into permission denied problems.
93 e60c73a1 René Nussbaumer
        uid = os.getuid()
94 e60c73a1 René Nussbaumer
        gid = os.getgid()
95 e60c73a1 René Nussbaumer
96 e60c73a1 René Nussbaumer
        self.masterd_uid = uid
97 e60c73a1 René Nussbaumer
        self.masterd_gid = gid
98 e60c73a1 René Nussbaumer
        self.confd_uid = uid
99 e60c73a1 René Nussbaumer
        self.confd_gid = gid
100 e60c73a1 René Nussbaumer
        self.rapi_uid = uid
101 e60c73a1 René Nussbaumer
        self.rapi_gid = gid
102 e60c73a1 René Nussbaumer
        self.noded_uid = uid
103 e60c73a1 René Nussbaumer
104 e60c73a1 René Nussbaumer
        self.daemons_gid = gid
105 e60c73a1 René Nussbaumer
        self.admin_gid = gid