Project

General

Profile

Bug #16750

*_selected methods expect params[:host] to exist

Added by Daniel Lobato Garcia over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
High
Category:
Discovery plugin
Target version:
Difficulty:
Triaged:
No
Bugzilla link:
Fixed in Releases:
Found in Releases:
Red Hat JIRA:

Description

Due to the strong params changes, the methods we override in routes.rb (architecture_selected, os_selected, medium_selected) do not longer work.
The reason is that these *_selected methods expect params[:host] to exist. Other methods like 'taxonomy_scope' also expect params[:host] to exist.
However, 'discovered_hosts/edit' sends params[:discovered_host], which is not understood by the HostController.

The discovery plugin should realize that these params will not be understood by HostController and change them appropriately.

This blocks discovery provisioning without choosing a hostgroup.


Related issues

Related to Discovery - Bug #13322: Impossible to select OS and media on discovered hostsClosed2016-01-21

Associated revisions

Revision abde986e (diff)
Added by Daniel Lobato Garcia over 6 years ago

Fixes #16750 - *_selected methods expect params[:host]

Due to the strong params changes, the methods we override in routes.rb
(architecture_selected, os_selected, medium_selected) do not longer
work.

The reason is that these *_selected methods expect params[:host] to
exist. Other methods like 'taxonomy_scope' also expect params[:host] to
exist.

However, 'discovered_hosts/edit' sends params[:discovered_host], which
is not understood by the HostController.

The discovery plugin should realize that these params will not be
understood by HostController and change them appropriately.

This patch merely checks the URL and if it matches 'discovered_hosts' in
some place, it will also set params[:host].

History

#1 Updated by Daniel Lobato Garcia over 6 years ago

The error that throws is

NoMethodError: undefined method `has_key?' for nil:NilClass
app/controllers/concerns/foreman/controller/parameters/keep_param.rb:11:in `block in keep_param'

That's coming from app/controller/s/concern/foreman/controller/parameters/host.rb , which calls `host_params` with `top_level_hash = 'host'`. Then `keep_param` tries to access 'params['host']` and fails.

#2 Updated by The Foreman Bot over 6 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/theforeman/foreman_discovery/pull/304 added

#3 Updated by Lukas Zapletal over 6 years ago

  • Target version set to Discovery Plugin 7.0.1

Just in time for .1 thanks! :-)

#4 Updated by Lukas Zapletal over 6 years ago

  • Bugzilla link set to 1397367

#5 Updated by Anonymous over 6 years ago

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

#6 Updated by Lukas Zapletal over 5 years ago

  • Related to Bug #13322: Impossible to select OS and media on discovered hosts added

Also available in: Atom PDF