1
2
3
4
5
6
7
8 """
9 Affichage des imprimantes CUPS et de leur état
10 """
11 from twisted.internet.utils import getProcessOutput
12 from zephir.monitor.agentmanager.agent import Agent
13 from zephir.monitor.agentmanager.data import TableData
14 from zephir.monitor.agentmanager import status
15 from zephir.monitor.agentmanager.util import status_to_img
16
17
18 PRINTER_CHECK = '/usr/share/zephir/monitor/bin/printers.sh'
19
21
24 Agent.__init__(self, name, **params)
25 self.table = TableData([
26 ('status', "état", {'align':'center'}, status_to_img),
27 ('printer', "Imprimante", {'align':'left'}, None),
28 ])
29 self.data = [self.table]
30
37
39 l = []
40 lines = result.splitlines()
41 for line in lines :
42 if line.startswith('printer') or line.startswith("l’imprimante"):
43 if 'disabled' in line or 'désactivée' in line:
44 l.append( { 'printer' : line.split()[1],
45 'status' : 'Off' } )
46 self.measure_data[line.split()[1]] = 'Off'
47 elif 'is idle' in line or ' activée' in line:
48 l.append( { 'printer' : line.split()[1],
49 'status' : 'On' } )
50 self.measure_data[line.split()[1]] = 'On'
51 if l == [] :
52 l.append( { 'printer' : '** Aucune imprimante détectée **',
53 'status' : '---' } )
54
55 return { 'statistics' : l}
56
58 return { 'statistics' : [{ 'printer' : '** Mesure impossible **',
59 'status' : '---' }] }
61 Agent.write_data(self)
62 if self.last_measure is not None:
63 self.table.table_data = self.last_measure.value['statistics']
64
66
67
68
69
70
71
72
73 return status.OK()
74