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: 6961 $"
33
34
36 stdscr.addstr(0,0,"Connecting to %s" %
37 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', outputError, "Connection Refused")
72 reactor.callLater(0, reactor.stop)
73
74 def failed(failure):
75 failure.trap(errors.ConnectionFailedError)
76 message = "".join(failure.value.args)
77
78
79
80 reactor.addSystemEventTrigger('after','shutdown', outputError, "Connection Failed: %s" % message)
81 reactor.callLater(0, reactor.stop)
82
83
84 d.addCallback(connected)
85 d.addErrback(refused)
86 d.addErrback(failed)
87