rpc_definitions: Add helpers
[ganeti-local] / lib / build / rpc_definitions.py
1 #
2 #
3
4 # Copyright (C) 2006, 2007, 2008, 2009, 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 """RPC definitions for communication between master and node daemons.
22
23 """
24
25
26 # Various time constants for the timeout table
27 TMO_URGENT = 60 # one minute
28 TMO_FAST = 5 * 60 # five minutes
29 TMO_NORMAL = 15 * 60 # 15 minutes
30 TMO_SLOW = 3600 # one hour
31 TMO_4HRS = 4 * 3600
32 TMO_1DAY = 86400
33
34 SINGLE = "single-node"
35 MULTI = "multi-node"
36
37 OBJECT_TO_DICT = "%s.ToDict()"
38 OBJECT_LIST_TO_DICT = "map(lambda d: d.ToDict(), %s)"
39 INST_TO_DICT = "self._InstDict(%s)"
40
41 NODE_TO_DISK_DICT = \
42   ("dict((name, %s) for name, disks in %%s.items())" %
43    (OBJECT_LIST_TO_DICT % "disks"))
44
45 CALLS = {
46   "RpcClientDefault": [
47     ],
48   }