I am back from holidays. Put Rails.logger.warn "XYZ"
in the method. I am interested if it’s getting called, what method it schedules (set_token or expire_token).
Hello,
We are experiencing the exact issue running on foreman 1.24
We run a multiple server environment with multiple smart proxies and our smart proxies are controlled through a DNS record
both our foreman server and our smart proxies are on version 1.24.3
Under:
setting > provisioning
We set token duration to 360
Remote address include all smart proxies IPs and local host ip.
Our foreman/settings.yaml includes:
:unattended: true
Our issue is that we don’t see the token string on a new build (provisioned ) host.
If we cancel the build and run a re-build it will work just fine, but for provisioned hosts from discovery list, our Kickstart PXELinux will omit the token string.
We made a test to see if the foreman_url just don’t have the token or that the token is coming as an empty string and figure out that it’s coming as an empty string.
We added the following to the code:
DEFAULT menu
MENU TITLE Booting into OS installer (ESC to stop)
TIMEOUT <%= timeout %>
ONTIMEOUT installer
# token value is --> <%= @host.token %> <--
LABEL installer
MENU LABEL <%= template_name %>
KERNEL <%= kernel %>
and on the smart proxy we saw the line:
# token value is --> <-- I.e empty string for the token.
After we hit a re-build for that host we got a token between the —> <—
As much as I would like to help, I am unable to reproduce in my environment. If anyone can help debugging this, let me know.
- Go to
/usr/share/foreman
- Find
app/models/concerns/hostext/token.rb
- Make the following change (see below)
- Enable debug mode for logging in
/etc/foreman/settings.yml
- Restart the app:
systemctl restart foreman httpd
diff --git a/app/models/concerns/hostext/token.rb b/app/models/concerns/hostext/token.rb
index 699dab96f..d3aa522ee 100644
--- a/app/models/concerns/hostext/token.rb
+++ b/app/models/concerns/hostext/token.rb
@@ -15,6 +15,10 @@ module Hostext
# this has to happen post validation and before the orchesration queue is starting to
# process, as the token value is required within the tftp config file manipulations
def refresh_token_on_build
+ Rails.logger.warn "XXX settings-unattended >>> #{SETTINGS[:unattended]}"
+ Rails.logger.warn "XXX new_record? >>> #{new_record?}"
+ Rails.logger.warn "XXX build? >>> #{build?}"
+ Rails.logger.warn("XXX errors >>> #{errors&.inspect}") if respond_to?(errors)
return unless SETTINGS[:unattended]
# new server in build mode
set_token if new_record? && build?
Then reproduce the problem and grep the whole transaction using request id from /var/log/foreman/production.log
.
We face this problem as well in our company.
I did as @lzap recommended and I got an error when clicking on “provision” the host:
In the production.log
I can see:
2020-10-20T12:57:38 [W|app|6d14f6f4] XXX settings-unattended >>> true
2020-10-20T12:57:38 [W|app|6d14f6f4] XXX new_record? >>> false
2020-10-20T12:57:38 [W|app|6d14f6f4] XXX build? >>> true
We are seeing the same exact error as marc mentioned:
**Oops, we're sorry but something went wrong** #<ActiveModel::Errors:0x00007f13f17a4480 @base=#<Host::Managed id: 7457, name: "HOSTNAME", last_compile: nil, last_report: "2020-10-20 11:46:44", updated_at: "2020-10-20 11:46:48", created_at: "2020-10-20 11:46:44", root_pass: nil, architecture_id: 1, operatingsystem_id: 12, environment_id: nil, ptable_id: 120, medium_id: 33, build: true, comment: "", disk: "", installed_at: nil, model_id: 2, hostgroup_id: 13, owner_id: 4, owner_type: "User", enabled: true, puppet_ca_proxy_id: nil, managed: true, use_image: nil, image_file: nil, uuid: nil, compute_resource_id: nil, puppet_proxy_id: nil, certname: nil, image_id: nil, organization_id: 3, location_id: 2, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: nil, provision_method: nil, grub_pass: "", discovery_rule_id: nil, global_status: 0, lookup_value_matcher: nil, pxe_loader: "Grub2 UEFI", initiated_at: nil, build_errors: nil>, @messages={}, @details={}> is not a symbol nor a string
I replaced the actual hostname with the strin HOSTNAME.
I did check before the change that we can provision a the host (Which result in en error missing the token)
Thanks that helps, can you add one more line and try again please?
Rails.logger.warn "XXX build? >>> #{old.build?}"
That should give the definite answer. For some reason, discovered host do have build flag set.
Also, can you specify how the host is being provisioned? Normal or auto provisioning? UI or CLI or API? If this is CLI or API send me the full command or request.
After adding that line, this is the output that we are getting:
**Oops, we're sorry but something went wrong** #<ActiveModel::Errors:0x000000000de59428 @base=#<Host::Managed id: 7457, name: "HOSTNAME, last_compile: nil, last_report: "2020-10-20 11:46:44", updated_at: "2020-10-20 11:46:48", created_at: "2020-10-20 11:46:44", root_pass: nil, architecture_id: 1, operatingsystem_id: 12, environment_id: nil, ptable_id: 120, medium_id: 33, build: true, comment: "", disk: "", installed_at: nil, model_id: 2, hostgroup_id: 13, owner_id: 4, owner_type: "User", enabled: true, puppet_ca_proxy_id: nil, managed: true, use_image: nil, image_file: nil, uuid: nil, compute_resource_id: nil, puppet_proxy_id: nil, certname: nil, image_id: nil, organization_id: 3, location_id: 2, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: nil, provision_method: nil, grub_pass: "", discovery_rule_id: nil, global_status: 0, lookup_value_matcher: nil, pxe_loader: "Grub2 UEFI", initiated_at: nil, build_errors: nil>, @messages={}, @details={}> is not a symbol nor a string
We get that output after trying to provision a host using the UI
Thanks
Can you share the line XXX
from production.log
please?
/var/log/foreman # cat production.log |grep 19603
2020-10-27T07:16:22 [W|app|730b9906] 19603 settings-unattended >>> true
2020-10-27T07:16:22 [W|app|730b9906] 19603 new_record? >>> false
2020-10-27T07:16:22 [W|app|730b9906] 19603 build? >>> true
Apply this patch, just the single line you can ignore the helper dev script:
Restart, try again. Report back. I am having hard time to reproduce this.
Reply to this as well.
Hi, after applying the patch we got the following error message:
**Oops, we're sorry but something went wrong** #<ActiveModel::Errors:0x00007f92f1500268 @base=#<Host::Managed id: 7457, name: "HOSTNAME", last_compile: nil, last_report: "2020-10-20 11:46:44", updated_at: "2020-10-20 11:46:48", created_at: "2020-10-20 11:46:44", root_pass: nil, architecture_id: 1, operatingsystem_id: 12, environment_id: nil, ptable_id: 120, medium_id: 33, build: true, comment: "", disk: "", installed_at: nil, model_id: 2, hostgroup_id: 13, owner_id: 4, owner_type: "User", enabled: true, puppet_ca_proxy_id: nil, managed: true, use_image: nil, image_file: nil, uuid: nil, compute_resource_id: nil, puppet_proxy_id: nil, certname: nil, image_id: nil, organization_id: 3, location_id: 2, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: nil, provision_method: nil, grub_pass: "", discovery_rule_id: nil, global_status: 0, lookup_value_matcher: nil, pxe_loader: "Grub2 UEFI", initiated_at: nil, build_errors: nil>, @messages={}, @details={}> is not a symbol nor a string
We are provioning our hosts at the moment using UI.
Choosing the host group and costume the host name.
Wanted to mention that while changing the lines I notised that our code is different from yours (on the PR), wanted to post the code I removed as well
from discover-host file:
76 interfaces << [“eth0”, “122”] if interfaces.empty?
77 primary ||= interfaces.first.first
78 bootif ||= interfaces.first.first
79 json = JSON.parse(File.read(base))
80 json[“foreman_organization”] = organization if organization
81 json[“foreman_location”] = location if location
82 json[“discovery_version”] = version
83 unless preserve_interfaces
84 json[“interfaces”] = interfaces.map{|i| i.first}.join(’,’)
85 interfaces.each do |iface|
86 name, subnet, ipo, mac = iface
87 mac ||= ([“52”] + 5.times.map { ‘%02x’ % rand(0…255) }).join(’:’)
88 ipo ||= rand(1…253)
89 ip = “192.168.#{subnet}.#{ipo}”
90 json[“macaddress_#{name}”] = mac
91 json[“ipaddress_#{name}”] = ip
92 if name == primary
93 json[“macaddress”] = mac
94 json[“ipaddress”] = ip
95 end
96 json[“discovery_bootif”] = mac if name == bootif
97 end
98 end
99 puts JSON.pretty_generate(json)
Also wanted to add production.log output:
2020-10-28T12:24:13 [D|app|93d397d8] Cache read: settings/host_name_validation_regex
2020-10-28T12:24:13 [D|app|93d397d8] Cache generate: settings/host_name_validation_regex
2020-10-28T12:24:13 [D|app|93d397d8] Cache write: settings/host_name_validation_regex
2020-10-28T12:24:13 [D|app|93d397d8] Cache read: settings/host_name_validation_regex
2020-10-28T12:24:13 [D|app|93d397d8] Cache fetch_hit: settings/host_name_validation_regex
2020-10-28T12:24:13 [W|app|93d397d8] 19603 settings-unattended >>> true
2020-10-28T12:24:13 [W|app|93d397d8] 19603 new_record? >>> false
2020-10-28T12:24:13 [W|app|93d397d8] 19603 build? >>> true
2020-10-28T12:24:13 [D|tax|93d397d8] Current location set to Default Location
2020-10-28T12:24:13 [D|tax|93d397d8] Current organization set to none
2020-10-28T12:24:13 [W|app|93d397d8] Action failed
2020-10-28T12:24:13 [D|app|93d397d8] Backtrace for 'Action failed' error (TypeError): #<ActiveModel::Errors:0x00007f92f1500268 @base=#<Host::Managed id: 7457, name: "HOSTNAME", last_compile: nil, last_report: "2020-10-20 11:46:44", updated_at: "2020-10-20 11:46:48", created_at: "2020-10-20 11:46:44", root_pass: nil, architecture_id: 1, operatingsystem_id: 12, environment_id: nil, ptable_id: 120, medium_id: 33, build: true, comment: "", disk: "", installed_at: nil, model_id: 2, hostgroup_id: 13, owner_id: 4, owner_type: "User", enabled: true, puppet_ca_proxy_id: nil, managed: true, use_image: nil, image_file: nil, uuid: nil, compute_resource_id: nil, puppet_proxy_id: nil, certname: nil, image_id: nil, organization_id: 3, location_id: 2, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: nil, provision_method: nil, grub_pass: "", discovery_rule_id: nil, global_status: 0, lookup_value_matcher: nil, pxe_loader: "Grub2 UEFI", initiated_at: nil, build_errors: nil>, @messages={}, @details={}> is not a symbol nor a string
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activemodel-5.2.1/lib/active_model/attribute_methods.rb:447:in `respond_to?'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activemodel-5.2.1/lib/active_model/attribute_methods.rb:447:in `respond_to?'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/attribute_methods.rb:271:in `respond_to?'
/usr/share/foreman/app/models/concerns/hostext/token.rb:21:in `refresh_token_on_build'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:426:in `block in make_lambda'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:247:in `block in halting'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:517:in `block in invoke_after'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:517:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:517:in `invoke_after'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:133:in `run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:816:in `_run_validation_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activemodel-5.2.1/lib/active_model/validations/callbacks.rb:118:in `run_validations!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activemodel-5.2.1/lib/active_model/validations.rb:339:in `valid?'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/validations.rb:67:in `valid?'
/usr/share/foreman/app/models/concerns/orchestration.rb:86:in `valid?'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/validations.rb:84:in `perform_validations'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/validations.rb:46:in `save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:310:in `block (2 levels) in save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:387:in `block in with_transaction_returning_status'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:254:in `block in transaction'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:239:in `block in within_new_transaction'
/opt/rh/rh-ruby25/root/usr/share/ruby/monitor.rb:226:in `mon_synchronize'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:236:in `within_new_transaction'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:254:in `transaction'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:212:in `transaction'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:385:in `with_transaction_returning_status'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:310:in `block in save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:325:in `rollback_active_record_state!'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:309:in `save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/suppressor.rb:44:in `save'
/usr/share/foreman/app/models/concerns/foreman/sti.rb:26:in `save'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/controllers/discovered_hosts_controller.rb:82:in `block in perform_update'
/usr/share/foreman/app/models/taxonomy.rb:61:in `block in no_taxonomy_scope'
/usr/share/foreman/app/models/taxonomy.rb:68:in `block (2 levels) in as_taxonomy'
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:195:in `as_location'
/usr/share/foreman/app/models/taxonomy.rb:67:in `block in as_taxonomy'
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:154:in `as_org'
/usr/share/foreman/app/models/taxonomy.rb:66:in `as_taxonomy'
/usr/share/foreman/app/models/taxonomy.rb:60:in `no_taxonomy_scope'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/controllers/discovered_hosts_controller.rb:79:in `perform_update'
/opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/controllers/discovered_hosts_controller.rb:75:in `update'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/abstract_controller/base.rb:194:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:109:in `block in run_callbacks'
/usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/opt/theforeman/tfm/root/usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/opt/theforeman/tfm/root/usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:136:in `run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/notifications.rb:168:in `block in instrument'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/notifications.rb:168:in `instrument'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/abstract_controller/base.rb:134:in `process'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionview-5.2.1/lib/action_view/rendering.rb:32:in `process'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal.rb:191:in `dispatch'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_controller/metal.rb:252:in `dispatch'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/journey/router.rb:35:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/journey/router.rb:35:in `serve'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/routing/route_set.rb:840:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.14/lib/apipie/static_dispatcher.rb:65:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.14/lib/apipie/extractor/recorder.rb:137:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
/usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/apipie-rails-0.5.14/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
/usr/share/foreman/lib/foreman/middleware/catch_json_parse_errors.rb:9:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/tempfile_reaper.rb:15:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/etag.rb:25:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/conditional_get.rb:38:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/head.rb:12:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
/usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:232:in `context'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:226:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:98:in `run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/rack/logger.rb:38:in `call_app'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/rack/logger.rb:28:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
/usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/method_override.rb:22:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/runtime.rb:22:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/actionpack-5.2.1/lib/action_dispatch/middleware/static.rb:127:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/sendfile.rb:111:in `call'
/opt/theforeman/tfm/root/usr/share/gems/gems/secure_headers-6.3.0/lib/secure_headers/middleware.rb:11:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/engine.rb:524:in `call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `public_send'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/railties-5.2.1/lib/rails/railtie.rb:190:in `method_missing'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/urlmap.rb:68:in `block in call'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `call'
/usr/share/passenger/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
/usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
/usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
/usr/share/passenger/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
/opt/theforeman/tfm/root/usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2020-10-28T12:24:13 [I|app|93d397d8] Rendering common/500.html.erb
2020-10-28T12:24:13 [I|app|93d397d8] Rendered common/500.html.erb (3.3ms)
After removing the Rails.logger.warn from the token.rb file (and using the new Enforce new token during discovery code), we are provisioning our host using UI and see the following on the UI:
rollbacked - Deploy TFTP PXELinux config for hostname
rollbacked - Deploy TFTP PXEGrub2 config for hostname
rollbacked - Deploy TFTP PXEGrub config for hostname
rollbacked - Deploy TFTP iPXE config for hostname
failed - Fetch TFTP boot files for hostname
pending - Rebooting hostname
Box is not getting rebooted and staying in discovery mode, UI screen is going back to Provisioning screen to try and re submit
The error from production log:
2020-10-29T04:37:18 [W|app|686018f3] Rolling back due to a problem: [#<Orchestration::Task:0x00007f42ca7a8ac8 @name="Fetch TFTP boot files for lxtst-ob-074.bloomberg.com", @id="Fetch TFTP boot files for hostname", @status="failed", @priority=25, @action=[#<Nic::Managed id: 8238, mac: "MAC", ip: "IP", type: "Nic::Managed", name: "hostname", host_id: 7458, subnet_id: 3491, domain_id: 2, attrs: {"network"=>"ip", "netmask"=>"netmask", "mtu"=>1500, "lldp_neighbor_chassisid"=>"mac", "lldp_neighbor_portid"=>"Eth1/26", "lldp_neighbor_sysname"=>"drnyod1-cs2a", "lldp_neighbor_mngaddr_ipv4"=>"ip", "lldp_neighbor_pvid"=>1116, "speed"=>"10000", "duplex"=>"full", "port"=>"Direct Attach Copper", "auto_negotiation"=>"false", "wol"=>true}, created_at: "2020-10-28 19:17:24", updated_at: "2020-10-28 19:17:28", provider: nil, username: nil, password: nil, virtual: false, link: true, identifier: "eno49", tag: "", attached_to: "", managed: true, mode: "balance-rr", attached_devices: "", bond_options: "", primary: true, provision: true, compute_attributes: {}, ip6: "", subnet6_id: nil>, :setTFTPBootFiles], @created=1603960637.1111636, @timestamp=2020-10-29 08:37:17 UTC>]
*I replaced the hostname, ips and macs from that output
Please drop all the changes before and only apply the mentioned PR. Restart and try again.
If you encounter an issue, please pastebin both stacktrace and the file from your codebase, it now vastly differs from what I have. The problem you see was in this line (you can now remove all of the logging lines):
Rails.logger.warn("XXX errors >>> #{errors&.inspect}") if respond_to?(errors)
I made a mistake when I wrote it.
So, we removed all Rails logger we added to the code.
Next following replays will include how out discover-host and host_converter.rb files looks like, old and new
Old discover-host:
#!/usr/bin/env ruby
require 'optparse'
require 'json'
require 'rest-client'
def find_base name = "default"
return name if File.exist?(name)
file = File.absolute_path(File.dirname(__FILE__) + "../../test/facts/#{name}.json")
raise "Unable to find file #{file}" unless File.exist?(file)
file
end
base = find_base
version = "3.4.0"
interfaces = []
preserve_interfaces = false
use_facts_endpoint = false
primary = nil
bootif = nil
url = "http://admin:changeme@localhost:3000"
organization = nil
location = nil
OptionParser.new do |opts|
opts.banner = "Usage: discover-host [options]"
opts.on("-jFILE", "--json=FILE", "Base JSON filename") do |v|
base = find_base(v)
end
opts.on("-vVERSION", "--version=VERSION", "Version of the discovery image (defaults to #{version})") do |v|
version = v
end
opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,subnet,ip,mac (can be used multiple times, default: eth0,122,7,AA:BB:CC:DD:EE:FF") do |v|
interfaces << v
end
opts.on("-x", "--[no-]preserve-interfaces", "Preserve interfaces from JSON") do |v|
preserve_interfaces = true
end
opts.on("-a", "--facts", "Use host facts endpoint") do |v|
use_facts_endpoint = true
end
opts.on("-pNAME", "--primary=NAME", "Interface to use as primary (defaults to the first one)") do |v|
primary = v
end
opts.on("-bNAME", "--boot=NAME", "Interface it was booted from (defaults to the first one)") do |v|
bootif = v
end
opts.on("-uURL", "--url=URL", "URL to foreman (#{url} by default)") do |v|
url = v
end
opts.on("-oORGANIZATION", "--organization=ORGANIZATION", "Organization override to discover in (defaults to subnet)") do |v|
organization = v
end
opts.on("-lLOCATION", "--location=LOCATION", "Location override to discover in (defaults to subnet)") do |v|
location = v
end
end.parse!
interfaces << ["eth0", "122"] if interfaces.empty?
primary ||= interfaces.first.first
bootif ||= interfaces.first.first
json = JSON.parse(File.read(base))
json["foreman_organization"] = organization if organization
json["foreman_location"] = location if location
json["discovery_version"] = version
unless preserve_interfaces
json["interfaces"] = interfaces.map{|i| i.first}.join(',')
interfaces.each do |iface|
name, subnet, ipo, mac = iface
mac ||= (["52"] + 5.times.map { '%02x' % rand(0..255) }).join(':')
ipo ||= rand(1..253)
ip = "192.168.#{subnet}.#{ipo}"
json["macaddress_#{name}"] = mac
json["ipaddress_#{name}"] = ip
if name == primary
json["macaddress"] = mac
json["ipaddress"] = ip
end
json["discovery_bootif"] = mac if name == bootif
end
end
puts JSON.pretty_generate(json)
if use_facts_endpoint
endpoint = url + "/api/v2/hosts/facts"
payload = {"facts" => json, "name" => json["hostname"] || json["networking"]["fqdn"]}
else
endpoint = url + "/api/v2/discovered_hosts/facts"
payload = {"facts" => json}
end
resource = RestClient::Resource.new(endpoint, verify_ssl: OpenSSL::SSL::VERIFY_NONE)
response = resource.post(payload.to_json, {content_type: :json, accept: :json})
puts response.code
puts response.body
new discover-host:
#!/usr/bin/env ruby
require 'optparse'
require 'json'
require 'rest-client'
def find_base name = "default"
return name if File.exist?(name)
file = File.absolute_path(File.dirname(__FILE__) + "../../test/facts/#{name}.json")
raise "Unable to find file #{file}" unless File.exist?(file)
file
end
executable = nil
base = find_base
version = "3.4.0"
interfaces = []
preserve_interfaces = false
use_facts_endpoint = false
primary = nil
bootif = nil
url = "http://admin:changeme@localhost:3000"
organization = nil
location = nil
OptionParser.new do |opts|
opts.banner = "Usage: discover-host [options]"
# example:
# discover-host -e "facter --json --custom-dir=../foreman-discovery-image/root/usr/share/fdi/facts"
opts.on("-eFILE", "--exec=FILE", "Execute external facter program") do |v|
executable = v
end
opts.on("-jFILE", "--json=FILE", "Base JSON filename") do |v|
base = find_base(v)
end
opts.on("-vVERSION", "--version=VERSION", "Version of the discovery image (defaults to #{version})") do |v|
version = v
end
opts.on("-iARRAY", "--interface=ARRAY", Array, "Comma separated array: name,subnet,ip,mac (can be used multiple times, default: eth0,122,7,AA:BB:CC:DD:EE:FF") do |v|
interfaces << v
end
opts.on("-x", "--[no-]preserve-interfaces", "Preserve interfaces from JSON") do |v|
preserve_interfaces = true
end
opts.on("-a", "--facts", "Use host facts endpoint") do |v|
use_facts_endpoint = true
end
opts.on("-pNAME", "--primary=NAME", "Interface to use as primary (defaults to the first one)") do |v|
primary = v
end
opts.on("-bNAME", "--boot=NAME", "Interface it was booted from (defaults to the first one)") do |v|
bootif = v
end
opts.on("-uURL", "--url=URL", "URL to foreman (#{url} by default)") do |v|
url = v
end
opts.on("-oORGANIZATION", "--organization=ORGANIZATION", "Organization override to discover in (defaults to subnet)") do |v|
organization = v
end
opts.on("-lLOCATION", "--location=LOCATION", "Location override to discover in (defaults to subnet)") do |v|
location = v
end
end.parse!
if executable
json = JSON.parse(`#{executable}`)
else
interfaces << ["eth0", "192.168.122.0/24"] if interfaces.empty?
primary ||= interfaces.first.first
bootif ||= interfaces.first.first
json = JSON.parse(File.read(base))
json["foreman_organization"] = organization if organization
json["foreman_location"] = location if location
json["discovery_version"] = version
unless preserve_interfaces
json["interfaces"] = interfaces.map{|i| i.first}.join(',')
interfaces.each do |iface|
name, subnet, mac, explicit_ip = iface
mac ||= (["52"] + 5.times.map { '%02x' % rand(0..255) }).join(':')
json["macaddress_#{name}"] = mac
_, prefix = subnet.split('/')
if subnet.include?('.')
random_ip = IPAddr.new(subnet, Socket::AF_INET) | IPAddr.new(rand(2**(32 - prefix.to_i)), Socket::AF_INET)
fact_name = "ipaddress"
else
random_ip = IPAddr.new(subnet, Socket::AF_INET6) | IPAddr.new(rand(2**(32 - prefix.to_i)), Socket::AF_INET6)
fact_name = "ipaddress6"
end
json["#{fact_name}_#{name}"] = explicit_ip ? explicit_ip : random_ip
if name == primary
json["macaddress"] = json["macaddress_#{name}"]
json[fact_name] = json["#{fact_name}_#{name}"]
end
json["discovery_bootif"] = mac if name == bootif
end
end
end
puts JSON.pretty_generate(json)
if use_facts_endpoint
endpoint = url + "/api/v2/hosts/facts"
payload = {"facts" => json, "name" => json["hostname"] || json["networking"]["fqdn"]}
else
endpoint = url + "/api/v2/discovered_hosts/facts"
payload = {"facts" => json}
end
resource = RestClient::Resource.new(endpoint, verify_ssl: OpenSSL::SSL::VERIFY_NONE)
response = resource.post(payload.to_json, {content_type: :json, accept: :json})
puts response.code
puts response.body
old host_converter.rb:
class ForemanDiscovery::HostConverter
# Converts discovered host to managed host without uptading the database.
# Record must be saved explicitly (using save! or update_attributes! or similar).
# Creates shallow copy.
def self.to_managed(original_host, set_managed = true, set_build = true, added_attributes = {})
host = original_host.becomes(::Host::Managed)
host.type = 'Host::Managed'
host.attributes = host.apply_inherited_attributes(added_attributes)
host.set_hostgroup_defaults if host.hostgroup_id.present?
# the following flags can be skipped when parameters are set to false
if set_managed
host.managed = set_managed
host.primary_interface.managed = set_managed
end
# set build only and only on final save (facts are deleted)
set_build_clean_facts(host) if set_build
host
end
def self.set_build_clean_facts(host)
# fact cleaning
if Setting['discovery_clean_facts']
# clean all facts except those starting with "discovery_"
host.define_singleton_method(:clear_facts) do
keep_ids = FactValue.where("host_id = #{host.id}").joins(:fact_name).where("fact_names.name like 'discovery_%'").pluck("fact_values.id")
FactValue.where("host_id = #{host.id} and id not in (?)", keep_ids).delete_all
end
else
# clean no facts (default behavior)
host.define_singleton_method(:clear_facts) {}
end
# set build flag
host.build = true
end
def self.unused_ip_for_subnet(subnet, mac, existing_ip)
ipam = subnet.unused_ip(mac)
raise(::Foreman::Exception.new(N_("IPAM must be configured for subnet '%s'"), subnet)) unless ipam.present?
# None IPAM returns nil - in that case keep the current address
suggested_ip = ipam.suggest_ip
suggested_ip.nil? ? existing_ip : suggested_ip
end
def self.unused_ip_for_host(host, new_subnet = nil, new_subnet6 = nil)
host.interfaces.each do |interface|
next unless interface.managed?
interface.subnet = new_subnet if new_subnet
interface.subnet6 = new_subnet6 if new_subnet6
interface.ip = unused_ip_for_subnet(interface.subnet, interface.mac, interface.ip) if interface.subnet
interface.ip6 = unused_ip_for_subnet(interface.subnet6, interface.mac, interface.ip6) if interface.subnet6
interface.save!
end
end
def self.change_subnet_and_unused_ip(host, hostgroup)
if host.subnet != hostgroup.subnet || host.subnet6 != hostgroup.subnet6
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} do not match hostgroup subnets #{[hostgroup.subnet, hostgroup.subnet6]}"
unused_ip_for_host(host, host.hostgroup.subnet, host.hostgroup.subnet6)
else
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} match hostgroup subnets"
end
end
end
new host_converter.rb:
class ForemanDiscovery::HostConverter
# Converts discovered host to managed host without uptading the database.
# Record must be saved explicitly (using save! or update_attributes! or similar).
# Creates shallow copy.
def self.to_managed(original_host, set_managed = true, set_build = true, added_attributes = {})
host = original_host.becomes(::Host::Managed)
host.type = 'Host::Managed'
host.attributes = host.apply_inherited_attributes(added_attributes)
host.set_hostgroup_defaults if host.hostgroup_id.present?
# the following flags can be skipped when parameters are set to false
if set_managed
host.managed = set_managed
host.primary_interface.managed = set_managed
end
# set build only and only on final save (facts are deleted)
set_build_clean_facts(host) if set_build
host
end
def self.set_build_clean_facts(host)
# fact cleaning
if Setting['discovery_clean_facts']
# clean all facts except those starting with "discovery_"
host.define_singleton_method(:clear_facts) do
keep_ids = FactValue.where("host_id = #{host.id}").joins(:fact_name).where("fact_names.name like 'discovery_%'").pluck("fact_values.id")
FactValue.where("host_id = #{host.id} and id not in (?)", keep_ids).delete_all
end
else
# clean no facts (default behavior)
host.define_singleton_method(:clear_facts) {}
end
# set build flag and call set_token explicitly to force new one
host.build = true
host.set_token
end
def self.unused_ip_for_subnet(subnet, mac, existing_ip)
ipam = subnet.unused_ip(mac)
raise(::Foreman::Exception.new(N_("IPAM must be configured for subnet '%s'"), subnet)) unless ipam.present?
# None IPAM returns nil - in that case keep the current address
suggested_ip = ipam.suggest_ip
suggested_ip.nil? ? existing_ip : suggested_ip
end
def self.unused_ip_for_host(host, new_subnet = nil, new_subnet6 = nil)
host.interfaces.each do |interface|
next unless interface.managed?
interface.subnet = new_subnet if new_subnet
interface.subnet6 = new_subnet6 if new_subnet6
interface.ip = unused_ip_for_subnet(interface.subnet, interface.mac, interface.ip) if interface.subnet
interface.ip6 = unused_ip_for_subnet(interface.subnet6, interface.mac, interface.ip6) if interface.subnet6
interface.save!
end
end
def self.change_subnet_and_unused_ip(host, hostgroup)
if host.subnet != hostgroup.subnet || host.subnet6 != hostgroup.subnet6
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} do not match hostgroup subnets #{[hostgroup.subnet, hostgroup.subnet6]}"
unused_ip_for_host(host, host.hostgroup.subnet, host.hostgroup.subnet6)
else
Rails.logger.debug "Discovered host subnets #{[host.subnet, host.subnet6]} match hostgroup subnets"
end
end
end
We are now able to provision that server but we get the same message that the pre configuration could not be retrived.
That error contain a token but from comparing between the token in the error message and the one I can see in the UI, it’s not the same token.
Would like to add that I used the UI to provision the host.
output from production log from that provision omitted the hostname:
2020-11-02T05:38:07 [D|tax|954fc9bb] Current location set to Default Location
2020-11-02T05:38:07 [D|tax|954fc9bb] Current organization set to none
2020-11-02T05:38:07 [D|app|954fc9bb] Cache read: notification-23
2020-11-02T05:38:07 [D|not|954fc9bb] Cache Hit: notification, reading cache for notification-23
2020-11-02T05:38:07 [D|app|954fc9bb] Body: {"notifications":[]}
2020-11-02T05:38:07 [I|app|954fc9bb] Completed 200 OK in 78ms (Views: 0.3ms | ActiveRecord: 33.6ms)
2020-11-02T05:38:07 [D|app|954fc9bb] Cache write: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3 ({:expires_in=>86400})
2020-11-02T05:39:42 [I|app|452d73e2] Started GET "/notification_recipients" for 10.124.245.64 at 2020-11-02 05:39:42 -0500
2020-11-02T05:39:42 [D|app|452d73e2] Cache read: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3
2020-11-02T05:39:42 [I|app|452d73e2] Processing by NotificationRecipientsController#index as JSON
2020-11-02T05:39:42 [D|app|452d73e2] Cache delete: views/tabs_and_title_records-23
2020-11-02T05:39:42 [D|tax|452d73e2] Current location set to Default Location
2020-11-02T05:39:42 [D|tax|452d73e2] Current organization set to none
2020-11-02T05:39:42 [D|app|452d73e2] Cache read: notification-23
2020-11-02T05:39:42 [D|not|452d73e2] Cache Hit: notification, reading cache for notification-23
2020-11-02T05:39:42 [D|app|452d73e2] Body: {"notifications":[]}
2020-11-02T05:39:42 [I|app|452d73e2] Completed 200 OK in 79ms (Views: 0.2ms | ActiveRecord: 32.4ms)
2020-11-02T05:39:42 [D|app|452d73e2] Cache write: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3 ({:expires_in=>86400})
2020-11-02T05:39:50 [I|app|939e74e4] Started GET "/smart_proxies" for 10.124.245.64 at 2020-11-02 05:39:50 -0500
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3
2020-11-02T05:39:50 [I|app|939e74e4] Processing by SmartProxiesController#index as HTML
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/authorize_login_delegation
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/authorize_login_delegation
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/idle_timeout
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/idle_timeout
2020-11-02T05:39:50 [D|app|939e74e4] Cache delete: views/tabs_and_title_records-23
2020-11-02T05:39:50 [D|tax|939e74e4] Current location set to Default Location
2020-11-02T05:39:50 [D|tax|939e74e4] Current organization set to none
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:39:50 [I|app|939e74e4] Rendering smart_proxies/index.html.erb within layouts/application
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:39:50 [I|app|939e74e4] Rendered common/_pagination.html.erb (1.8ms)
2020-11-02T05:39:50 [I|app|939e74e4] Rendered smart_proxies/index.html.erb within layouts/application (143.8ms)
2020-11-02T05:39:50 [I|app|939e74e4] Rendered common/_searchbar.html.erb (7.2ms)
2020-11-02T05:39:50 [I|app|939e74e4] Rendered layouts/_application_content.html.erb (8.9ms)
2020-11-02T05:39:50 [I|app|939e74e4] Rendering layouts/base.html.erb
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: views/tabs_and_title_records-23 ({:skip_digest=>true})
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/lab_features
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/lab_features
2020-11-02T05:39:50 [D|app|939e74e4] Cache read: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:39:50 [D|app|939e74e4] Cache write: views/tabs_and_title_records-23 ({:skip_digest=>true})
2020-11-02T05:39:50 [I|app|939e74e4] Rendered layouts/base.html.erb (80.2ms)
2020-11-02T05:39:50 [I|app|939e74e4] Completed 200 OK in 452ms (Views: 187.5ms | ActiveRecord: 121.9ms)
2020-11-02T05:39:50 [D|app|939e74e4] Cache write: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3 ({:expires_in=>86400})
2020-11-02T05:40:57 [I|app|9a5c884b] Started GET "/notification_recipients" for 10.124.245.64 at 2020-11-02 05:40:57 -0500
2020-11-02T05:40:57 [D|app|9a5c884b] Cache read: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3
2020-11-02T05:40:57 [I|app|9a5c884b] Processing by NotificationRecipientsController#index as JSON
2020-11-02T05:40:57 [D|app|9a5c884b] Cache delete: views/tabs_and_title_records-23
2020-11-02T05:40:57 [D|tax|9a5c884b] Current location set to Default Location
2020-11-02T05:40:57 [D|tax|9a5c884b] Current organization set to none
2020-11-02T05:40:57 [D|app|9a5c884b] Cache read: notification-23
2020-11-02T05:40:57 [D|not|9a5c884b] Cache Hit: notification, reading cache for notification-23
2020-11-02T05:40:57 [D|app|9a5c884b] Body: {"notifications":[]}
2020-11-02T05:40:57 [I|app|9a5c884b] Completed 200 OK in 96ms (Views: 0.5ms | ActiveRecord: 33.5ms)
2020-11-02T05:40:57 [D|app|9a5c884b] Cache write: _session_id:d5b90eb90677cbd3c4a9dc34c5fa1fd3 ({:expires_in=>86400})
2020-11-02T05:41:41 [I|app|901d2d33] Started GET "/discovered_hosts" for 10.124.245.64 at 2020-11-02 05:41:41 -0500
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e
2020-11-02T05:41:41 [I|app|901d2d33] Processing by DiscoveredHostsController#index as HTML
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/authorize_login_delegation
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/authorize_login_delegation
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/idle_timeout
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/idle_timeout
2020-11-02T05:41:41 [D|app|901d2d33] Cache delete: views/tabs_and_title_records-4
2020-11-02T05:41:41 [D|tax|901d2d33] Current location set to Default Location
2020-11-02T05:41:41 [D|tax|901d2d33] Current organization set to Default Organization
2020-11-02T05:41:41 [I|app|901d2d33] Rendering /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/welcome.html.erb within layouts/application
2020-11-02T05:41:41 [I|app|901d2d33] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/welcome.html.erb within layouts/application (36.1ms)
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/entries_per_page
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:41 [I|app|901d2d33] Rendering /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/index.html.erb within layouts/application
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/discovery_fact_column
2020-11-02T05:41:41 [D|app|901d2d33] Cache generate: settings/discovery_fact_column
2020-11-02T05:41:41 [D|app|901d2d33] Cache write: settings/discovery_fact_column
2020-11-02T05:41:41 [I|app|901d2d33] Rendering text template
2020-11-02T05:41:41 [I|app|901d2d33] Rendered text template (0.0ms)
2020-11-02T05:41:41 [I|app|901d2d33] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/_discovered_hosts_list.html.erb (16.5ms)
2020-11-02T05:41:41 [I|app|901d2d33] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/index.html.erb within layouts/application (23.4ms)
2020-11-02T05:41:41 [I|app|901d2d33] Rendered layouts/_application_content.html.erb (1.6ms)
2020-11-02T05:41:41 [I|app|901d2d33] Rendering layouts/base.html.erb
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/lab_features
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/lab_features
2020-11-02T05:41:41 [D|app|901d2d33] Cache read: settings/entries_per_page
2020-11-02T05:41:41 [D|app|901d2d33] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:41 [D|app|901d2d33] Cache write: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:41:41 [I|app|901d2d33] Rendered layouts/base.html.erb (42.4ms)
2020-11-02T05:41:41 [I|app|901d2d33] Completed 200 OK in 215ms (Views: 61.3ms | ActiveRecord: 37.0ms)
2020-11-02T05:41:41 [D|app|901d2d33] Cache write: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e ({:expires_in=>86400})
2020-11-02T05:41:45 [I|app|3bece479] Started GET "/discovered_hosts" for 10.124.245.64 at 2020-11-02 05:41:45 -0500
2020-11-02T05:41:45 [D|app|3bece479] Cache read: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e
2020-11-02T05:41:45 [I|app|3bece479] Processing by DiscoveredHostsController#index as HTML
2020-11-02T05:41:45 [D|app|3bece479] Cache read: settings/authorize_login_delegation
2020-11-02T05:41:45 [D|app|3bece479] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:41:45 [D|app|3bece479] Cache read: settings/authorize_login_delegation
2020-11-02T05:41:45 [D|app|3bece479] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:41:45 [D|app|3bece479] Cache read: settings/idle_timeout
2020-11-02T05:41:45 [D|app|3bece479] Cache fetch_hit: settings/idle_timeout
2020-11-02T05:41:45 [D|app|3bece479] Cache delete: views/tabs_and_title_records-4
2020-11-02T05:41:45 [D|tax|3bece479] Current location set to Default Location
2020-11-02T05:41:45 [D|tax|3bece479] Current organization set to none
2020-11-02T05:41:45 [D|app|3bece479] Cache read: settings/entries_per_page
2020-11-02T05:41:45 [D|app|3bece479] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/discovery_fact_column
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/discovery_fact_column
2020-11-02T05:41:46 [I|app|3bece479] Rendering /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/index.html.erb within layouts/application
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/discovery_fact_column
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/discovery_fact_column
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/discovery_fact_column
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/discovery_fact_column
2020-11-02T05:41:46 [I|app|3bece479] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/_discovered_host.html.erb (8.4ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/_discovered_host_modal.html.erb (87.3ms)
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:46 [I|app|3bece479] Rendered common/_pagination.html.erb (1.6ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/_discovered_hosts_list.html.erb (112.9ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendered /opt/theforeman/tfm/root/usr/share/gems/gems/foreman_discovery-16.0.1/app/views/discovered_hosts/index.html.erb within layouts/application (115.1ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendered common/_searchbar.html.erb (1.2ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendered layouts/_application_content.html.erb (3.7ms)
2020-11-02T05:41:46 [I|app|3bece479] Rendering layouts/base.html.erb
2020-11-02T05:41:46 [D|app|3bece479] Cache read: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/lab_features
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/lab_features
2020-11-02T05:41:46 [D|app|3bece479] Cache read: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:41:46 [D|app|3bece479] Cache write: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:41:46 [I|app|3bece479] Rendered layouts/base.html.erb (37.1ms)
2020-11-02T05:41:46 [I|app|3bece479] Completed 200 OK in 916ms (Views: 143.9ms | ActiveRecord: 100.5ms)
2020-11-02T05:41:46 [D|app|3bece479] Cache write: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e ({:expires_in=>86400})
2020-11-02T05:42:23 [I|app|cb81d8a4] Started GET "/hosts/HOSTNAME" for 10.124.245.64 at 2020-11-02 05:42:23 -0500
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e
2020-11-02T05:42:23 [I|app|cb81d8a4] Processing by HostsController#show as */*
2020-11-02T05:42:23 [I|app|cb81d8a4] Parameters: {"id"=>"HOSTNAME"}
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/idle_timeout
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/idle_timeout
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache delete: views/tabs_and_title_records-4
2020-11-02T05:42:23 [D|tax|cb81d8a4] Current location set to Default Location
2020-11-02T05:42:23 [D|tax|cb81d8a4] Current organization set to none
2020-11-02T05:42:23 [I|app|cb81d8a4] Rendering hosts/show.html.erb within layouts/application
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/bmc_credentials_accessible
2020-11-02T05:42:23 [I|app|cb81d8a4] Rendered hosts/show.html.erb within layouts/application (166.6ms)
2020-11-02T05:42:23 [I|app|cb81d8a4] Rendered layouts/_application_content.html.erb (1.9ms)
2020-11-02T05:42:23 [I|app|cb81d8a4] Rendering layouts/base.html.erb
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/lab_features
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/lab_features
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache read: settings/entries_per_page
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache fetch_hit: settings/entries_per_page
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache write: views/tabs_and_title_records-4 ({:skip_digest=>true})
2020-11-02T05:42:23 [I|app|cb81d8a4] Rendered layouts/base.html.erb (49.7ms)
2020-11-02T05:42:23 [I|app|cb81d8a4] Completed 200 OK in 361ms (Views: 161.0ms | ActiveRecord: 82.9ms)
2020-11-02T05:42:23 [D|app|cb81d8a4] Cache write: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e ({:expires_in=>86400})
2020-11-02T05:42:23 [I|app|8eb1c1b6] Started GET "/hosts/HOSTNAME/templates" for 10.124.245.64 at 2020-11-02 05:42:23 -0500
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache read: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e
2020-11-02T05:42:23 [I|app|8eb1c1b6] Processing by HostsController#templates as HTML
2020-11-02T05:42:23 [I|app|8eb1c1b6] Parameters: {"id"=>"HOSTNAME"}
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache read: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache read: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache fetch_hit: settings/authorize_login_delegation
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache read: settings/idle_timeout
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache fetch_hit: settings/idle_timeout
2020-11-02T05:42:23 [D|app|8eb1c1b6] Cache delete: views/tabs_and_title_records-4
2020-11-02T05:42:23 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:23 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:23 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:23 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to MSE
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current location set to Default Location
2020-11-02T05:42:24 [D|tax|8eb1c1b6] Current organization set to none
2020-11-02T05:42:24 [I|app|8eb1c1b6] Rendered hosts/_templates.html.erb (33.0ms)
2020-11-02T05:42:24 [I|app|8eb1c1b6] Completed 200 OK in 437ms (Views: 30.1ms | ActiveRecord: 127.1ms)
2020-11-02T05:42:24 [D|app|8eb1c1b6] Cache write: _session_id:c4bba29d1e4a4ec7578fd41a2e3bfe5e ({:expires_in=>86400})
2020-11-02T05:46:40 [I|app|b453c3cf] Started GET "/unattended/provision?token=e730cc3f-7e1d-4a49-bb9b-f9ce84d7b21b&url=http%3A%2F%2FFOREMAN_SERVER%3A8440" for FOREMAN_SERVER at 2020-11-02 05:46:40 -0500
2020-11-02T05:46:40 [I|app|b453c3cf] Processing by UnattendedController#host_template as TEXT
2020-11-02T05:46:40 [I|app|b453c3cf] Parameters: {"token"=>"e730cc3f-7e1d-4a49-bb9b-f9ce84d7b21b", "url"=>"http://FOREMAN_SERVER:8440", "kind"=>"provision", "unattended"=>{}}
2020-11-02T05:46:40 [D|app|b453c3cf] Cache read: settings/unattended_url
2020-11-02T05:46:40 [D|app|b453c3cf] Cache fetch_hit: settings/unattended_url
2020-11-02T05:46:40 [D|app|b453c3cf] Cache read: settings/remote_addr
2020-11-02T05:46:40 [D|app|b453c3cf] Cache generate: settings/remote_addr
2020-11-02T05:46:40 [D|app|b453c3cf] Cache write: settings/remote_addr
2020-11-02T05:46:40 [E|app|b453c3cf] unattended: unable to find a host that matches the request from 10.124.237.172
2020-11-02T05:46:40 [I|app|b453c3cf] Rendering text template
2020-11-02T05:46:40 [I|app|b453c3cf] Rendered text template (0.0ms)
2020-11-02T05:46:40 [I|app|b453c3cf] Completed 404 Not Found in 45ms (Views: 2.3ms | ActiveRecord: 13.0ms)
2020-11-02T05:46:40 [D|app|b453c3cf] Cache write: _session_id:0a0ebf0db0af5690116dbc13f7ee49ac ({:expires_in=>86400})
fmsrv1-ob-992 /var/log/foreman