Code Duplication    Length = 27-29 lines in 2 locations

plumd/plugins/readers/linux/proc.py 2 locations

@@ 261-289 (lines=29) @@
258
        return result
259
260
261
    def proc_net_dev(self):
262
        skip = self.config.get('skip_proc_net_dev')
263
        cols = self.config.get('net_dev_cols')
264
        result = plumd.Result("net")
265
        fname = "/proc/net/dev"
266
        dat = {}
267
        # read and process /proc/stat
268
        try:
269
            dat = get_file_map(fname, 0, 0)
270
        except Exception as e:
271
            tb = traceback.format_exc()
272
            self.log.error("proc_net_dev: exception: {0}: {1}".format(e, tb))
273
            return result
274
        ts = time.time()
275
        for key, val in dat.items():
276
            key = key.replace(":", "")
277
            if key in skip:
278
                continue
279
            if len(val) < len(cols):
280
                #self.log.error("proc_net_dev: invalid entry: {0}".format(val))
281
                continue
282
            for mname in cols:
283
                if len(val) < 1:
284
                    break
285
                mval = int(val.popleft())
286
                mstr = "{0}.{1}".format(key, mname)
287
                dval = self.calc.per_second(mstr, mval, ts)
288
                result.add(plumd.Int(mstr, dval))
289
        return result
290
291
292
    def proc_net_snmp(self):
@@ 232-258 (lines=27) @@
229
        return result
230
231
232
    def proc_diskstats(self):
233
        skip = self.config.get('skip_proc_diskstats')
234
        # times in ms
235
        cols = self.config.get('diskstats_cols')
236
        result = plumd.Result("diskstats")
237
        fname = "/proc/diskstats"
238
        dat = {}
239
        # read and process /proc/stat
240
        try:
241
            dat = get_file_map(fname, 2, 0)
242
        except Exception as e:
243
            tb = traceback.format_exc()
244
            self.log.error("proc_diskstats: exception: {0}: {1}".format(e, tb))
245
            return result
246
        ts = time.time()
247
        for key, val in dat.items():
248
            if key in skip:
249
                continue
250
            if len(val) != 13:
251
                self.log.error("proc_diskstats: invalid entry: {0}".format(val))
252
                continue
253
            for mname in cols:
254
                mval = int(val.popleft())
255
                mstr = "{0}.{1}".format(key, mname)
256
                dval = self.calc.per_second(mstr, mval, ts)
257
                result.add(plumd.Int(mstr, dval))
258
        return result
259
260
261
    def proc_net_dev(self):