Method: Puppet::SSL::StateMachine::Wait#next_state

Defined in:
lib/puppet/ssl/state_machine.rb

#next_stateObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

API:

  • private



406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
# File 'lib/puppet/ssl/state_machine.rb', line 406

def next_state
  time = @machine.waitforcert
  if time < 1
    log_error(_("Exiting now because the waitforcert setting is set to 0."))
    exit(1)
  elsif Time.now.to_i > @machine.wait_deadline
    log_error(_("Couldn't fetch certificate from CA server; you might still need to sign this agent's certificate (%{name}). Exiting now because the maxwaitforcert timeout has been exceeded.") % { name: Puppet[:certname] })
    exit(1)
  else
    Puppet.info(_("Will try again in %{time} seconds.") % { time: time })

    # close http/tls and session state before sleeping
    Puppet.runtime[:http].close
    @machine.session = Puppet.runtime[:http].create_session

    @machine.unlock
    Kernel.sleep(time)
    NeedLock.new(@machine)
  end
end