docs: def summary():
      '''
      .. versionadded:: 2014.7.0
  
      Show a summary of the last puppet agent run
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' puppet.summary
      '''
  
      puppet = _Puppet()
  
      try:
          with salt.utils.files.fopen(puppet.lastrunfile, 'r') as fp_:
              report = salt.utils.yaml.safe_load(fp_)
          result = {}
  
          if 'time' in report:
              try:
                  result['last_run'] = datetime.datetime.fromtimestamp(
                      int(report['time']['last_run'])).isoformat()
              except (TypeError, ValueError, KeyError):
                  result['last_run'] = 'invalid or missing timestamp'
  
              result['time'] = {}
              for key in ('total', 'config_retrieval'):
                  if key in report['time']:
                      result['time'][key] = report['time'][key]
  
          if 'resources' in report:
              result['resources'] = report['resources']
  
      except salt.utils.yaml.YAMLError as exc:
          raise CommandExecutionError(
              'YAML error parsing puppet run summary: {0}'.format(exc)
          )
      except IOError as exc:
          raise CommandExecutionError(
              'Unable to read puppet run summary: {0}'.format(exc)
          )
  
      return result