1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 """connecting to a manager interface"""
23
24 import curses
25
26 from flumotion.admin.admin import AdminModel
27 from flumotion.admin.text.view import AdminTextView
28 from flumotion.common import errors
29
30 from twisted.internet import reactor
31
32 __version__ = "$Rev: 7161 $"
33
34
36 stdscr.addstr(
37 0, 0, "Connecting to %s" % info)
38 stdscr.clrtobot()
39 stdscr.refresh()
40
41 model = AdminModel()
42 d = model.connectToManager(info)
43
44 def outputError(str):
45 print str
46
47 def connected(model):
48 stdscr.addstr(0, 0, "Connected")
49 stdscr.clrtobot()
50 stdscr.refresh()
51
52 try:
53 view = AdminTextView(model, stdscr)
54 reactor.addReader(view)
55 view.show()
56 except Exception:
57
58 stdscr.keypad(0)
59 curses.echo()
60 curses.nocbreak()
61 curses.endwin()
62
63 import traceback
64 traceback.print_exc()
65
66 def refused(failure):
67 failure.trap(errors.ConnectionRefusedError)
68
69
70
71 reactor.addSystemEventTrigger('after', 'shutdown',
72 outputError, "Connection Refused")
73 reactor.callLater(0, reactor.stop)
74
75 def failed(failure):
76 failure.trap(errors.ConnectionFailedError)
77 message = "".join(failure.value.args)
78
79
80
81 reactor.addSystemEventTrigger(
82 'after',
83 'shutdown',
84 outputError, "Connection Failed: %s" % message)
85 reactor.callLater(0, reactor.stop)
86
87
88 d.addCallback(connected)
89 d.addErrback(refused)
90 d.addErrback(failed)
91