web/views/management.py
branchstable
changeset 4706 6035e96b64dd
parent 4297 5f2081181055
child 4713 785299dfc2c0
equal deleted inserted replaced
4705:8ae13d059850 4706:6035e96b64dd
    10 _ = unicode
    10 _ = unicode
    11 
    11 
    12 from logilab.mtconverter import xml_escape
    12 from logilab.mtconverter import xml_escape
    13 
    13 
    14 from cubicweb.selectors import yes, none_rset, match_user_groups, authenticated_user
    14 from cubicweb.selectors import yes, none_rset, match_user_groups, authenticated_user
    15 from cubicweb.view import AnyRsetView, StartupView, EntityView
    15 from cubicweb.view import AnyRsetView, StartupView, EntityView, View
    16 from cubicweb.uilib import html_traceback, rest_traceback
    16 from cubicweb.uilib import html_traceback, rest_traceback
    17 from cubicweb.web import formwidgets as wdgs
    17 from cubicweb.web import formwidgets as wdgs
    18 from cubicweb.web.formfields import guess_field
    18 from cubicweb.web.formfields import guess_field
    19 
    19 
    20 SUBMIT_MSGID = _('Submit bug report')
    20 SUBMIT_MSGID = _('Submit bug report')
   299             _('base url'), req.base_url()))
   299             _('base url'), req.base_url()))
   300         self.w(u'<tr><th align="left">%s</th><td>%s</td></tr>' % (
   300         self.w(u'<tr><th align="left">%s</th><td>%s</td></tr>' % (
   301             _('data directory url'), req.datadir_url))
   301             _('data directory url'), req.datadir_url))
   302         self.w(u'</table>')
   302         self.w(u'</table>')
   303         self.w(u'<br/>')
   303         self.w(u'<br/>')
       
   304         self.w(u'<h3>%s</h3>' % _('Repository'))
       
   305         self.w(u'<table border="1">')
       
   306         stats = self._cw.vreg.config.repository(None).stats()
       
   307         for element in stats:
       
   308             self.w(u'<tr><th align="left">%s</th><td>%s %s</td></tr>'
       
   309                    % (element, stats[element],
       
   310                       element.endswith('percent') and '%' or '' ))
       
   311         self.w(u'</table>')
       
   312 
   304         # environment and request and server information
   313         # environment and request and server information
   305         try:
   314         try:
   306             # need to remove our adapter and then modpython-apache wrapper...
   315             # need to remove our adapter and then modpython-apache wrapper...
   307             env = req._areq._req.subprocess_env
   316             env = req._areq._req.subprocess_env
   308         except AttributeError:
   317         except AttributeError:
   331                 continue
   340                 continue
   332             self.w(u'<tr><th align="left">%s</th><td>%s</td></tr>'
   341             self.w(u'<tr><th align="left">%s</th><td>%s</td></tr>'
   333                    % (attr, xml_escape(val)))
   342                    % (attr, xml_escape(val)))
   334         self.w(u'</table>')
   343         self.w(u'</table>')
   335 
   344 
       
   345 
       
   346 class CwStats(View):
       
   347     """A textual stats output for monitoring tools such as munin """
       
   348 
       
   349     __regid__ = 'processinfo'
       
   350     content_type = 'text/txt'
       
   351     templatable = False
       
   352     __select__ = none_rset() & match_user_groups('users', 'managers')
       
   353 
       
   354     def call(self):
       
   355         _ = self._cw._
       
   356         stats = self._cw.vreg.config.repository(None).stats()
       
   357         results = []
       
   358         for element in stats:
       
   359             results.append('%s %s' % (element, stats[element]))
       
   360         self.w(u"%s" % _('\n'.join(results)))