Sha256: 9384a067131f5da35488e5447d3f4658fe5be581aa2a4aa81f5889d5db7605a6
Contents?: true
Size: 1.46 KB
Versions: 20
Compression:
Stored size: 1.46 KB
Contents
# frozen_string_literal: true require_relative '../../puppet/util/json_lockfile' # This module is responsible for encapsulating the logic for # "disabling" the puppet agent during a run; in other words, # keeping track of enough state to answer the question # "has the puppet agent been administratively disabled?" # # The implementation involves writing a lockfile with JSON # contents, and is considered part of the public Puppet API # because it used by external tools such as mcollective. # # For more information, please see docs on the website. # http://links.puppet.com/agent_lockfiles module Puppet::Agent::Disabler DISABLED_MESSAGE_JSON_KEY = "disabled_message" # Let the daemon run again, freely in the filesystem. def enable Puppet.notice _("Enabling Puppet.") disable_lockfile.unlock end # Stop the daemon from making any catalog runs. def disable(msg = nil) data = {} Puppet.notice _("Disabling Puppet.") unless msg.nil? data[DISABLED_MESSAGE_JSON_KEY] = msg end disable_lockfile.lock(data) end def disabled? disable_lockfile.locked? end def disable_message data = disable_lockfile.lock_data return nil if data.nil? if data.has_key?(DISABLED_MESSAGE_JSON_KEY) return data[DISABLED_MESSAGE_JSON_KEY] end nil end def disable_lockfile @disable_lockfile ||= Puppet::Util::JsonLockfile.new(Puppet[:agent_disabled_lockfile]) @disable_lockfile end private :disable_lockfile end
Version data entries
20 entries across 20 versions & 1 rubygems