def main():
    if (diskstats.OS_NAME != 'Linux'):
        print('diskstats plugin currently works for Linux only')
        print('os_name: %s' % (diskstats.os_name))
        print('Finished')
        return

    logging.basicConfig(level=logging.INFO)
    diskstats.get_dev_list()
    diskstats.dev_stats_cache = diskstats.collect_diskstats()
    logging.info('netstats_ftest: dev_list: %s' % (diskstats.dev_list))
    logging.debug('netstats_ftest: dev_stats_cache: %s'
                  % (diskstats.dev_stats_cache))
    print('netstats_ftest: ... sleeping for 10 sec...')
    time.sleep(10)
    diskstats.dev_stats_current = diskstats.collect_diskstats()
    logging.debug('netstats_ftest: dev_stats_cur: %s'
                  % (diskstats.dev_stats_current))
    metric_names = ['iops_rw', 'bytes_ps_read', 'bytes_ps_write']

    print_header()
    metric_key_vals = {}
    metric_vals = []
    for i in diskstats.dev_list:
        metric_key_vals = diskstats.calc_metrics(i)
        logging.debug('metric_key_vals: %s' % (metric_key_vals))
        metric_vals = [metric_key_vals[k] for k in metric_names]
        dev_pretty_prints(i, metric_vals)
        logging.debug('metric_vals: %s' % (metric_vals))
def main():
    if (diskstats.OS_NAME != 'Linux'):
        print('diskstats plugin currently works for Linux only')
        print('os_name: %s' % (diskstats.os_name))
        print('Finished')
        return

    logging.basicConfig(level=logging.INFO)
    diskstats.get_dev_list()
    diskstats.dev_stats_cache = diskstats.collect_diskstats()
    logging.info('netstats_ftest: dev_list: %s' % (diskstats.dev_list))
    logging.debug('netstats_ftest: dev_stats_cache: %s' %
                  (diskstats.dev_stats_cache))
    print('netstats_ftest: ... sleeping for 10 sec...')
    time.sleep(10)
    diskstats.dev_stats_current = diskstats.collect_diskstats()
    logging.debug('netstats_ftest: dev_stats_cur: %s' %
                  (diskstats.dev_stats_current))
    metric_names = ['iops_rw', 'bytes_ps_read', 'bytes_ps_write']

    print_header()
    metric_key_vals = {}
    metric_vals = []
    for i in diskstats.dev_list:
        metric_key_vals = diskstats.calc_metrics(i)
        logging.debug('metric_key_vals: %s' % (metric_key_vals))
        metric_vals = [metric_key_vals[k] for k in metric_names]
        dev_pretty_prints(i, metric_vals)
        logging.debug('metric_vals: %s' % (metric_vals))
    def test_3_diskstats_metrics_calc(self):
        diskstats.dev_stats_cache = diskstats.collect_diskstats()
        diskstats.dev_stats_current = diskstats.collect_diskstats()
        metrics_key_vals = diskstats.calc_metrics(diskstats.dev_list[0])
        dev_metrics_vals = metrics_key_vals.values()

        num_metrics_keys = len(diskstats.diskstat_metrics)
        num_metrics_vals = len(dev_metrics_vals)

        try:
            self.assertEqual(num_metrics_keys, num_metrics_vals, "number of metric names not equals to vals")
            self.assertEqual(metrics_key_vals["util_pct"], 0.0, "wrong util_pct")
            self.assertEqual(metrics_key_vals["bytes_per_write"], None, "wrong bytes_per_write value")
        except:
            print("del_t: %f" % (diskstats.calc_del_t(diskstats.dev_list[0])))
            print("metris_key_vals: %s" % (metrics_key_vals))
            print("Exception: %s" % (sys.exc_info()[0]))
            raise
  def test_3_diskstats_metrics_calc(self):
    diskstats.dev_stats_cache = diskstats.collect_diskstats()
    diskstats.dev_stats_current = diskstats.collect_diskstats()
    metrics_key_vals = diskstats.calc_metrics(diskstats.dev_list[0])
    dev_metrics_vals = metrics_key_vals.values()

    num_metrics_keys = len(diskstats.diskstat_metrics)
    num_metrics_vals = len(dev_metrics_vals)

    try:
      self.assertEqual(num_metrics_keys, num_metrics_vals,
                       'number of metric names not equals to vals')
      self.assertEqual(metrics_key_vals['util_pct'], 0.0, 'wrong util_pct')
      self.assertEqual(metrics_key_vals['bytes_per_write'], None,
                       'wrong bytes_per_write value')
    except:
      print('del_t: %f' % (diskstats.calc_del_t(diskstats.dev_list[0])))
      print('metris_key_vals: %s' % (metrics_key_vals))
      print('Exception: %s' % (sys.exc_info()[0]))
      raise