Revision bc826292

b/lib/rapi/client.py
114 114
_NODE_MIGRATE_REQV1 = NODE_MIGRATE_REQV1
115 115
_NODE_EVAC_RES1 = NODE_EVAC_RES1
116 116

  
117
#: Resolver errors
118
ECODE_RESOLVER = "resolver_error"
119

  
120
#: Not enough resources (iallocator failure, disk space, memory, etc.)
121
ECODE_NORES = "insufficient_resources"
122

  
123
#: Temporarily out of resources; operation can be tried again
124
ECODE_TEMP_NORES = "insufficient_resources"
125

  
126
#: Wrong arguments (at syntax level)
127
ECODE_INVAL = "wrong_input"
128

  
129
#: Wrong entity state
130
ECODE_STATE = "wrong_state"
131

  
132
#: Entity not found
133
ECODE_NOENT = "unknown_entity"
134

  
135
#: Entity already exists
136
ECODE_EXISTS = "already_exists"
137

  
138
#: Resource not unique (e.g. MAC or IP duplication)
139
ECODE_NOTUNIQUE = "resource_not_unique"
140

  
141
#: Internal cluster error
142
ECODE_FAULT = "internal_error"
143

  
144
#: Environment error (e.g. node disk error)
145
ECODE_ENVIRON = "environment_error"
146

  
147
#: List of all failure types
148
ECODE_ALL = frozenset([
149
  ECODE_RESOLVER,
150
  ECODE_NORES,
151
  ECODE_TEMP_NORES,
152
  ECODE_INVAL,
153
  ECODE_STATE,
154
  ECODE_NOENT,
155
  ECODE_EXISTS,
156
  ECODE_NOTUNIQUE,
157
  ECODE_FAULT,
158
  ECODE_ENVIRON,
159
  ])
160

  
117 161
# Older pycURL versions don't have all error constants
118 162
try:
119 163
  _CURLE_SSL_CACERT = pycurl.E_SSL_CACERT
b/test/ganeti.rapi.client_unittest.py
34 34
from ganeti import query
35 35
from ganeti import objects
36 36
from ganeti import rapi
37
from ganeti import errors
37 38

  
38 39
import ganeti.rapi.testutils
39 40
from ganeti.rapi import connector
......
136 137
    self.assertEqual(client._NODE_EVAC_RES1, rlib2._NODE_EVAC_RES1)
137 138
    self.assertEqual(client.NODE_EVAC_RES1, rlib2._NODE_EVAC_RES1)
138 139

  
140
  def testErrors(self):
141
    self.assertEqual(client.ECODE_ALL, errors.ECODE_ALL)
142

  
143
    # Make sure all error codes are in both RAPI client and errors module
144
    for name in filter(lambda s: (s.startswith("ECODE_") and s != "ECODE_ALL"),
145
                       dir(client)):
146
      value = getattr(client, name)
147
      self.assertEqual(value, getattr(errors, name))
148
      self.assertTrue(value in client.ECODE_ALL)
149
      self.assertTrue(value in errors.ECODE_ALL)
150

  
139 151

  
140 152
class RapiMockTest(unittest.TestCase):
141 153
  def test404(self):

Also available in: Unified diff