scripts/munin/wiki_pages
Grgoire Dtrez 9a5dd91558 Modification du plugins munin qui compte les pages wiki
Le plugin python utilise l'API de Moinmoin pour faire le comptage des
pages du wiki. On observe un saut dans le graphe, le nouveau script ne
donne pas tout  fait la meme valeur que l'ancien mais la nouvelle
valeur est plus cohrente avec ce que donne la macro [[WikiPages]]. le
nouveau script cre un fichier avec les valeurs (lancement par cron)
et ne fait que renvoy ce fichier lors d'n appelle de munin.
L'ancien script dpassait le timeout...

darcs-hash:20080215161259-69ccb-f99da571cbb3429c1ff62ae078b8a1df0d2f42c9.gz
2008-02-15 17:12:59 +01:00

65 lines
1.6 KiB
Python
Executable file

#!/usr/bin/env python
# -*- coding: utf-8 -*-
fichier = '/var/lib/munin/tmp/wiki_pages'
import sys,os
from MoinMoin.request import RequestCLI
sys.path.insert(0, '/etc/moin')
try :
arg = sys.argv[1]
except :
arg = ''
if arg == "config" :
print 'host_name web.rouge'
print 'graph_category wiki'
print 'graph_title Nombres de pages'
print 'graph_args --base 1000 --lower-limit 0'
print 'graph_vlabel nombre de pages'
print 'total.label Total'
print 'total.draw AREA'
print 'orphelines.label Pages orphelines'
print 'orphelines.draw AREA'
elif arg == "fichier" :
file = open('%s.next' % fichier,'w')
request = RequestCLI(u"wiki.crans.org/")
request.form = request.args = request.setup_args()
_ = request.getText
#if request.mode_getpagelinks: # prevent recursion
#return ''
# find root page.
#from MoinMoin.Page import Page
#rootpage = Page(request, u"FrontPage", is_rootpage=1)
# delete all linked pages from a dict of all pages
#print request.cfg.__dict__
pages = request.rootpage.getPageDict(user='')
orphaned = {}
orphaned.update(pages)
for page in pages.values():
links = page.getPageLinks(request)
for link in links:
if link in orphaned:
del orphaned[link]
# return a list of page links
print
file.write("total.value %d\n" % pages.__len__())
file.write("orphelines.value %d\n" % orphaned.__len__())
file.close()
os.system('mv %s.next %s' % (fichier, fichier))
else :
os.system('cat %s' % fichier)