docs: def diskstats():
      '''
      .. versionchanged:: 2016.3.2
          Return the disk stats for this minion
  
      .. versionchanged:: 2016.11.4
          Added support for AIX
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' status.diskstats
      '''
      def linux_diskstats():
          '''
          linux specific implementation of diskstats
          '''
          ret = {}
          try:
              with salt.utils.files.fopen('/proc/diskstats', 'r') as fp_:
                  stats = salt.utils.stringutils.to_unicode(fp_.read())
          except IOError:
              pass
          else:
              for line in stats.splitlines():
                  if not line:
                      continue
                  comps = line.split()
                  ret[comps[2]] = {
                      'major': _number(comps[0]),
                      'minor': _number(comps[1]),
                      'device': _number(comps[2]),
                      'reads_issued': _number(comps[3]),
                      'reads_merged': _number(comps[4]),
                      'sectors_read': _number(comps[5]),
                      'ms_spent_reading': _number(comps[6]),
                      'writes_completed': _number(comps[7]),
                      'writes_merged': _number(comps[8]),
                      'sectors_written': _number(comps[9]),
                      'ms_spent_writing': _number(comps[10]),
                      'io_in_progress': _number(comps[11]),
                      'ms_spent_in_io': _number(comps[12]),
                      'weighted_ms_spent_in_io': _number(comps[13])
                  }
          return ret
  
      def generic_diskstats():
          '''
          generic implementation of diskstats
          note: freebsd and sunos
          '''
          ret = {}
          iostat = __salt__['cmd.run']('iostat -xzd').splitlines()
          header = iostat[1]
          for line in iostat[2:]:
              comps = line.split()
              ret[comps[0]] = {}
              for metric, value in zip(header.split()[1:], comps[1:]):
                  ret[comps[0]][metric] = _number(value)
          return ret
  
      def aix_diskstats():
          '''
          AIX specific implementation of diskstats
          '''
          ret = {}
          procn = None
          fields = []
          disk_name = ''
          disk_mode = ''
          for line in __salt__['cmd.run']('iostat -dDV').splitlines():
              # Note: iostat -dDV is per-system
              #
              #System configuration: lcpu=8 drives=1 paths=2 vdisks=2
              #
              #hdisk0          xfer:  %tm_act      bps      tps      bread      bwrtn
              #                          0.0      0.8      0.0        0.0        0.8
              #                read:      rps  avgserv  minserv  maxserv   timeouts      fails
              #                          0.0      2.5      0.3     12.4           0          0
              #               write:      wps  avgserv  minserv  maxserv   timeouts      fails
              #                          0.0      0.3      0.2      0.7           0          0
              #               queue:  avgtime  mintime  maxtime  avgwqsz    avgsqsz     sqfull
              #                          0.3      0.0      5.3      0.0        0.0         0.0
              #--------------------------------------------------------------------------------
              if not line or line.startswith('System') or line.startswith('-----------'):
                  continue
  
              if not re.match(r'\s', line):
                  #have new disk
                  dsk_comps = line.split(':')
                  dsk_firsts = dsk_comps[0].split()
                  disk_name = dsk_firsts[0]
                  disk_mode = dsk_firsts[1]
                  fields = dsk_comps[1].split()
                  ret[disk_name] = []
  
                  procn = len(ret[disk_name])
                  ret[disk_name].append({})
                  ret[disk_name][procn][disk_mode] = {}
                  continue
  
              if ':' in line:
                  comps = line.split(':')
                  fields = comps[1].split()
                  disk_mode = comps[0].lstrip()
                  procn = len(ret[disk_name])
                  ret[disk_name].append({})
                  ret[disk_name][procn][disk_mode] = {}
              else:
                  comps = line.split()
                  for i in range(0, len(fields)):
                      if len(comps) > i:
                          ret[disk_name][procn][disk_mode][fields[i]] = comps[i]
  
          return ret
  
      # dict that return a function that does the right thing per platform
      get_version = {
          'Linux': linux_diskstats,
          'FreeBSD': generic_diskstats,
          'SunOS': generic_diskstats,
          'AIX': aix_diskstats,
      }
  
      errmsg = 'This method is unsupported on the current operating system!'
      return get_version.get(__grains__['kernel'], lambda: errmsg)()