Bug #19173
closedhost never leaves build mode when token expires during built
Description
When building hosts, the templates get rendered using a token that is valid for a certain amount of time.
This token is also verified in the "built" template, which is suposed to flip the host from "in build" to "build finished".
Thus if you start your deployment while the token was still OK, and it expires during the build, the state will not be switched and the machine will boot in build mode again on next reboot.
The new build will error out, but the machine will remain in the booted broken build system and will not boot from local disc.
The problem is because of:
The unattended "built" template calls "find_host_by_token" which calls "Host.for_token(token).first" (see app/controllers/unattended_controller.rb)
for_token is defined as
scope :for_token, ->(token) { joins(:token).where(:tokens => { :value => token }).where("expires >= ?", Time.now.utc.to_s(:db)).select('hosts.*') }
(in app/models/concerns/hostext/token.rb upstream, app/models/host/managed.rb in satellite 6.2)
thus the host is never found and the "built" mode flip is never executed.
Updated by The Foreman Bot over 7 years ago
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/4508 added
Updated by Anonymous over 7 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 5e38d6363f1bd645dbc23d8c12f4c41e9bac4ea7.
Updated by Marek Hulán over 7 years ago
- Translation missing: en.field_release set to 240