Open AutomationD opened 8 years ago
@kireevco Could you try to use the latest version of fog
?
@plribeiro3000 I guess I could, but I have a feeling something could be wrong with my ESXi hosts list. And I would prefer to know why it works on a different ESXi host... Maybe some VM attributes are missing on the faulty ones...
@kireevco Not sure. I'm not that into vsphere
. But to help you out with a bug fix you will need to ensure you are using the latest version so we can go from there.
@kireevco I realize that you may not have control over what version of Foreman you are using and it looks like the gems it is using are vendor'ed into it. Without moving to fog-vsphere
, it will be tough to do much. I don't know much about Foreman or vSphere (surprisingly), but if you can tell me what version of Foreman you are using (that stacktrace doesn't show the version of Foreman), I'll see what I can find. Unfortunately, even if it is a bug within the vSphere portion of Fog (at that time), there probably isn't much that we could offer outside of you upgrading to the latest. Anyway, let me know what version of Foreman you're running and I'll see what I can come up with.
Looking at the stack trace and foreman code, it seems to leave the foreman code when calling "vm.mac". This calls "mac" on the fog vsphere server model. In fog we pass through here: https://github.com/fog/fog-vsphere/blob/master/lib/fog/vsphere/models/compute/server.rb#L190 where we basically call the interfaces model. The exception in the stack trace is then called here: https://github.com/fog/fog-vsphere/blob/master/lib/fog/vsphere/models/compute/interfaces.rb#L20
@kireevco I realize that you may not have control over what version of Foreman you are using and it looks like the gems it is using are vendor'ed into it. Without moving to fog-vsphere, it will be tough to do much. I don't know much about Foreman or vSphere (surprisingly), but if you can tell me what version of Foreman you are using (that stacktrace doesn't show the version of Foreman), I'll see what I can find. Unfortunately, even if it is a bug within the vSphere portion of Fog (at that time), there probably isn't much that we could offer outside of you upgrading to the latest. Anyway, let me know what version of Foreman you're running and I'll see what I can come up with.
I'm using Foreman 1.10.1 (latest stable) and I am trying to see why most of the ESXi servers work, and some don't. The ones that don't work have VMs created programmatically by a different in-house software, so I'm suspecting something could be wrong there. And the solution could be fixing our software, not fog. Is there a REST call I can make to VMware to help with isolation and troubleshooting? I assume it should be a call to get network interfaces or something like that?
Any help would be appreciated, and thank you so far for following up :)
I'm running Foreman 0.15 on Ubuntu 16.04 and got the same error:
RuntimeError
interfaces should have vm or template
/usr/share/foreman/vendor/ruby/2.3.0/gems/fog-vsphere-1.11.3/lib/fog/vsphere/models/compute/interfaces.rb:20:in `all'
/usr/share/foreman/vendor/ruby/2.3.0/gems/fog-core-1.42.0/lib/fog/core/collection.rb:113:in `lazy_load'
/usr/share/foreman/vendor/ruby/2.3.0/gems/fog-core-1.42.0/lib/fog/core/collection.rb:17:in `map'
/usr/share/foreman/app/models/compute_resources/foreman/model/vmware.rb:510:in `associated_host'
/usr/share/foreman/app/controllers/compute_resources_controller.rb:49:in `block in associate'
/usr/share/foreman/vendor/ruby/2.3.0/gems/fog-core-1.42.0/lib/fog/core/collection.rb:19:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/fog-core-1.42.0/lib/fog/core/collection.rb:19:in `each'
/usr/share/foreman/app/controllers/compute_resources_controller.rb:47:in `associate'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/abstract_controller/base.rb:198:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/rendering.rb:10:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:117:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:505:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
/usr/share/foreman/app/controllers/concerns/application_shared.rb:15:in `set_timezone'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:432:in `block in make_lambda'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:312:in `block in halting'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:497:in `block in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:505:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
/usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:432:in `block in make_lambda'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:312:in `block in halting'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:497:in `block in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:505:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
/usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:432:in `block in make_lambda'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:312:in `block in halting'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:497:in `block in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:505:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
/usr/share/foreman/vendor/ruby/2.3.0/gems/audited-4.5.0/lib/audited/sweeper.rb:14:in `around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:455:in `public_send'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:455:in `block in make_lambda'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:312:in `block in halting'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:497:in `block in around'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:505:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/abstract_controller/callbacks.rb:19:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/rescue.rb:29:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications.rb:164:in `block in instrument'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/notifications.rb:164:in `instrument'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.8/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/abstract_controller/base.rb:137:in `process'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionview-4.2.8/lib/action_view/rendering.rb:30:in `process'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal.rb:196:in `dispatch'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_controller/metal.rb:237:in `block in action'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/routing/route_set.rb:43:in `serve'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/journey/router.rb:43:in `block in serve'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/journey/router.rb:30:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/journey/router.rb:30:in `serve'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/routing/route_set.rb:817:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.4.0/lib/apipie/static_dispatcher.rb:65:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.4.0/lib/apipie/extractor/recorder.rb:132:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/apipie-rails-0.4.0/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/etag.rb:24:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/conditionalget.rb:38:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/head.rb:13:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
/usr/share/foreman/lib/middleware/catch_json_parse_errors.rb:8:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/flash.rb:260:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/session/abstract/id.rb:225:in `context'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/session/abstract/id.rb:220:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/cookies.rb:560:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.8/lib/active_record/query_cache.rb:36:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activerecord-4.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/rack/logger.rb:38:in `call_app'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/rack/logger.rb:22:in `call'
/usr/share/foreman/lib/middleware/tagged_logging.rb:18:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/request_id.rb:21:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/methodoverride.rb:22:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/runtime.rb:18:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/activesupport-4.2.8/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/actionpack-4.2.8/lib/action_dispatch/middleware/static.rb:120:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/sendfile.rb:113:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/secure_headers-3.6.7/lib/secure_headers/middleware.rb:12:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/engine.rb:518:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/application.rb:165:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/railtie.rb:194:in `public_send'
/usr/share/foreman/vendor/ruby/2.3.0/gems/railties-4.2.8/lib/rails/railtie.rb:194:in `method_missing'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:66:in `block in call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:50:in `each'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/urlmap.rb:50:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/lock.rb:17:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/content_length.rb:15:in `call'
/usr/share/foreman/vendor/ruby/2.3.0/gems/rack-1.6.8/lib/rack/handler/webrick.rb:88:in `service'
/usr/lib/ruby/2.3.0/webrick/httpserver.rb:140:in `service'
/usr/lib/ruby/2.3.0/webrick/httpserver.rb:96:in `run'
/usr/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'
/usr/share/foreman/vendor/ruby/2.3.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
Could it be that the VMs that have this issue are using OVA provisioning? Asking because someone in the Foreman issue tracker already commented on it http://projects.theforeman.org/issues/14193
To debug this, I'd suggest adding some debug code here: https://github.com/fog/fog-vsphere/blob/ac775b6d0eea0e7e015a992acb3b92eb185c9054/lib/fog/vsphere/models/compute/interfaces.rb#L20
Something like:
raise "interfaces should have vm or template, got: #{server.class}"
It happens on some ESXi server, and some servers are ok. I screaming for help to get some direction on this strange issue.
Trace:
Clone of https://github.com/fog/fog/issues/3835