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