Bug #7035

Unable to filter on classes (v1.5.2)

Added by Reto Vogel over 3 years ago. Updated about 3 years ago.

Status:Closed
Priority:Normal
Assigned To:Dominic Cleal
Category:Search
Target version:Sprint 28
Difficulty: Bugzilla link:1135919
Found in release:1.5.2 Pull request:https://github.com/theforeman/foreman/pull/1692
Story points-
Velocity based estimate-
Release1.5.3Release relationshipAuto

Description

Hi,

With Foreman version 1.5.2 I'm not able filtering the hostlist based on classes. Regardless of which class i try to filter with, Foreman returns all hosts as a result.

Example of filter: class = java

This query should return a few hosts but it returns all hosts.

I did some search and found an old bug (http://projects.theforeman.org/issues/4314). But I believe the cause isn't the same.

After I enabled debug mode. Here's the error I get when applying the class filter:
@ Host::Managed Load (0.3ms) SELECT `hosts`.* FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') LIMIT 1
(0.5ms) SELECT id FROM `config_groups` INNER JOIN `config_group_classes` ON `config_group_classes`.`config_group_id` = `config_groups`.`id` INNER JOIN `puppetclasses` ON `puppetclasses`.`id` = `config_group_classes`.`puppetclass_id` WHERE (puppetclasses.name = BINARY 'java') ORDER BY config_groups.name

Mysql2::Error: Column 'id' in field list is ambiguous: SELECT id FROM `config_groups` INNER JOIN `config_group_classes` ON `config_group_classes`.`config_group_id` = `config_groups`.`id` INNER JOIN `puppetclasses` ON `puppetclasses`.`id` = `config_group_classes`.`puppetclass_id` WHERE (puppetclasses.name = BINARY 'java') ORDER BY config_groups.name
(0.2ms) SELECT COUNT() FROM `user_facts` WHERE `user_facts`.`user_id` = 2
Host::Managed Load (1.0ms) SELECT `hosts`.
FROM `hosts` WHERE `hosts`.`type` IN ('Host::Managed') ORDER BY `hosts`.`name` ASC LIMIT 25 OFFSET 0
Hostgroup Load (0.5ms) SELECT `hostgroups`.* FROM `hostgroups` WHERE `hostgroups`.`id` IN (30, 20, 19, 16, 17, 12, 13, 10, 9, 6, 5, 27, 25, 24) ORDER BY hostgroups.title
Operatingsystem Load (0.3ms) SELECT `operatingsystems`.* FROM `operatingsystems` WHERE `operatingsystems`.`id` IN (5, 6, 1, 4) ORDER BY operatingsystems.name
@

The error states an ambiguous field 'id'. I modified the query by adding the tablename, but altough I got an empty result ... don't know whether there's another root cause of this problem.

Let me know if more information is needed.

Regards
Reto


Related issues

Related to Foreman - Bug #5848: Can't search for host with class inherited from config group Closed 05/21/2014
Duplicated by Foreman - Bug #7185: search for host by included class name does not filter ho... Duplicate 08/20/2014

Associated revisions

Revision f06b276b
Added by Dominic Cleal about 3 years ago

fixes #7035 - expand column name for Rails 3.2.8 compat in Puppet class search

Revision 9c3bf3f1
Added by Dominic Cleal about 3 years ago

fixes #7035 - expand column name for Rails 3.2.8 compat in Puppet class search

(cherry picked from commit f06b276b93f9ff47ca66174c606fee6fc2c64321)

Revision 8fd7cfb2
Added by Dominic Cleal about 3 years ago

fixes #7035 - expand column name for Rails 3.2.8 compat in Puppet class search

(cherry picked from commit f06b276b93f9ff47ca66174c606fee6fc2c64321)

History

#1 Updated by The Foreman Bot over 3 years ago

  • Status changed from New to Ready For Testing
  • Target version set to Sprint 27
  • Pull request https://github.com/theforeman/foreman/pull/1692 added

#2 Updated by Dominic Cleal over 3 years ago

  • Assigned To set to Dominic Cleal

#3 Updated by Dominic Cleal over 3 years ago

  • Related to Bug #5848: Can't search for host with class inherited from config group added

#4 Updated by Reto Vogel over 3 years ago

Thank you Dominic. I've just tested your fix and it works perfectly! Filtering on classes does work again like a charm.

Cheers

#5 Updated by Dmitri Dolguikh over 3 years ago

  • Target version changed from Sprint 27 to Sprint 28

#6 Updated by Dominic Cleal over 3 years ago

  • Duplicated by Bug #7185: search for host by included class name does not filter host results added

#7 Updated by Glen Ogilvie over 3 years ago

tested patch on my system, as affected by this as well. Patch works

#8 Updated by Dominic Cleal about 3 years ago

  • Duplicated by Bug #7256: host filter - params seach not working added

#9 Updated by Dominic Cleal about 3 years ago

  • Duplicated by deleted (Bug #7256: host filter - params seach not working)

#10 Updated by Dominic Cleal about 3 years ago

  • Release set to 1.5.3

#11 Updated by Stephen Benjamin about 3 years ago

  • Bugzilla link set to 1135919

#12 Updated by Dominic Cleal about 3 years ago

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

Also available in: Atom PDF