summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmunin/publik_count45
1 files changed, 45 insertions, 0 deletions
diff --git a/munin/publik_count b/munin/publik_count
new file mode 100755
index 0000000..16d217a
--- /dev/null
+++ b/munin/publik_count
@@ -0,0 +1,45 @@
+#! /usr/bin/env python
+
+import cPickle
+import os
+import psycopg2
+import sys
+
+if len(sys.argv) == 2 and sys.argv[1] == 'autoconf':
+ print 'yes'
+ sys.exit(0)
+
+if len(sys.argv) == 2 and sys.argv[1] == 'config':
+ print '''graph_title Count of submitted forms
+graph_category entrouvert
+count.label Count
+'''
+ sys.exit(0)
+
+total = 0
+base_dir = '/var/lib/machines/wcs.rbx.prod.entrouvert.org/var/lib/wcs/'
+for tenant in os.listdir(base_dir):
+ if tenant in ('collectstatic', 'scripts', 'skeletons'):
+ continue
+ if tenant.endswith('.invalid'):
+ continue
+ if not os.path.isdir(os.path.join(base_dir, tenant)):
+ continue
+ cfg = cPickle.load(open(os.path.join(base_dir, tenant, 'config.pck')))
+ if not 'postgresql' in cfg:
+ continue
+ psql_cfg = {}
+ for k, v in cfg['postgresql'].items():
+ if v and isinstance(v, basestring):
+ psql_cfg[k] = v
+ pgconn = psycopg2.connect(**psql_cfg)
+ cur = pgconn.cursor()
+ try:
+ cur.execute('''SELECT COUNT(*) from wcs_all_forms WHERE status != 'draft' ''')
+ except psycopg2.ProgrammingError:
+ pass
+ else:
+ total += cur.fetchone()[0]
+ pgconn.close()
+
+print 'count.value', total