ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/pystatgrab/_statgrab.pyx
(Generate patch)

Comparing projects/pystatgrab/_statgrab.pyx (file contents):
Revision 1.9 by tdb, Sat Mar 6 22:11:22 2004 UTC vs.
Revision 1.13 by tdb, Sun May 30 15:32:28 2004 UTC

# Line 1 | Line 1
1   #
2 < # i-scream central monitoring system
2 > # i-scream pystatgrab
3   # http://www.i-scream.org
4   # Copyright (C) 2000-2004 i-scream
5   #
# Line 23 | Line 23
23   ctypedef long time_t
24  
25   cdef extern from "statgrab.h":
26 <    ctypedef struct cpu_states_t:
26 >    cdef extern int sg_init()
27 >    cdef extern int sg_drop_privileges()
28 >
29 >    ctypedef struct sg_host_info:
30 >        char *os_name
31 >        char *os_release
32 >        char *os_version
33 >        char *platform
34 >        char *hostname
35 >        time_t uptime
36 >
37 >    cdef extern sg_host_info *sg_get_host_info()
38 >
39 >    ctypedef struct sg_cpu_stats:
40          long long user
41          long long kernel
42          long long idle
# Line 33 | Line 46 | cdef extern from "statgrab.h":
46          long long total
47          time_t systime
48  
49 <    ctypedef struct cpu_percent_t:
49 >    cdef extern sg_cpu_stats *sg_get_cpu_stats()
50 >    cdef extern sg_cpu_stats *sg_get_cpu_stats_diff()
51 >
52 >    ctypedef struct sg_cpu_percents:
53          float user
54          float kernel
55          float idle
# Line 42 | Line 58 | cdef extern from "statgrab.h":
58          float nice
59          time_t time_taken
60  
61 <    ctypedef struct mem_stat_t:
61 >    cdef extern sg_cpu_percents *sg_get_cpu_percents()
62 >
63 >    ctypedef struct sg_mem_stats:
64          long long total
65          long long free
66          long long used
67          long long cache
68  
69 <    ctypedef struct load_stat_t:
69 >    cdef extern sg_mem_stats *sg_get_mem_stats()
70 >
71 >    ctypedef struct sg_load_stats:
72          double min1
73          double min5
74          double min15
75  
76 <    ctypedef struct user_stat_t:
76 >    cdef extern sg_load_stats *sg_get_load_stats()
77 >
78 >    ctypedef struct sg_user_stats:
79          char *name_list
80          int num_entries
81  
82 <    ctypedef struct swap_stat_t:
82 >    cdef extern sg_user_stats *sg_get_user_stats()
83 >
84 >    ctypedef struct sg_swap_stats:
85          long long total
86          long long used
87          long long free
88  
89 <    ctypedef struct general_stat_t:
66 <        char *os_name
67 <        char *os_release
68 <        char *os_version
69 <        char *platform
70 <        char *hostname
71 <        time_t uptime
89 >    cdef extern sg_swap_stats *sg_get_swap_stats()
90  
91 <    ctypedef struct disk_stat_t:
91 >    ctypedef struct sg_fs_stats:
92          char *device_name
93          char *fs_type
94          char *mnt_point
# Line 81 | Line 99 | cdef extern from "statgrab.h":
99          long long used_inodes
100          long long free_inodes
101  
102 <    ctypedef struct diskio_stat_t:
102 >    cdef extern sg_fs_stats *sg_get_fs_stats(int *entries)
103 >
104 >    ctypedef struct sg_disk_io_stats:
105          char *disk_name
106          long long read_bytes
107          long long write_bytes
108          time_t systime
109  
110 <    ctypedef struct process_stat_t:
111 <        int total
92 <        int running
93 <        int sleeping
94 <        int stopped
95 <        int zombie
110 >    cdef extern sg_disk_io_stats *sg_get_disk_io_stats(int *entries)
111 >    cdef extern sg_disk_io_stats *sg_get_disk_io_stats_diff(int *entries)
112  
113 <    ctypedef struct network_stat_t:
113 >    ctypedef struct sg_network_io_stats:
114          char *interface_name
115          long long tx
116          long long rx
# Line 105 | Line 121 | cdef extern from "statgrab.h":
121          long long collisions
122          time_t systime
123  
124 <    ctypedef enum statgrab_duplex:
125 <        FULL_DUPLEX
110 <        HALF_DUPLEX
111 <        UNKNOWN_DUPLEX
124 >    cdef extern sg_network_io_stats *sg_get_network_io_stats(int *entries)
125 >    cdef extern sg_network_io_stats *sg_get_network_io_stats_diff(int *entries)
126  
127 <    ctypedef struct network_iface_stat_t:
127 >    ctypedef enum sg_iface_duplex:
128 >        SG_IFACE_DUPLEX_FULL
129 >        SG_IFACE_DUPLEX_HALF
130 >        SG_IFACE_DUPLEX_UNKNOWN
131 >
132 >    ctypedef struct sg_network_iface_stats:
133          char *interface_name
134          int speed
135 <        statgrab_duplex dup
135 >        sg_iface_duplex dup
136          int up
137  
138 <    ctypedef struct page_stat_t:
138 >    cdef extern sg_network_iface_stats *sg_get_network_iface_stats(int *entries)
139 >
140 >    ctypedef struct sg_page_stats:
141          long long pages_pagein
142          long long pages_pageout
143          time_t systime
144  
145 <    cdef extern cpu_states_t *get_cpu_totals()
146 <    cdef extern cpu_states_t *get_cpu_diff()
126 <    cdef extern cpu_percent_t *cpu_percent_usage()
127 <    cdef extern mem_stat_t *get_memory_stats()
128 <    cdef extern load_stat_t *get_load_stats()
129 <    cdef extern user_stat_t *get_user_stats()
130 <    cdef extern swap_stat_t *get_swap_stats()
131 <    cdef extern general_stat_t *get_general_stats()
132 <    cdef extern disk_stat_t *get_disk_stats(int *entries)
133 <    cdef extern diskio_stat_t *get_diskio_stats(int *entries)
134 <    cdef extern diskio_stat_t *get_diskio_stats_diff(int *entries)
135 <    cdef extern process_stat_t *get_process_stats()
136 <    cdef extern network_stat_t *get_network_stats(int *entries)
137 <    cdef extern network_stat_t *get_network_stats_diff(int *entries)
138 <    cdef extern network_iface_stat_t *get_network_iface_stats(int *entries)
139 <    cdef extern page_stat_t *get_page_stats()
140 <    cdef extern page_stat_t *get_page_stats_diff()
141 <    cdef extern int statgrab_init()
142 <    cdef extern int statgrab_drop_privileges()
145 >    cdef extern sg_page_stats *sg_get_page_stats()
146 >    cdef extern sg_page_stats *sg_get_page_stats_diff()
147  
148 +    ctypedef struct sg_process_count:
149 +        int total
150 +        int running
151 +        int sleeping
152 +        int stopped
153 +        int zombie
154  
155 < py_FULL_DUPLEX = FULL_DUPLEX
146 < py_HALF_DUPLEX = HALF_DUPLEX
147 < py_UNKNOWN_DUPLEX = UNKNOWN_DUPLEX
155 >    cdef extern sg_process_count *sg_get_process_count()
156  
157  
158 + py_SG_IFACE_DUPLEX_FULL = SG_IFACE_DUPLEX_FULL
159 + py_SG_IFACE_DUPLEX_HALF = SG_IFACE_DUPLEX_HALF
160 + py_SG_IFACE_DUPLEX_UNKNOWN = SG_IFACE_DUPLEX_UNKNOWN
161 +
162 +
163   class Result:
164      def __init__(self, attrs):
165          self.attrs = attrs
# Line 164 | Line 177 | class StatgrabException(Exception):
177          return repr(self.value)
178  
179  
180 < def py_get_cpu_totals():
181 <    cdef cpu_states_t *s
182 <    s = get_cpu_totals()
180 > def py_sg_init():
181 >    if sg_init() == 0:
182 >        return True
183 >    else:
184 >        return False
185 >
186 > def py_sg_drop_privileges():
187 >    if sg_drop_privileges() == 0:
188 >        return True
189 >    else:
190 >        return False
191 >
192 > def py_sg_get_host_info():
193 >    cdef sg_host_info *s
194 >    s = sg_get_host_info()
195      if s == NULL:
196 <        raise StatgrabException, 'get_cpu_totals() returned NULL'
196 >        raise StatgrabException, 'sg_get_host_info() returned NULL'
197      return Result(
198 +        {'os_name': s.os_name,
199 +         'os_release': s.os_release,
200 +         'os_version': s.os_version,
201 +         'platform': s.platform,
202 +         'hostname': s.hostname,
203 +         'uptime': s.uptime,
204 +        }
205 +    )
206 +
207 + def py_sg_get_cpu_stats():
208 +    cdef sg_cpu_stats *s
209 +    s = sg_get_cpu_stats()
210 +    if s == NULL:
211 +        raise StatgrabException, 'sg_get_cpu_stats() returned NULL'
212 +    return Result(
213          {'user': s.user,
214           'kernel': s.kernel,
215           'idle': s.idle,
# Line 181 | Line 221 | def py_get_cpu_totals():
221          }
222      )
223  
224 < def py_get_cpu_diff():
225 <    cdef cpu_states_t *s
226 <    s = get_cpu_diff()
224 > def py_sg_get_cpu_stats_diff():
225 >    cdef sg_cpu_stats *s
226 >    s = sg_get_cpu_stats_diff()
227      if s == NULL:
228 <        raise StatgrabException, 'get_cpu_diff() returned NULL'
228 >        raise StatgrabException, 'sg_get_cpu_stats_diff() returned NULL'
229      return Result(
230          {'user': s.user,
231           'kernel': s.kernel,
# Line 198 | Line 238 | def py_get_cpu_diff():
238          }
239      )
240  
241 < def py_cpu_percent_usage():
242 <    cdef cpu_percent_t *s
243 <    s = cpu_percent_usage()
241 > def py_sg_get_cpu_percents():
242 >    cdef sg_cpu_percents *s
243 >    s = sg_get_cpu_percents()
244      if s == NULL:
245 <        raise StatgrabException, 'cpu_percent_usage() returned NULL'
245 >        raise StatgrabException, 'sg_get_cpu_percents() returned NULL'
246      return Result(
247          {'user': s.user,
248           'kernel': s.kernel,
# Line 214 | Line 254 | def py_cpu_percent_usage():
254          }
255      )
256  
257 < def py_get_memory_stats():
258 <    cdef mem_stat_t *s
259 <    s = get_memory_stats()
257 > def py_sg_get_mem_stats():
258 >    cdef sg_mem_stats *s
259 >    s = sg_get_mem_stats()
260      if s == NULL:
261 <        raise StatgrabException, 'get_memory_stats() returned NULL'
261 >        raise StatgrabException, 'sg_get_mem_stats() returned NULL'
262      return Result(
263          {'total': s.total,
264           'used': s.used,
# Line 227 | Line 267 | def py_get_memory_stats():
267          }
268      )
269  
270 < def py_get_load_stats():
271 <    cdef load_stat_t *s
272 <    s = get_load_stats()
270 > def py_sg_get_load_stats():
271 >    cdef sg_load_stats *s
272 >    s = sg_get_load_stats()
273      if s == NULL:
274 <        raise StatgrabException, 'get_load_stats() returned NULL'
274 >        raise StatgrabException, 'sg_get_load_stats() returned NULL'
275      return Result(
276          {'min1': s.min1,
277           'min5': s.min5,
# Line 239 | Line 279 | def py_get_load_stats():
279          }
280      )
281  
282 < def py_get_user_stats():
283 <    cdef user_stat_t *s
284 <    s = get_user_stats()
282 > def py_sg_get_user_stats():
283 >    cdef sg_user_stats *s
284 >    s = sg_get_user_stats()
285      if s == NULL:
286 <        raise StatgrabException, 'get_user_stats() returned NULL'
286 >        raise StatgrabException, 'sg_get_user_stats() returned NULL'
287      return Result(
288          {'name_list': s.name_list,
289           'num_entries': s.num_entries,
290          }
291      )
292  
293 < def py_get_swap_stats():
294 <    cdef swap_stat_t *s
295 <    s = get_swap_stats()
293 > def py_sg_get_swap_stats():
294 >    cdef sg_swap_stats *s
295 >    s = sg_get_swap_stats()
296      if s == NULL:
297 <        raise StatgrabException, 'get_swap_stats() returned NULL'
297 >        raise StatgrabException, 'sg_get_swap_stats() returned NULL'
298      return Result(
299          {'total': s.total,
300           'used': s.used,
# Line 262 | Line 302 | def py_get_swap_stats():
302          }
303      )
304  
305 < def py_get_general_stats():
306 <    cdef general_stat_t *s
267 <    s = get_general_stats()
268 <    if s == NULL:
269 <        raise StatgrabException, 'get_general_stats() returned NULL'
270 <    return Result(
271 <        {'os_name': s.os_name,
272 <         'os_release': s.os_release,
273 <         'os_version': s.os_version,
274 <         'platform': s.platform,
275 <         'hostname': s.hostname,
276 <         'uptime': s.uptime,
277 <        }
278 <    )
279 <
280 < def py_get_disk_stats():
281 <    cdef disk_stat_t *s
305 > def py_sg_get_fs_stats():
306 >    cdef sg_fs_stats *s
307      cdef int entries
308 <    s = get_disk_stats(&entries)
308 >    s = sg_get_fs_stats(&entries)
309      if s == NULL:
310 <        raise StatgrabException, 'get_disk_stats() returned NULL'
310 >        raise StatgrabException, 'sg_get_fs_stats() returned NULL'
311      list = []
312      for i from 0 <= i < entries:
313          list.append(Result(
# Line 300 | Line 325 | def py_get_disk_stats():
325          s = s + 1
326      return list
327  
328 < def py_get_diskio_stats():
329 <    cdef diskio_stat_t *s
328 > def py_sg_get_disk_io_stats():
329 >    cdef sg_disk_io_stats *s
330      cdef int entries
331 <    s = get_diskio_stats(&entries)
331 >    s = sg_get_disk_io_stats(&entries)
332      if s == NULL:
333 <        raise StatgrabException, 'get_diskio_stats() returned NULL'
333 >        raise StatgrabException, 'sg_get_disk_io_stats() returned NULL'
334      list = []
335      for i from 0 <= i < entries:
336          list.append(Result(
# Line 318 | Line 343 | def py_get_diskio_stats():
343          s = s + 1
344      return list
345  
346 < def py_get_diskio_stats_diff():
347 <    cdef diskio_stat_t *s
346 > def py_sg_get_disk_io_stats_diff():
347 >    cdef sg_disk_io_stats *s
348      cdef int entries
349 <    s = get_diskio_stats_diff(&entries)
349 >    s = sg_get_disk_io_stats_diff(&entries)
350      if s == NULL:
351 <        raise StatgrabException, 'get_diskio_stats_diff() returned NULL'
351 >        raise StatgrabException, 'sg_get_disk_io_stats_diff() returned NULL'
352      list = []
353      for i from 0 <= i < entries:
354          list.append(Result(
# Line 336 | Line 361 | def py_get_diskio_stats_diff():
361          s = s + 1
362      return list
363  
364 < def py_get_process_stats():
365 <    cdef process_stat_t *s
341 <    s = get_process_stats()
342 <    if s == NULL:
343 <        raise StatgrabException, 'get_process_stats() returned NULL'
344 <    return Result(
345 <        {'total': s.total,
346 <         'running': s.running,
347 <         'sleeping': s.sleeping,
348 <         'stopped': s.stopped,
349 <         'zombie': s.zombie,
350 <        }
351 <    )
352 <
353 < def py_get_network_stats():
354 <    cdef network_stat_t *s
364 > def py_sg_get_network_io_stats():
365 >    cdef sg_network_io_stats *s
366      cdef int entries
367 <    s = get_network_stats(&entries)
367 >    s = sg_get_network_io_stats(&entries)
368      if s == NULL:
369 <        raise StatgrabException, 'get_network_stats() returned NULL'
369 >        raise StatgrabException, 'sg_get_network_io_stats() returned NULL'
370      list = []
371      for i from 0 <= i < entries:
372          list.append(Result(
# Line 373 | Line 384 | def py_get_network_stats():
384          s = s + 1
385      return list
386  
387 < def py_get_network_stats_diff():
388 <    cdef network_stat_t *s
387 > def py_sg_get_network_io_stats_diff():
388 >    cdef sg_network_io_stats *s
389      cdef int entries
390 <    s = get_network_stats_diff(&entries)
390 >    s = sg_get_network_io_stats_diff(&entries)
391      if s == NULL:
392 <        raise StatgrabException, 'get_network_stats_diff() returned NULL'
392 >        raise StatgrabException, 'sg_get_network_io_stats_diff() returned NULL'
393      list = []
394      for i from 0 <= i < entries:
395          list.append(Result(
# Line 396 | Line 407 | def py_get_network_stats_diff():
407          s = s + 1
408      return list
409  
410 < def py_get_network_iface_stats():
411 <    cdef network_iface_stat_t *s
410 > def py_sg_get_network_iface_stats():
411 >    cdef sg_network_iface_stats *s
412      cdef int entries
413 <    s = get_network_iface_stats(&entries)
413 >    s = sg_get_network_iface_stats(&entries)
414      if s == NULL:
415 <        raise StatgrabException, 'get_network_iface_stats() returned NULL'
415 >        raise StatgrabException, 'sg_get_network_iface_stats() returned NULL'
416      list = []
417      for i from 0 <= i < entries:
418          list.append(Result(
# Line 414 | Line 425 | def py_get_network_iface_stats():
425          s = s + 1
426      return list
427  
428 < def py_get_page_stats():
429 <    cdef page_stat_t *s
430 <    s = get_page_stats()
428 > def py_sg_get_page_stats():
429 >    cdef sg_page_stats *s
430 >    s = sg_get_page_stats()
431      if s == NULL:
432 <        raise StatgrabException, 'get_page_stats() returned NULL'
432 >        raise StatgrabException, 'sg_get_page_stats() returned NULL'
433      return Result(
434          {'pages_pagein': s.pages_pagein,
435           'pages_pageout': s.pages_pageout,
436          }
437      )
438  
439 < def py_get_page_stats_diff():
440 <    cdef page_stat_t *s
441 <    s = get_page_stats_diff()
439 > def py_sg_get_page_stats_diff():
440 >    cdef sg_page_stats *s
441 >    s = sg_get_page_stats_diff()
442      if s == NULL:
443 <        raise StatgrabException, 'get_page_stats_diff() returned NULL'
443 >        raise StatgrabException, 'sg_get_page_stats_diff() returned NULL'
444      return Result(
445          {'pages_pagein': s.pages_pagein,
446           'pages_pageout': s.pages_pageout,
447          }
448      )
449  
450 < def py_statgrab_init():
451 <    return statgrab_init()
452 <
453 < def py_statgrab_drop_privileges():
454 <    return statgrab_drop_privileges()
450 > def py_sg_get_process_count():
451 >    cdef sg_process_count *s
452 >    s = sg_get_process_count()
453 >    if s == NULL:
454 >        raise StatgrabException, 'sg_get_process_count() returned NULL'
455 >    return Result(
456 >        {'total': s.total,
457 >         'running': s.running,
458 >         'sleeping': s.sleeping,
459 >         'stopped': s.stopped,
460 >         'zombie': s.zombie,
461 >        }
462 >    )

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines