~oubiwann/txloadbalancer/1.1.0

« back to all changes in this revision

Viewing changes to txlb/admin/pages.py

  • Committer: Duncan McGreggor
  • Date: 2008-07-05 00:47:52 UTC
  • Revision ID: oubiwann@rivendel-20080705004752-43wvkcefyprqd8sp
* Moved read-only check into base class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
    isLeaf = 1
22
22
    unauthorizedPage = static.Data(template.unauth, 'text/html')
23
23
 
 
24
 
24
25
    def render(self, request):
25
26
        request.setResponseCode(http.UNAUTHORIZED)
26
27
        request.setHeader(
48
49
        resource.Resource.__init__(self)
49
50
        self.parent = parent
50
51
 
 
52
 
51
53
    def getHeader(self, refreshURL='', msg=''):
52
54
        """
53
55
 
62
64
            txlb.name, refresh, txlb.name, self.parent.serverVersion,
63
65
            socket.gethostname()) + msg
64
66
 
 
67
 
65
68
    def getBody(self):
66
69
        """
67
70
        Subclasses must override this.
68
71
        """
69
72
        raise NotImplemented
70
73
 
 
74
 
71
75
    def getFooter(self, message=''):
72
76
        """
73
77
 
83
87
        """
84
88
        raise NotImplemented
85
89
 
 
90
 
86
91
    def render_GET(self, request):
87
92
        """
88
93
 
90
95
        return str(self.getPage(request))
91
96
 
92
97
 
 
98
    def isReadOnly(self):
 
99
        """
 
100
        This check needs to be run before any form submission is processed.
 
101
        """
 
102
        if self.parent.director.isReadOnly:
 
103
            msg = "The load balancer is currently in read-only mode."
 
104
            request.redirect('/all?resultMessage=%s' % urllib.quote(msg))
 
105
            return True
 
106
        return False
 
107
 
 
108
 
93
109
class RunningPage(BasePage):
94
110
    """
95
111
    This class is responsible for presenting the admin UI, in all of it's data
239
255
    tracking object.
240
256
    """
241
257
    def getPage(self, request):
242
 
        if self.parent.director.isReadOnly:
243
 
            msg = "Director is currently in read-only mode."
244
 
            request.redirect('/all?resultMessage=%s' % urllib.quote(msg))
 
258
        if self.isReadOnly():
245
259
            return "OK"
246
260
        serviceName = request.args['service'][0]
247
261
        groupName = request.args['group'][0]