theforeman / foreman_fog_proxmox

Foreman plugin to add Proxmox compute resource based on fog-proxmox gem
GNU General Public License v3.0
106 stars 33 forks source link

Proxmox's Compute Resources Does not Retrieve VMs #258

Closed djken09 closed 1 year ago

djken09 commented 1 year ago

Describe the bug Proxmox's Compute Resources Does not Retrieve VMs after been created. It returns "There was an error listing VMs: 500 Internal Server Error" It also failed while trying to manually associate a VM (logs provided below)

To Reproduce Steps to reproduce the behavior:

  1. Go to Compute Resources -> Select a Compute Resources -> Virtual Machines Tab
  2. Error: "There was an error listing VMs: 500 Internal Server Error"

Expected behavior Virtual Machines should be shown on the Virtual Machines Tab

Screenshots image image

Env Versions:

Additional context See logs below. foreman-rake errors:fetch_log request_id=21ac4afe 2023-05-01T12:37:54 [I|app|21ac4afe] Started PUT "/compute_resources/1-pve01/associate?compute_resource_id=1-pve01" for 192.168.1.10 at 2023-05-01 12:37:54 +0000 2023-05-01T12:37:54 [I|app|21ac4afe] Processing by ComputeResourcesController#associate as HTML 2023-05-01T12:37:54 [I|app|21ac4afe] Parameters: {"authenticity_token"=>"d+nytzVyfptA9grke5IXe9NRyt4XcU12NZCW15U3hSSnmO6Bgdg10JozeAwD56gKqi+RzPs/uoSVwLTFuAtKAw==", "compute_resource_id"=>"1-pve01", "id"=>"1-pve01"} 2023-05-01T12:37:54 [W|app|21ac4afe] undefined methodfirst' for nil:NilClass 2023-05-01T12:37:54 [I|app|21ac4afe] Backtrace for 'undefined method first' for nil:NilClass' error (NoMethodError): undefined methodfirst' for nil:NilClass 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/helpers/nic_helper.rb:66:in extract_nic_id' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server_config.rb:128:inblock in initialize_interfaces' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server_config.rb:125:in each' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server_config.rb:125:ininitialize_interfaces' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server_config.rb:85:in initialize' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server.rb:235:innew' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server.rb:235:in initialize_config' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/server.rb:69:ininitialize' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-core-2.1.0/lib/fog/core/collection.rb:88:in new' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-core-2.1.0/lib/fog/core/collection.rb:88:innew' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/servers.rb:32:in new' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/fog-proxmox-0.14.0/lib/fog/proxmox/compute/models/servers.rb:63:inget' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/foreman_fog_proxmox-0.14.0/app/models/foreman_fog_proxmox/proxmox_vm_queries.rb:51:in block in vms' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/foreman_fog_proxmox-0.14.0/app/models/foreman_fog_proxmox/proxmox_vm_queries.rb:51:ineach' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/foreman_fog_proxmox-0.14.0/app/models/foreman_fog_proxmox/proxmox_vm_queries.rb:51:in vms' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/foreman_fog_proxmox-0.14.0/app/services/concerns/foreman_fog_proxmox/compute_resource_host_associator.rb:28:inassociate_hosts' 21ac4afe | /usr/share/foreman/app/controllers/compute_resources_controller.rb:52:in associate' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/basic_implicit_render.rb:6:insend_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/abstract_controller/base.rb:195:in process_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/rendering.rb:30:inprocess_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/abstract_controller/callbacks.rb:42:in block in process_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:112:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in set_timezone' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in clear_thread' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in set_topbar_sweeper_controller' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in around' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/audited-4.10.0/lib/audited/sweeper.rb:14:in around' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:inblock in run_callbacks' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:139:in run_callbacks' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/abstract_controller/callbacks.rb:41:inprocess_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/rescue.rb:22:in process_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/instrumentation.rb:33:inblock in process_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in block in instrument' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/notifications/instrumenter.rb:24:ininstrument' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in instrument' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/instrumentation.rb:32:inprocess_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal/params_wrapper.rb:245:in process_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activerecord-6.0.3.7/lib/active_record/railties/controller_runtime.rb:27:inprocess_action' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/abstract_controller/base.rb:136:in process' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionview-6.0.3.7/lib/action_view/rendering.rb:39:inprocess' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal.rb:190:in dispatch' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_controller/metal.rb:254:indispatch' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:50:in dispatch' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:33:inserve' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:49:in block in serve' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:ineach' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:in serve' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:834:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/apipie-dsl-2.4.0/lib/apipie_dsl/static_dispatcher.rb:67:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/apipie-rails-0.5.20/lib/apipie/static_dispatcher.rb:66:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/apipie-rails-0.5.20/lib/apipie/extractor/recorder.rb:137:in call' 21ac4afe | /usr/share/foreman/lib/foreman/middleware/libvirt_connection_cleaner.rb:9:incall' 21ac4afe | /usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/apipie-rails-0.5.20/lib/apipie/middleware/checksum_in_headers.rb:27:incall' 21ac4afe | /usr/share/foreman/lib/foreman/middleware/catch_json_parse_errors.rb:9:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/etag.rb:27:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/conditional_get.rb:40:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/head.rb:12:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/http/content_security_policy.rb:18:incall' 21ac4afe | /usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:incontext' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/cookies.rb:648:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:27:in block in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:101:inrun_callbacks' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:26:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/actionable_exceptions.rb:18:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/debug_exceptions.rb:32:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/show_exceptions.rb:33:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/railties-6.0.3.7/lib/rails/rack/logger.rb:37:in call_app' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/railties-6.0.3.7/lib/rails/rack/logger.rb:28:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/quiet_assets.rb:13:in call' 21ac4afe | /usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/remote_ip.rb:81:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/request_id.rb:27:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/method_override.rb:24:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/runtime.rb:22:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/activesupport-6.0.3.7/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/executor.rb:14:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/static.rb:126:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/sendfile.rb:110:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/host_authorization.rb:76:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/secure_headers-6.3.3/lib/secure_headers/middleware.rb:11:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/railties-6.0.3.7/lib/rails/engine.rb:527:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:inpublic_send' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:in method_missing' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/urlmap.rb:74:inblock in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/urlmap.rb:58:in each' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/rack-2.2.3/lib/rack/urlmap.rb:58:incall' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/configuration.rb:252:in call' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/request.rb:77:inblock in handle_request' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/thread_pool.rb:340:in with_force_shutdown' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/request.rb:76:inhandle_request' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/server.rb:441:in process_client' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/puma-5.6.4/lib/puma/thread_pool.rb:147:inblock in spawn_thread' 21ac4afe | /usr/share/foreman/vendor/ruby/2.7.0/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context' 2023-05-01T12:37:54 [I|app|21ac4afe] Rendering common/500.html.erb within layouts/application 2023-05-01T12:37:54 [I|app|21ac4afe] Rendered common/500.html.erb within layouts/application (Duration: 10.6ms | Allocations: 5119) 2023-05-01T12:37:54 [I|app|21ac4afe] Rendered layouts/_application_content.html.erb (Duration: 5.9ms | Allocations: 4774) 2023-05-01T12:37:54 [I|app|21ac4afe] Rendering layouts/base.html.erb 2023-05-01T12:37:54 [I|app|21ac4afe] Rendered layouts/base.html.erb (Duration: 10.8ms | Allocations: 6062) 2023-05-01T12:37:54 [I|app|21ac4afe] Completed 500 Internal Server Error in 627ms (Views: 37.9ms | ActiveRecord: 10.4ms | Allocations: 120830)

Foreman version: 3.1.3 Plugins:

pdolinic commented 1 year ago

Hi, you are running 0.14.0, this seems to be fixed in the the newer versions and is related to changing a string. You can fix this inplace and restart foreman: All you need small changes across 3 files in 2 PRs:

1) https://github.com/theforeman/foreman_fog_proxmox/pull/220/files 2) https://github.com/theforeman/foreman_fog_proxmox/pull/223/files

djken09 commented 1 year ago

Thanks @pdolinic ! Taking a look to those fixes and I will confirm if that fix it.

djken09 commented 1 year ago

Indeed - confirmed that this issues is fixed on the latest release. Thanks!