1
2
3
4
5
6
7
8
9 """
10 Affichages des imprimantes CUPS et de leur état
11 """
12
13 from twisted.python import log
14 from twisted.internet import defer
15 from twisted.internet.utils import getProcessOutput, getProcessValue
16
17 from zephir.monitor.agentmanager.agent import Agent
18 from zephir.monitor.agentmanager.data import HTMLData, TableData
19 from zephir.monitor.agentmanager import status
20 from zephir.monitor.agentmanager.util import status_to_img
21
22
23 PRINTER_CHECK = '/usr/bin/lpstat'
24
26
29 Agent.__init__(self, name, **params)
30 self.table = TableData([
31 ('status', "état", {'align':'center'}, status_to_img),
32 ('printer', "Imprimante", {'align':'left'}, None),
33 ])
34 self.data = [self.table]
35
43
45 l=[]
46 lines = result.splitlines()
47 for line in lines :
48 if line.startswith('printer') :
49 if 'disabled' in line :
50 l.append( { 'printer' : line.split()[1],
51 'status' : 'Off' } )
52 self.measure_data[line.split()[1]] = 'Off'
53 elif 'is idle' in line :
54 l.append( { 'printer' : line.split()[1],
55 'status' : 'On' } )
56 self.measure_data[line.split()[1]] = 'On'
57 if l == [] :
58 l.append( { 'printer' : '** Aucune imprimante détectée **',
59 'status' : '---' } )
60
61 return { 'statistics' : l}
62
63
65 return { 'statistics' : [{ 'printer' : '** Mesure impossible **', 'status' : '---' }] }
66
67
69 Agent.write_data(self)
70 if self.last_measure is not None:
71 self.table.table_data = self.last_measure.value['statistics']
72
73
75
76
77
78
79
80
81
82 return status.OK()
83