docs: def hpa(disks, size=None):
      '''
      Get/set Host Protected Area settings
  
      T13 INCITS 346-2001 (1367D) defines the BEER (Boot Engineering Extension Record)
      and PARTIES (Protected Area Run Time Interface Extension Services), allowing
      for a Host Protected Area on a disk.
  
      It's often used by OEMS to hide parts of a disk, and for overprovisioning SSD's
  
      .. warning::
          Setting the HPA might clobber your data, be very careful with this on active disks!
  
      .. versionadded:: 2016.3.0
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' disk.hpa /dev/sda
          salt '*' disk.hpa /dev/sda 5%
          salt '*' disk.hpa /dev/sda 10543256
      '''
  
      hpa_data = {}
      for disk, data in hdparms(disks, 'N').items():
          visible, total, status = data.values()[0]
          if visible == total or 'disabled' in status:
              hpa_data[disk] = {
                  'total': total
              }
          else:
              hpa_data[disk] = {
                  'total': total,
                  'visible': visible,
                  'hidden': total - visible
              }
  
      if size is None:
          return hpa_data
  
      for disk, data in hpa_data.items():
          try:
              size = data['total'] - int(size)
          except Exception:
              if '%' in size:
                  size = int(size.strip('%'))
                  size = (100 - size) * data['total']
                  size /= 100
          if size <= 0:
              size = data['total']
  
          _hdparm('--yes-i-know-what-i-am-doing -Np{0} {1}'.format(size, disk))