docs: def disable(message=None):
      '''
      .. versionadded:: 2014.7.0
  
      Disable the puppet agent
  
      message
          .. versionadded:: 2015.5.2
  
          Disable message to send to puppet
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' puppet.disable
          salt '*' puppet.disable 'Disabled, contact XYZ before enabling'
      '''
  
      puppet = _Puppet()
  
      if os.path.isfile(puppet.disabled_lockfile):
          return False
      else:
          with salt.utils.files.fopen(puppet.disabled_lockfile, 'w') as lockfile:
              try:
                  # Puppet chokes when no valid json is found
                  msg = '{{"disabled_message":"{0}"}}'.format(message) if message is not None else '{}'
                  lockfile.write(salt.utils.stringutils.to_str(msg))
                  lockfile.close()
                  return True
              except (IOError, OSError) as exc:
                  msg = 'Failed to disable: {0}'.format(exc)
                  log.error(msg)
                  raise CommandExecutionError(msg)