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