Revision 9ba38706

b/lib/cli.py
36 36
from ganeti import errors
37 37
from ganeti import constants
38 38
from ganeti import opcodes
39
from ganeti import luxi
39
import ganeti.rpc.errors as rpcerr
40 40
import ganeti.rpc.node as rpc
41 41
from ganeti import ssh
42 42
from ganeti import compat
......
2440 2440
    obuf.write("Parameter Error: %s" % msg)
2441 2441
  elif isinstance(err, errors.ParameterError):
2442 2442
    obuf.write("Failure: unknown/wrong parameter name '%s'" % msg)
2443
  elif isinstance(err, luxi.NoMasterError):
2443
  elif isinstance(err, rpcerr.NoMasterError):
2444 2444
    if err.args[0] == pathutils.MASTER_SOCKET:
2445 2445
      daemon = "the master daemon"
2446 2446
    elif err.args[0] == pathutils.QUERY_SOCKET:
......
2449 2449
      daemon = "socket '%s'" % str(err.args[0])
2450 2450
    obuf.write("Cannot communicate with %s.\nIs the process running"
2451 2451
               " and listening for connections?" % daemon)
2452
  elif isinstance(err, luxi.TimeoutError):
2452
  elif isinstance(err, rpcerr.TimeoutError):
2453 2453
    obuf.write("Timeout while talking to the master daemon. Jobs might have"
2454 2454
               " been submitted and will continue to run even if the call"
2455 2455
               " timed out. Useful commands in this situation are \"gnt-job"
2456 2456
               " list\", \"gnt-job cancel\" and \"gnt-job watch\". Error:\n")
2457 2457
    obuf.write(msg)
2458
  elif isinstance(err, luxi.PermissionError):
2458
  elif isinstance(err, rpcerr.PermissionError):
2459 2459
    obuf.write("It seems you don't have permissions to connect to the"
2460 2460
               " master daemon.\nPlease retry as a different user.")
2461
  elif isinstance(err, luxi.ProtocolError):
2461
  elif isinstance(err, rpcerr.ProtocolError):
2462 2462
    obuf.write("Unhandled protocol error while talking to the master daemon:\n"
2463 2463
               "%s" % msg)
2464 2464
  elif isinstance(err, errors.JobLost):
......
2543 2543

  
2544 2544
  try:
2545 2545
    result = func(options, args)
2546
  except (errors.GenericError, luxi.ProtocolError,
2546
  except (errors.GenericError, rpcerr.ProtocolError,
2547 2547
          JobSubmittedException), err:
2548 2548
    result, err_msg = FormatError(err)
2549 2549
    logging.exception("Error during command processing")
......
3706 3706
        ToStderr("Job %s%s has been archived, cannot check its result",
3707 3707
                 jid, self._IfName(name, " for %s"))
3708 3708
        success = False
3709
      except (errors.GenericError, luxi.ProtocolError), err:
3709
      except (errors.GenericError, rpcerr.ProtocolError), err:
3710 3710
        _, job_result = FormatError(err)
3711 3711
        success = False
3712 3712
        # the error message will always be shown, verbose or not
b/lib/luxi.py
33 33
from ganeti import objects
34 34
import ganeti.rpc.client as cl
35 35
from ganeti.rpc.transport import Transport
36
import ganeti.rpc.errors
37 36

  
38 37
__all__ = [
39
  # functions:
40
  "ProtocolError",
41
  "ConnectionClosedError",
42
  "TimeoutError",
43
  "RequestError",
44
  "NoMasterError",
45
  "PermissionError",
46 38
  # classes:
47 39
  "Client"
48 40
  ]
......
74 66
DEF_RWTO = constants.LUXI_DEF_RWTO
75 67
WFJC_TIMEOUT = constants.LUXI_WFJC_TIMEOUT
76 68

  
77
# "Legacy" re-exports.
78
ProtocolError = ganeti.rpc.errors.ProtocolError
79
ConnectionClosedError = ganeti.rpc.errors.ConnectionClosedError
80
TimeoutError = ganeti.rpc.errors.TimeoutError
81
RequestError = ganeti.rpc.errors.RequestError
82
NoMasterError = ganeti.rpc.errors.NoMasterError
83
PermissionError = ganeti.rpc.errors.PermissionError
84

  
85 69

  
86 70
class Client(cl.AbstractClient):
87 71
  """High-level client implementation.
b/lib/rapi/baserlib.py
30 30
import logging
31 31

  
32 32
from ganeti import luxi
33
import ganeti.rpc.errors as rpcerr
33 34
from ganeti import rapi
34 35
from ganeti import http
35 36
from ganeti import errors
......
366 367
    # Could be a function, pylint: disable=R0201
367 368
    try:
368 369
      return self._client_cls(address=address)
369
    except luxi.NoMasterError, err:
370
    except rpcerr.NoMasterError, err:
370 371
      raise http.HttpBadGateway("Can't connect to master daemon: %s" % err)
371
    except luxi.PermissionError:
372
    except rpcerr.PermissionError:
372 373
      raise http.HttpInternalServerError("Internal error: no permission to"
373 374
                                         " connect to the master daemon")
374 375

  
......
391 392
      raise http.HttpServiceUnavailable("Job queue is full, needs archiving")
392 393
    except errors.JobQueueDrainError:
393 394
      raise http.HttpServiceUnavailable("Job queue is drained, cannot submit")
394
    except luxi.NoMasterError, err:
395
    except rpcerr.NoMasterError, err:
395 396
      raise http.HttpBadGateway("Master seems to be unreachable: %s" % err)
396
    except luxi.PermissionError:
397
    except rpcerr.PermissionError:
397 398
      raise http.HttpInternalServerError("Internal error: no permission to"
398 399
                                         " connect to the master daemon")
399
    except luxi.TimeoutError, err:
400
    except rpcerr.TimeoutError, err:
400 401
      raise http.HttpGatewayTimeout("Timeout while talking to the master"
401 402
                                    " daemon: %s" % err)
402 403

  
b/lib/server/masterd.py
48 48
from ganeti import jqueue
49 49
from ganeti import locking
50 50
from ganeti import luxi
51
import ganeti.rpc.errors as rpcerr
51 52
from ganeti import utils
52 53
from ganeti import errors
53 54
from ganeti import ssconf
......
94 95

  
95 96
    try:
96 97
      (method, args, ver) = rpccl.ParseRequest(message)
97
    except luxi.ProtocolError, err:
98
    except rpcerr.ProtocolError, err:
98 99
      logging.error("Protocol Error: %s", err)
99 100
      client.close_log()
100 101
      return
b/lib/server/rapi.py
43 43
from ganeti import http
44 44
from ganeti import daemon
45 45
from ganeti import ssconf
46
from ganeti import luxi
46
import ganeti.rpc.errors as rpcerr
47 47
from ganeti import serializer
48 48
from ganeti import compat
49 49
from ganeti import utils
......
195 195

  
196 196
    try:
197 197
      result = ctx.handler_fn()
198
    except luxi.TimeoutError:
198
    except rpcerr.TimeoutError:
199 199
      raise http.HttpGatewayTimeout()
200
    except luxi.ProtocolError, err:
200
    except rpcerr.ProtocolError, err:
201 201
      raise http.HttpBadGateway(str(err))
202 202

  
203 203
    req.resp_headers[http.HTTP_CONTENT_TYPE] = http.HTTP_APP_JSON
b/lib/watcher/__init__.py
42 42
from ganeti import errors
43 43
from ganeti import opcodes
44 44
from ganeti import cli
45
from ganeti import luxi
45
import ganeti.rpc.node as rpc
46
import ganeti.rpc.errors as rpcerr
46 47
from ganeti import rapi
47 48
from ganeti import netutils
48 49
from ganeti import qlang
......
524 525
    # this is, from cli.GetClient, a not-master case
525 526
    raise NotMasterError("Not on master node (%s)" % err)
526 527

  
527
  except luxi.NoMasterError, err:
528
  except rpcerr.NoMasterError, err:
528 529
    if not try_restart:
529 530
      raise
530 531

  
b/test/py/ganeti.rapi.rlib2_unittest.py
33 33
from ganeti import compat
34 34
from ganeti import http
35 35
from ganeti import query
36
from ganeti import luxi
36
import ganeti.rpc.errors as rpcerr
37 37
from ganeti import errors
38 38
from ganeti import rapi
39 39

  
......
107 107
class TestClientConnectError(unittest.TestCase):
108 108
  @staticmethod
109 109
  def _FailingClient(address=None):
110
    raise luxi.NoMasterError("test")
110
    raise rpcerr.NoMasterError("test")
111 111

  
112 112
  def test(self):
113 113
    resources = [

Also available in: Unified diff