Project

General

Profile

Bug #16547

Fact importing fails with NoMethodError: undefined method `first' for nil:NilClass

Added by Ohad Levy almost 4 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Facts
Target version:
Difficulty:
Triaged:
Bugzilla link:
Fixed in Releases:
Found in Releases:

Description

016-09-14T09:01:10 b740424a [app] [I] Processing by Api::V2::HostsController#facts as JSON
2016-09-14T09:01:10 b740424a [app] [I]   Parameters: {"facts"=>"[FILTERED]", "name"=>"h04.example.com", "certname"=>"4471ddcd-9051-4299-9819-4d9a8b400fcc", "apiv"=>"v2", :host=>{"certname"=>"4471ddcd-9051-4299-9819-4d9a8b400fcc", "name"=>"h04.example.com"}}
2016-09-14T09:01:10 b740424a [app] [I] Import facts for 'h04.example.com' completed. Added: 0, Updated: 4, Deleted 0 facts
2016-09-14T09:01:10 b740424a [app] [W] Action failed
 | NoMethodError: undefined method `first' for nil:NilClass
 | /home/foreman/git/foreman/app/models/host/base.rb:178:in `block in set_interfaces'
 | /home/foreman/git/foreman/app/models/host/base.rb:177:in `each'
 | /home/foreman/git/foreman/app/models/host/base.rb:177:in `set_interfaces'
 | /home/foreman/git/foreman/app/models/host/base.rb:154:in `populate_fields_from_facts'
 | /home/foreman/git/foreman/app/models/host/managed.rb:464:in `populate_fields_from_facts'
 | /home/foreman/git/foreman/app/models/host/base.rb:131:in `import_facts'
 | /home/foreman/git/foreman/app/models/host/managed.rb:305:in `import_facts'
 | /home/foreman/git/foreman/app/controllers/api/v2/hosts_controller.rb:240:in `facts'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:198:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/rendering.rb:10:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:117:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:117:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /home/foreman/git/foreman/app/controllers/api/v2/base_controller.rb:152:in `disable_json_root'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /home/foreman/gems/gems/rails-observers-0.1.2/lib/rails/observers/action_controller/caching/sweeping.rb:73:in `around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `public_send'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `block in make_lambda'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /home/foreman/git/foreman/app/controllers/concerns/application_shared.rb:14:in `set_timezone'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /home/foreman/git/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /home/foreman/gems/gems/rails-observers-0.1.2/lib/rails/observers/action_controller/caching/sweeping.rb:73:in `around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `public_send'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `block in make_lambda'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:19:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/rescue.rb:29:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `block in instrument'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `instrument'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
 | /home/foreman/gems/gems/activerecord-4.2.7.1/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:137:in `process'
 | /home/foreman/gems/gems/actionview-4.2.7.1/lib/action_view/rendering.rb:30:in `process'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:196:in `dispatch'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:237:in `block in action'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:74:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:43:in `serve'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/mapper.rb:49:in `serve'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:43:in `block in serve'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `each'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `serve'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:817:in `call'
 | /home/foreman/gems/gems/apipie-rails-0.3.6/lib/apipie/static_dispatcher.rb:65:in `call'
 | /home/foreman/gems/gems/apipie-rails-0.3.6/lib/apipie/extractor/recorder.rb:132:in `call'
 | /home/foreman/gems/gems/apipie-rails-0.3.6/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/etag.rb:24:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/conditionalget.rb:38:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
 | /home/foreman/git/foreman/lib/middleware/catch_json_parse_errors.rb:8:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/flash.rb:260:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in `context'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/cookies.rb:560:in `call'
 | /home/foreman/gems/gems/activerecord-4.2.7.1/lib/active_record/query_cache.rb:36:in `call'
 | /home/foreman/gems/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:38:in `call_app'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:22:in `call'
 | /home/foreman/gems/gems/quiet_assets-1.1.0/lib/quiet_assets.rb:27:in `call_with_quiet_assets'
 | /home/foreman/git/foreman/lib/middleware/tagged_logging.rb:18:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/request_id.rb:21:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
 | /home/foreman/gems/gems/activesupport-4.2.7.1/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
 | /home/foreman/gems/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/static.rb:120:in `call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
 | /home/foreman/gems/gems/secure_headers-3.4.1/lib/secure_headers/middleware.rb:12:in `call'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/engine.rb:518:in `call'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/application.rb:165:in `call'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `public_send'
 | /home/foreman/gems/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `method_missing'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
 | /home/foreman/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
 | /root/.gem/gems/passenger-5.0.7/lib/phusion_passenger/rack/thread_handler_extension.rb:89:in `process_request'
 | /root/.gem/gems/passenger-5.0.7/lib/phusion_passenger/request_handler/thread_handler.rb:155:in `accept_and_process_next_request'
 | /root/.gem/gems/passenger-5.0.7/lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
 | /root/.gem/gems/passenger-5.0.7/lib/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads'
 | /root/.gem/gems/passenger-5.0.7/lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'
 | /home/foreman/gems/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `call'
 | /home/foreman/gems/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `block in create_with_logging_context'
2016-09-14T09:01:10 b740424a [app] [I]   Rendered api/v2/errors/standard_error.json.rabl within api/v2/layouts/error_layout (0.8ms)
2016-09-14T09:01:10 b740424a [app] [I] Completed 500 Internal Server Error in 299ms (Views: 1.7ms | ActiveRecord: 109.5ms)

the facts in question are (output of FACTER_domain=example.com facter --json)

{"domain":"example.com","architecture":"x86_64","augeasversion":"1.4.0","kernel":"Linux","blockdevice_sda_size":500107862016,"blockdevice_sda_vendor":"ATA","blockdevice_sda_model":"ST500NM0011","blockdevices":"sda","macaddress":"02:42:95:9c:45:94","osfamily":"RedHat","operatingsystem":"RedHat","facterversion":"1.7.6","filesystems":"xfs","fqdn":"h04.example.com","hardwareisa":"x86_64","hardwaremodel":"x86_64","hostname":"h04","id":"root","interfaces":"br_14703d60d2bb,docker0,em1,em2,lo,veth028afe7,veth42ffacc,vethac0da22,vethd78747b,vethf42b68f,virbr0,virbr0_nic","ipaddress_br_14703d60d2bb":"172.18.0.1","macaddress_br_14703d60d2bb":"02:42:95:9c:45:94","netmask_br_14703d60d2bb":"255.255.0.0","ipaddress_docker0":"172.17.0.1","macaddress_docker0":"02:42:68:70:81:52","netmask_docker0":"255.255.0.0","ipaddress_em1":"10.35.27.135","macaddress_em1":"84:8f:69:fe:27:05","netmask_em1":"255.255.255.192","macaddress_em2":"84:8f:69:fe:27:06","ipaddress_lo":"127.0.0.1","netmask_lo":"255.0.0.0","macaddress_veth028afe7":"4e:8a:2d:01:7f:0f","macaddress_veth42ffacc":"8a:ec:65:2e:b6:f2","macaddress_vethac0da22":"e2:77:c0:86:dd:7d","macaddress_vethd78747b":"e6:d1:0c:d4:f9:a9","macaddress_vethf42b68f":"56:79:5d:23:c1:fa","ipaddress_virbr0":"192.168.122.1","macaddress_virbr0":"52:54:00:35:c8:71","netmask_virbr0":"255.255.255.0","macaddress_virbr0_nic":"52:54:00:35:c8:71","ipaddress":"172.18.0.1","kernelmajversion":"3.10","kernelrelease":"3.10.0-327.18.2.el7.x86_64","kernelversion":"3.10.0","boardmanufacturer":"Dell Inc.","boardproductname":"0TTH1R","boardserialnumber":".BZ73F5J.CN7016326O008X.","bios_vendor":"Dell Inc.","bios_version":"1.0.21","bios_release_date":"04/26/2012","manufacturer":"Dell Inc.","productname":"PowerEdge C6220","serialnumber":"BZ73F5J","uuid":"4C4C4544-005A-3710-8033-C2C04F46354A","type":"Rack Mount Chassis","memorysize":"23.35 GB","memoryfree":"21.75 GB","swapsize":"11.81 GB","swapfree":"11.81 GB","swapsize_mb":"12096.00","swapfree_mb":"12096.00","memorysize_mb":"23906.50","memoryfree_mb":"22273.37","memorytotal":"23.35 GB","netmask":"255.255.0.0","network_br_14703d60d2bb":"172.18.0.0","network_docker0":"172.17.0.0","network_em1":"10.35.27.128","network_lo":"127.0.0.0","network_virbr0":"192.168.122.0","operatingsystemmajrelease":"7","operatingsystemrelease":"7.2","path":"/root/.gem/bin:/root/.gem/ruby/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sbin:/usr/sbin:/root/scripts","physicalprocessorcount":1,"processor0":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor1":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor2":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor3":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor4":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor5":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor6":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor7":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor8":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor9":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor10":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processor11":"Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00GHz","processorcount":"12","ps":"ps -ef","puppetversion":"3.6.2","rubysitedir":"/usr/local/share/ruby/site_ruby/","rubyversion":"2.0.0","selinux":"true","selinux_enforced":"true","selinux_policyversion":"28","selinux_current_mode":"enforcing","selinux_config_mode":"enforcing","selinux_config_policy":"unknown","selinux_mode":"unknown","sshrsakey":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDTfHoJ1JJuJl4wwQhGSblWsxaa1rThfOrsFyE9flkwKDoTLYxOnq3OyUWfMOK0cQuDSyBTE8dzflbP9oVFlGikfwCTPVcOtcgstYbrEMlhh8Sgu9xDHmn/2OFO1h84opeeNRtr88TNCPyerS7JPYud9TROBX3moejyIvOn7FFdNsy6NXgS7mNOTUP+4037SnIOMcBOfGv7mtri+Z1CDNjXMbENfO8/5kFSHbnhmpt4o9bC/MveivYXGx9cdSusGCkjUHum8JkB7diOOuaLb7bztlD6eKS61BMN0Ku1tAvqegc3iiUbUGFm/p4Uq3qL5CFcImkT2w40xgrfp0VRZIkZ","sshfp_rsa":"SSHFP 1 1 81c7f3baef736f64012b497c1192dec7f6203169\nSSHFP 1 2 4bb72ddd99b362886c5d27df31b1dd9cd65256ec6f3f82c7f6ebd0ac48e65056","sshecdsakey":"AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBUhN+RjwpOQaJl9NZ9rP9RvPRIb3qp3VBQ8s9an1kB4dSV7/9FQzR+ctm+pz4QQQo6kkq1w5hJ+siKgUqwT5k0=","sshfp_ecdsa":"SSHFP 3 1 85048bfa64d381b4f0eb221acb4a5ae27f65debf\nSSHFP 3 2 b9bdfd11388ca68298598cf73184ef72d8b91c73b118344d4b10104c10dbd42d","timezone":"UTC","uniqueid":"230a871b","uptime":"113 days","uptime_days":113,"uptime_hours":2716,"uptime_seconds":9778327,"virtual":"physical","is_virtual":"false"}

Related issues

Related to Foreman - Bug #16073: Changing interfaces on unmanaged hosts leads to an invalid hostClosed2016-08-11
Has duplicate Foreman - Bug #16583: error during import_facts when get_interface_scope() returns nilDuplicate2016-09-16

Associated revisions

Revision dc212679 (diff)
Added by Dominic Cleal almost 4 years ago

fixes #16547 - handle nil value from get_interface_scope

Since 7b75a6a, get_interface_scope may return no scope for managed hosts
when importing a physical interface not already known by MAC address.

Revision 0a18d150 (diff)
Added by Dominic Cleal almost 4 years ago

fixes #16547 - handle nil value from get_interface_scope

Since 7b75a6a, get_interface_scope may return no scope for managed hosts
when importing a physical interface not already known by MAC address.
(cherry picked from commit dc2126790aeaa0160f7e9ae6f8f86319b9f60e3d)

History

#1 Updated by Dominic Cleal almost 4 years ago

  • Subject changed from fact importing fails to Fact importing fails with NoMethodError: undefined method `first' for nil:NilClass

It would be helpful if you can get more specific information about which interface is failing, and under what circumstances (type of interface, MAC address behaviour) the get_interface_scope method is returning a nil scope. I can't reproduce this at the moment.

#2 Updated by Ohad Levy almost 4 years ago

Dominic Cleal wrote:

It would be helpful if you can get more specific information about which interface is failing, and under what circumstances (type of interface, MAC address behaviour) the get_interface_scope method is returning a nil scope. I can't reproduce this at the moment.

with the following code change:


diff --git a/app/models/host/base.rb b/app/models/host/base.rb
index 419c568..8869bcf 100644
--- a/app/models/host/base.rb
+++ b/app/models/host/base.rb
@@ -175,9 +175,14 @@ module Host
       end

       parser.interfaces.each do |name, attributes|
+        begin
         iface = get_interface_scope(name, attributes).first || interface_class(name).new(:managed => fal
         # create or update existing interface
         set_interface(attributes, name, iface)
+        rescue => e
+         logger.warn("Failed to process interface: #{name}/#{iface} - #{attributes}")
+         raise e
+        end
       end



the output is:

Failed to process interface: docker0/ - {"ipaddress"=>"172.17.0.1", "macaddress"=>"02:42:68:70:81:52", "netmask"=>"255.255.0.0", "network"=>"172.17.0.0", "link"=>"false", "virtual"=>false}

#3 Updated by Dominic Cleal almost 4 years ago

  • Has duplicate Bug #16583: error during import_facts when get_interface_scope() returns nil added

#4 Updated by The Foreman Bot almost 4 years ago

  • Status changed from New to Ready For Testing
  • Assignee set to Thomas McKay
  • Pull request https://github.com/theforeman/foreman/pull/3856 added

#5 Updated by Dominic Cleal almost 4 years ago

  • Related to Bug #16073: Changing interfaces on unmanaged hosts leads to an invalid host added

#6 Updated by Dominic Cleal almost 4 years ago

  • Legacy Backlogs Release (now unused) set to 160

#7 Updated by The Foreman Bot almost 4 years ago

  • Pull request https://github.com/theforeman/foreman/pull/3879 added

#8 Updated by Dominic Cleal almost 4 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

#9 Updated by Dominic Cleal almost 4 years ago

  • Assignee changed from Thomas McKay to Dominic Cleal

#10 Updated by Tomer Brisker over 3 years ago

  • Pull request deleted (https://github.com/theforeman/foreman/pull/3856)

#11 Updated by Sean O'Keeffe over 3 years ago

  • Bugzilla link set to 1432184

Also available in: Atom PDF