Class: Puppet::ResourceApi::BaseContext

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/resource_api/base_context.rb

Direct Known Subclasses

IOContext, PuppetContext

Instance Method Summary collapse

Constructor Details

#initialize(typename) ⇒ BaseContext

Returns a new instance of BaseContext.



5
6
7
# File 'lib/puppet/resource_api/base_context.rb', line 5

def initialize(typename)
  @typename = typename
end

Instance Method Details

#attribute_changed(title, attribute, is, should, message: nil) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/puppet/resource_api/base_context.rb', line 92

def attribute_changed(title, attribute, is, should, message: nil)
  raise "#{__method__} only accepts a single resource title" if title.respond_to?(:each)
  printable_is = 'nil'
  printable_should = 'nil'
  if is
    printable_is = is.is_a?(Numeric) ? is : "'#{is}'"
  end
  if should
    printable_should = should.is_a?(Numeric) ? should : "'#{should}'"
  end
  notice("#{title}: attribute '#{attribute}' changed from #{printable_is} to #{printable_should}#{message ? ": #{message}" : ''}")
end

#deviceObject



9
10
11
12
13
# File 'lib/puppet/resource_api/base_context.rb', line 9

def device
  # TODO: evaluate facter_url setting for loading config if there is no `current` NetworkDevice
  raise 'no device configured' unless Puppet::Util::NetworkDevice.current
  Puppet::Util::NetworkDevice.current
end

#failed(titles, message: 'Updating has failed') ⇒ Object



105
106
107
108
109
110
111
112
113
# File 'lib/puppet/resource_api/base_context.rb', line 105

def failed(titles, message: 'Updating has failed')
  setup_context(titles)
  begin
    err(message)
    # raise message
  ensure
    @context = nil
  end
end

#failed?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/puppet/resource_api/base_context.rb', line 15

def failed?
  @failed
end

#failing(titles, message: 'Failing') ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/puppet/resource_api/base_context.rb', line 50

def failing(titles, message: 'Failing')
  start_time = Time.now
  setup_context(titles, message)
  begin
    debug('Start')
    yield
    warning("Finished failing in #{format_seconds(Time.now - start_time)} seconds")
  rescue StandardError => e
    err("Failed after #{format_seconds(Time.now - start_time)} seconds: #{e}")
    @failed = true
  ensure
    @context = nil
  end
end

#processed(title, is, should) ⇒ Object



87
88
89
90
# File 'lib/puppet/resource_api/base_context.rb', line 87

def processed(title, is, should)
  raise "#{__method__} only accepts a single resource title" if title.respond_to?(:each)
  notice("Processed #{title} from #{is} to #{should}")
end

#processing(title, is, should, message: 'Processing') ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/puppet/resource_api/base_context.rb', line 65

def processing(title, is, should, message: 'Processing')
  raise "#{__method__} only accepts a single resource title" if title.respond_to?(:each)
  start_time = Time.now
  setup_context(title, message)
  begin
    debug("Starting processing of #{title} from #{is} to #{should}")
    yield
    notice("Finished processing #{title} in #{format_seconds(Time.now - start_time)} seconds: #{should}")
  rescue StandardError => e
    err("Failed processing #{title} after #{format_seconds(Time.now - start_time)} seconds: #{e}")
    @failed = true
  ensure
    @context = nil
  end
end

#send_log(_level, _message) ⇒ Object



115
116
117
# File 'lib/puppet/resource_api/base_context.rb', line 115

def send_log(_level, _message)
  raise 'Received send_log() on an unprepared BaseContext. Use IOContext, or PuppetContext instead.'
end